我试图了解在 OpenGL 中创建空间:
对象空间
世界空间
相机空间
投影空间
我对这些阶段的理解是否正确?
“立方体”正在笛卡尔坐标系的中心创建,直接在程序内部输入顶点坐标。
坐标转换为“世界”内部的坐标,这意味着将其移动到屏幕上的任何位置。
好吧,实际上我希望您检查一下我对这两个术语的理解。
现在,我正在黑屏上创建一个三角形。openGL 代码如何适应这些空间?
默认情况下它适用于GL_MODELVIEW
标志,但这是第二阶段 - 世界空间。这是否意味着调用glVertex3f()
会在对象空间中创建一个三角形?
世界空间部分在哪里?
另外,我读到最后两个空格不是 openGL 管道的一部分(或其他任何名称)。但是,OpenGL 包含诸如 之类的标志GL_PROJECTION
,例如:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(0, 0, w, h); // w - width, h - height
gluPerspective(45, ratio, 1, 100); // radio = w/h
glMatrixMode(GL_MODELVIEW);
这段代码有什么作用?它设定了视角。它会创建 z 轴吗?但它不是已经是对象空间部分了吗?