又遇到让人疑惑的问题

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模式生成纹理坐标的结果吗?

难道是我理解错误了?

原文地址:https://www.cnblogs.com/Pointer/p/80999.html