从投影角度看到的场景
从旁观角度看到的场景
实现:
投影纹理的做法关键是使用OpenGL的自动纹理坐标生成功能
启用纹理坐标生成
指定视点的变换矩阵
注:这里要注意对于视点空间矩阵的指定必须在MODELVIEW矩阵乘以模型矩阵之前完成,否则纹理矩阵会受到模型矩阵的影响产生错误的效果
指定纹理坐标的生成模式
使用了自动纹理坐标生成功能以后,对于多边形顶点的纹理坐标指定就没有作用了,也就是说这个功能可以直接覆盖原有的纹理坐标指定
最后,当我们完成投影纹理渲染,希望回到正常纹理坐标模式下时,只需要屏蔽纹理坐标生成功能
附上完整代码: