4.15、4.16版本的MeshDecals.usf存在BUG,造成使用Mesh Decal的材质ScreenPosition总为(0, 0)
4.15版本的MeshDecals.usf修改如下:
void FPixelShaderInOut_MainPS(
FVertexFactoryInterpolantsVSToPS Interpolants,inout FPixelShaderIn In,
inout FPixelShaderOut Out)
{
...FMaterialPixelParameters MaterialParameters = GetMaterialPixelParameters(Interpolants, In.SvPosition);
MaterialParameters.ScreenPosition = SvPositionToScreenPosition(In.SvPosition);
...
}
4.16版本的MeshDecals.usf需要作以下修改(否则MaterialParameters.ScreenPosition仍无法正常赋值,参照DeferredDecal.usf中MaterialParameters.ScreenPosition的赋值):
MaterialParameters.SvPosition = In.SvPosition;
MaterialParameters.ScreenPosition = SvPositionToScreenPosition(In.SvPosition);
针对4.15及4.16版本MeshDecals.usf中存在的导致MeshDecal材质ScreenPosition始终为(0,0)的问题,本文详细介绍了具体的BUG修复方案,并提供了两版代码修改对比。
689

被折叠的 条评论
为什么被折叠?



