MeshDecals.usf的BUG

针对4.15及4.16版本MeshDecals.usf中存在的导致MeshDecal材质ScreenPosition始终为(0,0)的问题,本文详细介绍了具体的BUG修复方案,并提供了两版代码修改对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值