UE5 材质 体积冰
前言
本篇将介绍如何实现体块的体积感
目标
-
实现玻璃效果
噪声在表面下四处移动,而不是一动不动
-
实现冰块效果
实现玻璃
-
对于玻璃而言,我们不再将其视为一层而是两层,我们希望随着观察向量的变化它的子表面的纹理也随之变化。简单来说,随着观察向量角度的变化,观察点的uv也在不断变化

-
我们需要一个观察向量和一个反射向量,随着观察向量角度的不同,我们看到物体的uv也不同,也就是说需要反射到摄像机

-
可能的实现如下


-
目前这种玻璃效果有些过于强以至于不太真实,我们需要的是靠近玻璃,反射效果变强;远离玻璃,反射效果变弱,也就是说需要求得z和纹理偏移的关系

最后采取相乘是因为这样的效果更好,经验之谈 -
这里还没有结束,因为这是体渲染,所以正常来说需要处理的是三d纹理,但方向向量仅仅代表一个方向,使用2d纹理亦可实现,因此在这里我们需要除以纹理的分辨率来变换至2d


实现冰块
-
从上图可以看出,目前这个玻璃表面是非常光滑的,但现实中冰块的表面可没有这么光滑。因此我们需要想办法如何让其有粗糙感,感觉表面的效果很容易想到以凹凸贴图为基础的法线贴图


-
当前,因为目前所有像素点的偏移量都是相同的,为了让每个像素点的偏移量各不相同,以uv offset图作为输入即可


reference
Cloth Shading - UE4 Materials 101 - Episode 10 - YouTube