比如原神一类的游戏所使用的渲染就是非真实渲染 (Non-Photorealistic Rendering,NRP), 偏真实渲染则一般称为 - 照相写实主义渲染 (Photorealism Rendering)-
非真实渲染的一个主要目标是,使用一些渲染方法使得画面达到和某些特殊的绘画风格相似的效果,如卡通,水彩风格等。 基于色调的着色技术 (tone-based shading)。
# 渲染轮廓线
常见的有五种渲染方法
- 基于观察角度和表面法线的轮廓线渲染。
这种方法使用视角方向和表面发现的点乘结果来得到轮廓线的信息。 基本都不尽人意
- 过程式几何轮廓线渲染。
这种方法的核心是使用两个 Pass 渲染,一个渲染背面的面片,第二个渲染正面的面片。 适用于表面光滑的模型
- 基于图像处理的轮廓线渲染。
如基于图片的边缘检测。 一些深度与法线变化很小的轮廓无法被检测出来
- 基于轮廓边检测的轮廓线渲染。
上面的大部分方法都无法控制轮廓线的风格渲染。比如我们想要渲染出水墨画风格等。所以我们希望可以检测出精确的轮廓边。这个公式很简单,我们只需要检查和这条边相邻的两个三角面片是否满足:
和 分别表示两个相邻三角面片的法向量 是从视角到该边上任意顶点的方向。
- 最后一个种类是是上述几种方法的混合
# Dot
A 向量点乘 B 向量的值 和 A 与 B 之间的夹角 的关系 夹角大于 (正负 90 度) 点乘值会变成负数 方向一致 值为 1 方向相反 值为 0