BentNormal和AO
BentNormal作⽤有两个:
第⼀个参与计算GBuffer.DiffuseIndirectSampleOcclusion. 他的命名就说明只和Diffuse有关。
这个值作⽤于LumenScreenprobeGather,也就是LumenFinalGather阶段,⽤来判断是不是
DIFFUSE_INTEGRATION_IMPORTANCE_SAMPLE_BRDF,也就是⾼光的整合⽅式。另外⼀个作⽤也是在相同的阶段,⽤来采样的
时候判断这个⽅向的可⻅性,然后⽤于diffuse光照的叠加。
所以结论是GBuffer.DiffuseIndirectSampleOcclusion都作⽤于⾼光。
第⼆个参与计算GBuffer.GBufferAO。会作⽤于ReflectionEnvironment。
反射⽅式不能再使⽤lumen,⽽是使⽤screenspace。
1 float DiffOcclusion = MaterialAO;
2 float SpecOcclusion = MaterialAO;
3 ApplyBentNormal(MaterialParameters.CameraVector, MaterialParameters.WorldNormal, MaterialParameters.Tangen
4 GBuffer.GBufferAO = AOMultiBounce( Luminance( GBuffer.SpecularColor ), SpecOcclusion ).g;
这个materialAO就是材质的AO。中间进⾏⼀次applybentnormal的操作:
具体的就是会使⽤材质⾥的bentnormal,计算出对应的半球⾼斯,法线球⾯⾼斯,可⻅性球⾯⾼斯以及镜⾯反射球⾯⾼斯等,最后
获取到对应的specularocclusion, 再通过获取radiance当做basecolor,对此弹射获取到最终的specularAO。中间很多经验算法不
提,但是SpecOcclusion参与计算,是个inout值。他会参与可⻅性球⾯⾼斯,以及镜⾯反射球⾯⾼斯。 可⻅性球⾯⾼斯的计算如
下
BentNormal和AO
BentNormal与AO在UE5中的应用解析
最新推荐文章于 2024-11-28 03:29:36 发布
本文详细探讨了BentNormal在计算GBuffer.DiffuseIndirectSampleOcclusion中的作用,主要影响高光整合和采样时的可见性判断。同时,BentNormal也参与了GBuffer.GBufferAO的计算,对ReflectionEnvironment的反射方式产生影响。AO( Ambient Occlusion)在计算Specular Occlusion时起关键作用,与BentNormal结合在反射部分产生效果。文章还解释了GBuffer.GBufferAO如何影响反射阶段,并讨论了DynamicAmbientOcclusion和DiffuseIndirectAO的计算过程,强调它们对高光而非Specular Occlusion的影响。

最低0.47元/天 解锁文章
3073

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



