NPR也就是非真实感渲染,它与PBR是相对的。
卡通渲染,素描,油画,水墨等都是属于NPR。
总的来说卡通渲染主要分为两部分。
第一部分就是描边。
描边主要分为一下几类:
1.传统利用dot(N,V)来检测
2.利用两个Pass扩张顶点
3.Z便宜
4.利用几何着色器的线框
5.屏幕后效基于深度和法线的检测
第二部分是内部颜色部分。
首先我们观察到卡通变化的光照颜色变化并不是平滑过渡的,所以我们进行梯度漫反射,这个可以通过一维纹理或者对满反射系数进行分割。
高光部分也不是平滑过渡的,可以利用smoothstep来达到效果。
还有基于色调的着色技术(tone-based shading),公式如下:
在素描方面,首先准备好过度的线图,然后进行分割漫反射系数,在过度部分进行lerp即可达到效果。
水墨,我查了很多资料,渲染的方式也很多,但是很多都是用一维高斯纹理来查找的。
下面是我学习NPR时的一些资料:
https://blog.uwa4d.com/archives/usparkle_cartoonshading.html
http://doc.okbase.net/zhanlang96/archive/125006.html
http://gad.qq.com/article/detail/18724
http://gad.qq.com/article/detail/10052