假期闲来无事,做了一个简单的热成像后期材质,分享一下。
先上图
这个热成像后期效果比较简单,还没有做进一步的效果细化。整体效果分为角色部分、场景部分、特效部分。
一、角色部分
角色部分使用了 WordlNormal
结合 Fresnel
(菲涅尔) 效果混合红黄蓝三种颜色,用来模拟人体的热度。同时加了一个扰乱效果,因为人体热度分布范围并不是一成不变的。扰乱贴图使用的引擎自带 WindTurblenceVectorAndGustMagnitude
这张图,扰乱方式使用了引擎自带的函数 Motion_4WayChaos
【Engine\Content\Functions\Engine_MaterialFunctions03\ComplexMotion】。
二、场景部分
场景部分使用了相同的方式把两个冷色调进行混合。FarColor
部分是为了消除天空球这种巨型模型导致的环形菲涅尔效果,用 SceneDepth
获取距离,将远处的色调进行统一。
三、特效部分
特效类的透明物体,材质只要开启了 DOF 效果,RGB 值就会出现 Separate Translucency RGB
这个 Buffer 中,这个 Buffer 对应的 SceneTexture
通道为 Post Process Input1
, 将这个通道进行去色,就能得到透明度 Mask,使用透明度的强弱进行判定来模拟特效的热度。
四、最终混合
角色和场景的混合使用了 SceneTexture:CustomDepth
,所以,如果判定角色要开启热成像效果,需要勾选角色模型的 Render CustomDepth Pass