课堂笔记_ 明暗处理、视点变换



明暗处理

人眼的视觉缺陷,即马赫带效应(下图的上部分)。人的眼睛会夸大相邻两个面片之间的颜色差异。所以模型在绘制出来以后,就会看到有棱有角很难看。可以通过插值处理,即明暗处理。

Gouraud明暗处理(1971)和Phong明暗处理(1973):前者是对色彩进行插值,而后者是对法向插值,且与Phong光照模型是不同的概念。

两者都需要先计算角点的法向量,而不同于Gouraud明暗处理,Phong明暗处理不是对色彩(RGB)插值,而是对每个三角形内部的每个点插值生成其法向。这个方法显得奇怪,因为三角形本身就有法向,但是Phong明暗处理没用它,而是用三个顶点插值出来一个法向。这是为什么呢?
区别在于,三角形的法向本来是一个常数,而且各常数数值之间是有跳跃的,就显得颜色效果不连续。而且插值插出的法向不是原来表面那个法向了,是一种逼近。具体来说,有一个光滑曲面的物体如茶壶,然后选用面片线性逼近它,这个时候肯定是存在误差的,因此用平面片的法向不如用原始曲面上的法向效果好。但原始曲面是无法知道的。通过法向插值得到的法向某种程度上是对原来真正的光滑曲面的一种近似,所以这样使用插值出来的法向效果会更好。
明暗处理

视点变换和视点方向

使用变换可以使代码更加快速、灵活、模块化。基本变换分四类:不变变换、平移变换、旋转变换、缩放变换。简单变换都是可逆的。
变换的分类(对基本变换的简单组合):
刚体变换(Rigid-body Transformation):不变、平移、旋转及其组合,保长度、角度、大小不变。
相似变换(SImilarity Transformation):不变、平移、旋转、缩放及其组合,保角度不变
线性变换(Linear Transformation):不变、旋转、缩放、对称、错切

仿射变换(Affine Transformation):保持直线以及直线与直线的平行,即两条在仿射变换之前平行的直线,在仿射变换之后依旧平行。包括:线性变换、相似变换、以及他们的组合。
投影变换(Projective Transformation):三维->二维

法向量变换

曲面的(单位)法向量是曲面与曲面正交的(单位)向量,他是曲面最为重要的几何性质之一。

对于相似变换,法向量可以和物体使用同样的变换方程;

对于带有错切的仿射变换,同样的方程则不适用。

如何对法向量变换?
变换切平面,再通过切平面计算法向量,而不是直接计算。

由切向量计算法向量:
由切向量计算法向量
由切向量计算法向量