(个人)实时交互的太极拳学习系统创新实训第九周(二)

本周工作

在教学模式中,对模型进行半透明显示。

在UE4中半透明材质不是非常好实现,因为UE4中采用的是Deffered Rendering(延迟渲染)的渲染方式。将物体的几何信息(位置坐标,法线向量,纹理坐标,反射系数etc.)存储在G-buffer(Geometry-Buffer / 几何信息缓冲区)中,再从G-buffer中读取信息,从而计算出每个像素的最终颜色。这样就避免了同一个像素上(在有重叠物体的情况下)进行的反复计算,从而大大提高渲染效率。以往的渲染方式是正向渲染,采用Z-buffer,从画面Z坐标最深(离视线最远)的物体开始渲染,当有重叠物体时,对被遮住的物体执行“隐藏面消除”的任务,因此会产生大量多余的渲染计算。

在Unreal官方文档中有如下描述:在 3D 图形渲染中,透明度的开销非常之大,因为每帧都需对其进行整体再次求值,以确保未发生变化。正因为再次求值的存在,VR 项目中透明度的渲染开销极大,大于其带来的效果增益。然而,使用 DitherTemporalAA 材质函数可解决解决这一难点。此材质函数将使材质拥有外观上的透明度,并避免常见透明度问题(如自我排序)

那么对于半透明材质,UE4是怎么渲染的呢?UE4正向渲染呈现透明网格,然后结果与延迟渲染的背景相结合。

以下是具体操作:

①材质的Blend Mode改成Masked,不能是Translucent(简单的设置透明度,会使模型本身的一些特征消隐掉)。


②重点就是加入DitherTemporalAA材质函数。

③效果如下

扫描二维码关注公众号,回复: 1569228 查看本文章


猜你喜欢

转载自blog.csdn.net/qq_33244381/article/details/80556884