1
9
glviewport()完全独立于矩阵转换堆栈,可以随时调用。 glloadIdentity()通常在矩阵模式更改后立即调用,因此如果愿意,您将启动“fresh”。gluPerspective()、glortho()、glfrutStum()、glrotate()、glmultmatrix()、gltranslate()等矩阵转换是累积操作,因为它们聚合起来可以让您描述复杂的三维世界空间转换或描述OpenGL查看体积。示例:如果我想让一个立方体在+X方向上转换,然后围绕Z轴旋转,我会发出一个glrotate(),后面跟着一个gltranslate()。 glloadIdentity()使用标识矩阵擦除矩阵(当前矩阵模式),因此glloadIdentity()使用gluPerspective()等同于对glloadIdentity()的单个调用。换言之,这个顺序是无意义的。 颠倒这些顺序,因为gluPerspective()将用透视转换来乘以当前矩阵。如果当前矩阵是同一矩阵,那么乘法只会导致gluPerspective()矩阵转换,这是透视视图时99%的投影矩阵模式所需的转换。 在glmatrixmode()的行为或这些矩阵函数如何修改gl矩阵状态方面,OpenGL和OpenGL ES之间没有区别。 |
2
2
glloadIdentity将一个标识矩阵加载到当前矩阵(由glmatrixMode激活),从而重置它。我不明白首先调用gluPerspective然后调用glloadIdentity如何完成任何合理的事情。 您发布的代码也正是您在普通OpenGL中执行该操作的方式。 |
pats · 在Libgdx中定位和旋转动画 7 年前 |
harryisaac · SceneKit自定义几何体纹理错误 7 年前 |
user8581488 · OpenGL ES3阴影贴图问题 7 年前 |