接着上次的示例项目继续分析
这次是水,比较复杂所以做了部分阉割,是我能够理解范围内的改造版本,样子是这样的
还是先从简单的部分开始,自发光
使用菲涅尔反射效应,接近掠射角时的反射光增多,再乘上颜色控制,效果是这样的
顶点部分
这部分的效果单独拿出来是这样的
逻辑是利用物体坐标系的xz坐标,计算顶点y应该偏移的值,期间用几个参数控制偏移方向,高度,速度等。
这里有一个技巧,想要表现出水的无序性,于是把上面的操作做成了subGrapgh,随后用了三个相同的手法,设置不同的个参数以体现效果。
最后是上色,BaseColor,单这部分效果是这样的
这部分比较多,分成三部分
第一部分:
计算三个海浪y的变化值的和,这是为了使用这个值作为海浪颜色的遮罩,有起伏的地方才需要海浪颜色
第二部分
利用噪声生成海浪颜色采样图,并用上述的方法遮罩采样海浪颜色,最后添加三重海波各自的权重控制。
第三部分,BaseColor
这部分单独看是这样的
可以明显观察到这两部分是分开的,这里使用了模型制作过程中预设的值进行处理,在blender里观察这个模型发现,上面部分的顶点是附带颜色信息的,所以可以在shaderGrapgh里轻松区分模型的两部分。
这里lerp了上面部分的颜色和下面部分的颜色,使用顶点颜色的R通道做区分。
现在结合这三部分,最终的效果就是这样的