如何在 opengl 中放置坐标 > 100.0f?

How to place coordinates > 100.0f in opengl?

当我这样放置坐标时:

display(){
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
    glTranslatef(0.0f, 0.0f, 360.0f);
    drawTeapot();

    glutSwapBuffers();
}

茶壶不可见,我希望它在 360.0f 可见。

我正在使用它进行初始化,

init()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();

gluPerspective(45, width/height, -1000, 1000);
}
  1. 你的 zNear 平面不应该是负的 gluPerspective(45, width/height, 0.1, 1000);
  2. 你试过把茶壶放在-360度吗? .你确定你的观点是 +z 而不是 -z
  3. 你的茶壶比例是多少?。可能是太小了,离得太远根本看不到

放置坐标 > 100.0f 不是个案。对于初学者来说,你的 furstrum 是错误的,因为 zNear 值应该 > 0。观察 frustrum 没有负区域 :)。

您在 ModelView 矩阵上所做的翻译是错误的方式。即将 z 转换为 -360.0f。

See here for more information on OpenGL axis。如果您将一个对象向左移动 n 个单位,那么从相机的角度来看,您已经将它向右移动了 n 个单位。