《Unity Shader入门精要》| 读书笔记(九)

第14章 非真实感渲染

其实我很早就听说过非真实感渲染这个技术了,在这篇文章中有写过。当时感觉这项技术特别神秘,但是在这段时间学习了渲染方面的知识之后,感觉它的原理还是挺简单的。不过要想达到更好的效果则需要更复杂的算法、花费更多一点的心思。

卡通风格

卡通风格和我们平时渲染出来的3D模型最大的区别在于两点:光照模型不同和描边。

在《Real-Time Rendering 3》一书中,总结了5中描边方法,具体的算法参见书中的介绍:

  • 基于观察角度和表面法线的轮廓线渲染
  • 过程式几何轮廓线渲染
  • 基于图像处理的轮廓线渲染
  • 基于轮廓边检测的轮廓线渲染
  • 综合方法

在本书的例子中使用了第二种描边方法:

  1. 先渲染背面的片元,将其渲染成轮廓颜色并沿着法线方向扩张,再正常渲染正面的片元,盖住背面的片元,露出的边缘就可以看做描边;
  2. 法线的扩张在相机空间下;
  3. 如果z坐标不同,对边缘的粗细有影响,因此先把z坐标设置成固定的值,这样就相当于一个平面了。

光照模型使用的是渐变纹理的方法,并生成一个有明显边缘的高光。

素描风格

和上面类似,使用不同的纹理表示画中深浅不同的部分,根据漫反射结果对纹理采样。

素描纹理

图片来自 得无

你可能感兴趣的:(《Unity Shader入门精要》| 读书笔记(九))