日志文章

2006年07月15日 23:30:51

Normal mapping渲染

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


   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没有意义,直接使用光照图即可。

Tags: 渲染   法线贴图  

类别: 图形图象 |  评论(0) |  浏览(1983) |  收藏
发表评论
看不清楚,换一张