又遇到让人疑惑的问题

RedBook里关于使用GL_EYE_LINEAR模式自动生成纹理坐标的原理也看不明白了。

<xe, ye, ze, we>是眼坐标系中的顶点坐标,也就是经过了模型视图变换后的顶点坐标吧。
M-1是模型视图矩阵的逆矩阵。

generated coordinate = p1' xe + p2' ye + p3' ze + p4' we
where (p1' p2' p3' p4') = (p1 p2 p3 p4)M-1

即:generated coordinate = (<p1,p2,p3,p4> * M-1) * <xe,ye,ze,we>T = <p1,p2,p3,p4> * (M-1 * <xe,ye,ze,we>T)
因为经过模型变换后的顶点坐标乘以模型变换矩阵的逆矩阵(M-1 * <xe,ye,ze,we>T)实际上是将顶点坐标变换到最初始时的位置。
所以generated coordinate = <p1,p2,p3,p4> * (M-1 * <xe,ye,ze,we>T) = <p1,p2,p3,p4> * <xo,yo,zo,wo>T

这不是采用GL_OBJECT_LINEAR模式生成纹理坐标的结果吗?

难道是我理解错误了?

posted @ 2004-12-23 14:43  Pointer  阅读(532)  评论(0编辑  收藏  举报