前言
本篇实现一个简单的布料shader,需要注意的是本篇仅仅模拟布料的外观,但物理上并不是正确的因为还需要改光照
目标
- 通过观察缎子、棉布、丝绸可以看出,这些物体有些是中间亮,边缘暗,有些是中间暗,边缘亮,因此我们需要实现控制物体中间和边缘亮度的shader
- 布料算法
顽皮狗工作室曾在SIGGRAPH上分享过一个布料算法
实现控制边缘和中心的亮度
实现边缘比中心亮
第一次实现
- 按照正常的光照方程,向边缘靠近更多颜色越暗,因此我们只需1-x将效果反向
第二次实现
- 控制中间的黑色的幅度
很自然的,我们采用power()控制幅度。power幂取4,可以得到如下效果
第三次实现
-
控制亮度
power()后乘以一个常数即可
实现中心比边缘亮
知道上个实现的原理,那么这个实现也就不难了
最后将以后两个实现进行相加,就能实现最终效果
棉
现在只需控制中间黑色和边缘亮色的幅度且对布料纹理进行采样,输出结果如下
reference
Cloth Shading - UE4 Materials 101 - Episode 10 - YouTube
标签:控制,power,实现,shader,边缘,布料,UE5 From: https://www.cnblogs.com/chenglixue/p/17396113.html