0

对于学校,我想做一个游戏。所以我决定制作类似Minecraft的游戏。

例如,如果我像这样绘制立方体的正面:

glBegin(GL_QUADS);
glVertex3f(0f,0f,0f);
glVertex3f(0f,1f,0f);
glVertex3f(1f,1f,0f);
glVertex3f(1f,0f,0f);
glEnd();

矩形太大了。因此,必须使用 0.0001f 之类的东西,而不是使用 1f。所以位置对我来说更难计算。

我做错了什么还是有办法让现在的一切都变小(通过改变视角左右的东西)?

抱歉这个愚蠢的问题,我是 lwjgl 和 opengl 的新手。

4

2 回答 2

0

立方体不能太大,一切都是相对的。
如果从 1.0f 的距离看 1.0fx 1.0f 的矩形,它会很大。从 100.0f 看时,您会看到一个小点。
只需学习如何设置相机位置和使用透视投影。
透视投影示例:

GL11.glViewport(0, 0, Display.getWidth(), Display.getHeight());
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GLU.gluPerspective(90f, Display.getWidth() / Display.getHeight(), 0.1f, 5000f);

相机位置示例:

GLU.gluLookAt(x, y, z, viewX, viewY, viewZ, upX, upY, upZ);

您还应该了解什么是向上向量。

于 2013-05-27T12:41:31.210 回答
0

我看到您的问题有两种选择。

  • 你可以从你的 glVertex3f 中取出所有的,然后乘以一个十进制数来缩小它们

  • 或者您可以尝试使用 GL11.glScalef(x, y, z) 这应该通过此方法中指定的 x、y 和 z 值缩放您传入的坐标。您可以在开始绘制立方体之前调用此方法。

跳这有帮助。

于 2013-05-27T10:31:42.917 回答