如何在 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);
}
- 你的 zNear 平面不应该是负的
gluPerspective(45, width/height, 0.1, 1000);
- 你试过把茶壶放在-360度吗? .你确定你的观点是 +z 而不是 -z
- 你的茶壶比例是多少?。可能是太小了,离得太远根本看不到
放置坐标 > 100.0f 不是个案。对于初学者来说,你的 furstrum 是错误的,因为 zNear 值应该 > 0。观察 frustrum 没有负区域 :)。
您在 ModelView 矩阵上所做的翻译是错误的方式。即将 z 转换为 -360.0f。
See here for more information on OpenGL axis。如果您将一个对象向左移动 n 个单位,那么从相机的角度来看,您已经将它向右移动了 n 个单位。
当我这样放置坐标时:
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);
}
- 你的 zNear 平面不应该是负的 gluPerspective(45, width/height, 0.1, 1000);
- 你试过把茶壶放在-360度吗? .你确定你的观点是 +z 而不是 -z
- 你的茶壶比例是多少?。可能是太小了,离得太远根本看不到
放置坐标 > 100.0f 不是个案。对于初学者来说,你的 furstrum 是错误的,因为 zNear 值应该 > 0。观察 frustrum 没有负区域 :)。
您在 ModelView 矩阵上所做的翻译是错误的方式。即将 z 转换为 -360.0f。
See here for more information on OpenGL axis。如果您将一个对象向左移动 n 个单位,那么从相机的角度来看,您已经将它向右移动了 n 个单位。