Blender 制作风格化水面

利用blender 中的材质节点创建风格化的水面

  风格化水面,风格化水面的效果有时候看起来就会像油画一样,虽然有点抽象和扭曲,但勉强能看,和真实感水面比起来,各有千秋。

风格化水面

风格化水面需要的一些实际效果:

  • 影子
  • 反射
  • 高光
  • 纯色

产生的波纹形状:

  可自定义波纹的形状,可加上噪波干扰,使其更加有风格化感觉。

设计的渲染方案:

  • 波纹(单独使用物体制作假波纹效果)(可优化成动态绘制的波纹查找图)
  • 水面(使用细分等级较高的水面用于产生反射的凹凸面,达到非光学平整表面)

实现思路

  1. 创建水面模型和波纹模型
  2. 给水面模型添加表面细分顶点置换的修改器,达到凹凸其表面的作用。
  3. 给波纹模型添加表面细分缩囊(shrinkwrap)的修改器,将波纹模型投影到水面表面,但是要保留缝隙。
  4. 新建两个材质命名为水面(water)波纹(foam),修改材质参数如下。
  5. 设置场景光照做部分遮挡达到阴影投影到水表面,因为不需要折射和透明,所以投影放在模型表面也算合理。

water_modifier.png
shadernode_water.png
shadernode_foam.png

注解:水面材质的高光是通过视角方向向量减去模型表面向量再做绝对值得到的,因此在此基础上,无法避免一个交点的存在,后面可以把高光的算法优化。

缺点:

非常明显的缺点是波纹是模型投影到水面上的,因此,投影的距离值设置不好就会造成模型重叠面闪烁。并且两个模型之间是有缝的存在。