相关疑难解决方法(0)

glLoadIdentity()在OpenGL中做什么?

我是OpenGL的新手,我对代码中的所有随机函数都有点不知所措.他们工作,我知道何时使用它们,但我不知道为什么我需要它们或他们实际做什么.

我知道glLoadIdentity()用当前矩阵替换当前矩阵,但究竟是做什么的呢?如果每个程序都需要它,除非另有说明,为什么默认情况下不是单位矩阵?除非我知道他们做了什么,否则我不喜欢在我的代码中使用函数.我应该注意到,我专门为丰富的2D客户端使用OpenGL,所以请原谅我的无知,如果这对于3D非常明显.

关于glMatrixMode(GL_PROJECTION)VS 也有点困惑glMatrixMode(GL_MODELVIEW).

opengl graphics

130
推荐指数
3
解决办法
8万
查看次数

gluPerspective,glViewport,gluLookAt以及GL_PROJECTION和GL_MODELVIEW Matricies

原始问题

我想使用'gluPerspective','glViewport'和'gluLookAt'来操纵我的相机和屏幕.

哪个函数适用于哪种矩阵模式?我应该以什么顺序使用它们?

例如,我试图像这样设置我的屏幕和相机:(但它不起作用!)

glMatrixMode(GL_PROJECTION) // Apply following to projection matrix - is this correct?
glLoadIdentity(); // Reset first
glPerspective(45.0, (double)w/(double)h, 1.0, 200.0); // Set perspective
glViewport(0, 0, w, h); // Set viewport

glMatrixMode(GL_MODELVIEW); // Apply following to modelview - should glViewport come under here?
glLoadIdentity(); // Reset first
gluLookAt(px, py, pz, cx, cy, cz, ux, uy, uz); // Set position, centre and then up vectors
// This surely comes after calling GL_MODELVIEW?
Run Code Online (Sandbox Code Playgroud)

我一直在寻找在线文档,我理解这些功能,而不是它们应该去的地方以及它们的顺序!

一段时间以后...

现在几个月后,我正在添加一个快速编辑,以显示我用于使用OpenGL渲染事物的系统.这是为了帮助将来看到这个问题的其他人.

我主要使用两种方法.

方法1:

此方法将所有内容组合在一

// …
Run Code Online (Sandbox Code Playgroud)

opengl mode matrix glulookat

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

opengl ×2

glulookat ×1

graphics ×1

matrix ×1

mode ×1