【发布时间】:2023-03-28 00:20:01
【问题描述】:
我正在使用带有固定功能管道的 opengl 2.0。似乎在opengl 2.0中 他们通过模型视图堆栈推动顶点,该堆栈基本上是(视图矩阵*模型矩阵),其中模型矩阵不提供任何转换,实际上它带来了一个对象,比如一个立方体,中心位于(0,0,0 ) 如果模型视图矩阵加载了单位矩阵。此外,它自身的相机将位于 (0,0,0) 处,向下看负 z 轴。
所以,如果我对立方体使用 translate 调用,我真的是在移动眼睛空间中的立方体吗?
据我所知,广义的查看管道是
顶点->建模矩阵->世界空间,世界空间中的对象->查看矩阵->眼睛空间,眼睛空间对象->投影矩阵->裁剪空间,然后归一化等
所以如果我切换到 模型视图矩阵堆栈() 加载身份() gltranslate(在负 z 方向上增加 5 个单位) gldrawcube()
它会根据翻译将立方体从眼睛空间的中心移动?
我认为我的困惑是我不知道程序启动时加载到模型视图矩阵堆栈中的是什么,我假设它是一个单位矩阵,将所有内容都带到眼睛空间的中心。
【问题讨论】: