- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在查看红皮书中的 reshape 示例时,我通常会发现如下内容:
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
glMatrixMode(GL_MODELVIEW);
}
glMatrixMode(GL_PROJECTION);
后跟
glLoadIdentity();
重置投影矩阵,但我不明白为什么
glMatrixMode(GL_MODELVIEW)
通常在 reshape 结束时调用。
glFrustum
影响投影矩阵,对吧?为什么是
GL_MODELVIEW
后来打电话?如果最后一次调用
glMatrixMode(GL_MODELVIEW)
会有什么不同吗?被省略了吗?
最佳答案
您的大部分渲染代码都会影响 GL_MODELVIEW
,因为它会影响对象平移和相机位置。但是,调整大小的代码适用于 GL_PROJECTION
.程序员可能在他的大部分代码中假设当前矩阵是模型 View 之一,当需要影响不同的矩阵时,他/她会更改矩阵,更新它,然后将目标更改回 GL_MODELVIEW
所以其余的代码不会针对错误的矩阵。
通常,OpenGL 函数会影响当前目标的任何矩阵,这就是您更改矩阵的原因。
关于opengl - 为什么 reshape 代码以 glMatrixMode(GL_MODELVIEW) 结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4241166/
static void resize(int width, int height) { const float ar = (float) width / (float) height;
将 glRotatef() 放在 glMatrixMode(GL_PROJECTION); 之后有什么区别 glMatrixMode(GL_PROJECTION); glLoadIdentity();
glMatrixMode(GL_PROJECTION)有什么区别和 glMatrixMode(GL_MODELVIEW) ? #include #include #include #define
在查看红皮书中的 reshape 示例时,我通常会发现如下内容: void reshape(int w, int h) { glViewport(0, 0, (GLsizei) w, (GLs
我的 OpenGL C++ 项目突然停止识别 glMatrixMode(GL_MODELVIEW)。我去吃晚饭,然后我的项目无法构建。 我在带有 CDT 插件的 Eclipse 中使用 Windows
原始问题 我想使用“gluPerspective”、“glViewport”和“gluLookAt”来操作我的相机和屏幕。 我将哪些功能应用于哪种矩阵模式?我应该/必须以什么顺序使用它们? 例如,我正
我是一名优秀的程序员,十分优秀!