|
描述: 加了高光的茶壶
图片:

Normal mapping也叫Dot3 bump mapping,就是采用一张法线图来对多边形的法线进行骚动,用来提高低模光照的真实性。法线图里的法线是定义在纹理空间的,其中Z轴垂直纹理向上。-1.0到1.0的法线分量被编码到纹理的RGB三个通道里(0.0到1.0)。所以没有法线骚动的地方颜色为[127, 127, 255](是一种淡紫色)。 在渲染之前,要把与法线有关的参数(比如光向量L、半角向量H和视线向量V)转换到纹理空间,这是通过使用一个3x3旋转矩阵来实现的。这个矩阵为: | T.x T.y T.z | | B.x B.y B.z | | N.x N.y N.z | (其中T是多边形在纹理梯度上的切向量,N是多边形法向量,计算时左乘向量) B被称为副法线,可以通过(N cross T) * T.w得到,其中T.w是用来区分左右手坐标系的,其值为1.0或-1.0,在计算切线的时候计算。为了减少多边形的数据量,一般B在GPU上计算。T、B、N三者必须是正交的。 渲染时,只需根据纹理坐标读法线图,乘以2.0减去1.0得到法线,然后根据纹理空间里的参数使用光照方程来计算即可。 对于静态光照(物体不动或光源不动)不带镜面反射,使用Normal mapping没有意义,直接使用光照图即可。
|
一共有 0 条评论