- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在阅读一本关于 OpenGL、SDL 的书,并且已经阅读了一些 OpenGL 文档。我也读过这篇文章:What does glLoadIdentity() do in OpenGL?
我正在掌握 glLoadIdentity() 的作用,以及为什么在一般意义上使用它(将当前矩阵返回到其原始状态)。我不知道的是为什么我要把它恢复到原来的状态。例如:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0f, 640, 480, 0.0f, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
我不太确定为什么每次调用 glMatrixMode 后都必须调用 glLoadIdentity()。
最佳答案
When to call glMatrixMode() -- 第一个答案试图解释:
glLoadIdentity() is typically called immediately after a matrix mode change so you are starting "fresh" if you will. Matrix transforms such as the gluPerspective(), glOrtho(), glFrustum(), glRotate(), glMultMatrix(), glTranslate() are cumulative operations because they aggregate to allow you to describe complex 3D world space transforms or to describe your OpenGL viewing volume. Example: if I want a cube translated in the +X direction then rotated around the Z axis I issue a glRotate() followed by a glTranslate().
glLoadIdentity() wipes out the matrix (of the current matrix mode) with the identity matrix so following a gluPerspective() by glLoadIdentity() is equivalent to a single call to glLoadIdentity(). In other words, that sequence is nonsensical.
关于c - 为什么每次调用 glMatrixMode 后都必须调用 glLoadIdentity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6949954/
将 glRotatef() 放在 glMatrixMode(GL_PROJECTION); 之后有什么区别 glMatrixMode(GL_PROJECTION); glLoadIdentity();
glMatrixMode(GL_PROJECTION)有什么区别和 glMatrixMode(GL_MODELVIEW) ? #include #include #include #define
我学习过的大多数 Android OpenGL ES 教程都有这样的 onSurfaceChanged() 函数: public void onSurfaceChanged( GL10 gl, int
我收到 0 个错误,但我在控制台中得到了这个: >Exception in thread "main" java.lang.NullPointerException >>at org.lwjgl.
我开始研究 OpenGL 的一些东西,我看到了很多调用 glMatrixMode 函数的例子。 根据我收集到的信息,将其设置为 GL_MODELVIEW 或 GL_PROJECTION(等)将激活该特
所以我正在阅读this LWJGL wiki 上的文章提到,“当使用‘向前兼容’上下文时,任何标记为已弃用的功能都将被删除。” 现在,当我实现与显示的前向兼容性时,每当我调用 glMatrixMode
static void resize(int width, int height) { const float ar = (float) width / (float) height;
我目前正在使用 SDL 1.2.4 和 C++Builder 10.0 Seattle。我设置了一个简单的测试程序来检查是否一切正常。 以下代码编译时没有警告或错误,但给我一个运行时错误: Excep
我正在阅读一本关于 OpenGL、SDL 的书,并且已经阅读了一些 OpenGL 文档。我也读过这篇文章:What does glLoadIdentity() do in OpenGL? 我正在掌握
我的下一个问题(或问题)是,当我用 glm 加载模型时,我能够看穿模型的某些部分,例如:如果有两座山在另一座前面,我可以看穿越近的山。 我会展示一张图片,但由于纹理不起作用,所以无法理解。 问题在这里
我想将 OpenGL 与 C++ 结合使用来创建一个带有“相机”(透视图)和要查看的对象的基本场景。我找到了示例代码 here .但出于某种原因,尽管我已将所有必要的包含和库捆绑在一起(见下文), /
在查看红皮书中的 reshape 示例时,我通常会发现如下内容: void reshape(int w, int h) { glViewport(0, 0, (GLsizei) w, (GLs
我有一个 iPhone 应用程序,我在 appDidFinishLaunching 中调用这三个函数: glMatrixMode(GL_PROJECTION); glOrthof(0, rect.si
在 Mac 上的 Parallels 中运行的 Windows 10 上,android 模拟器在启动时崩溃 C:\Android-SDK>.\tools\bin\avdmanager create
我的 OpenGL C++ 项目突然停止识别 glMatrixMode(GL_MODELVIEW)。我去吃晚饭,然后我的项目无法构建。 我在带有 CDT 插件的 Eclipse 中使用 Windows
我将先发布代码,然后发布以下问题: import java.util.Properties; import org.lwjgl.Sys; import org.lwjgl.input.Keyboard
使用 opengl es 演练黑莓 10 sdk。它使用 2 个命令,即: glMatrixMode(GL_PROJECTION); glLoadIdentity(); 及以后: glMatrixMo
我是一名优秀的程序员,十分优秀!