相关疑难解决方法(0)

glLoadIdentity()在OpenGL中做什么?

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

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

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

opengl graphics

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

何时调用glMatrixMode()

我所遵循的Android大多数OpenGL ES教程都有这样的onSurfaceChanged()函数:

public void onSurfaceChanged( GL10 gl, int width, int height ) {
    gl.glViewport( 0, 0, width, height );
    gl.glMatrixMode( GL10.GL_PROJECTION );
    gl.glLoadIdentity();
    GLU.gluPerspective( gl, 45.0f, ( ( float )width / ( float )height ), 0.1f, 100.0f );
    gl.glMatrixMode( GL10.GL_MODELVIEW );
    gl.glLoadIdentity();
}
Run Code Online (Sandbox Code Playgroud)

但是,这里的分组是什么?必须在glViewport之后调用glMatrixMode()吗?并且必须在glMatrixMode()之后立即调用glLoadIdentity()吗?

我之前一直在编写"完整"的OpengGL,在我的旧代码中我首先调用glMatrixMode(),然后调用gluPerspective和glLoadIdentity().好像首先设置了什么矩阵应该用于gluPerspective()和最后设置glIdentity()来完成它.

调用glMatrixMode(),glIdentity()和gluPerspective()的正确顺序是什么?为什么?OpenGL和OpenGL ES之间是否存在设置glMatrixMode()的区别?

android opengl-es

2
推荐指数
1
解决办法
3572
查看次数

标签 统计

android ×1

graphics ×1

opengl ×1

opengl-es ×1