好吧,所以我试图通过绘制6个面绘制一个立方体。在opengl中绘制一个3d平面给出两个向量
我通过给定两个向量来定义立方体本身的每个面。具体如下:
不过,现在我有一个如何绘制在OpenGL中这些面孔(只是一个小纸条,我使用LWJGL,这是Java库建立在OpenGL模式)的麻烦。
我试图画出这些面孔,但我相信我有一个轻微的错误,我似乎无法得到正确的结果。目前,我已经尝试如下绘制的面孔:
public void render() {
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex3f(v2.x, v1.y, v1.z);
GL11.glVertex3f(v1.x, v1.y, v1.z);
GL11.glVertex3f(v1.x, v2.y, v2.z);
GL11.glVertex3f(v2.x, v2.y, v2.z);
GL11.glEnd();
}
但似乎这里,只有顶面和底面得到正确绘制,而侧面(左/右)面甚至不可见。
如何正确绘制这些图像?
这将有助于如果你能澄清一些事情你码。由于立方体的每个面都需要4个顶点来制作该面的四边形,我假设您的渲染功能仅绘制了立方体的一个面,是正确的? Vector的定义也有点混乱。传统上,您会将矢量想象为具有X,Y,Z位置以及X,Y和Z方向的大小。你的向量似乎只有3个字段,这些应该是你的向量的大小或位置? – aoi222
澄清 - 是的,每个人脸都使用我指定的渲染方法绘制。这里的每个向量都是一个简单的Vector3f对象,它有一个X,Y和Z位置。 – Zilarion
我相信Vector3f类的X,Y和Z分量并不是用作矢量的大小,而不是矢量的起始位置。如果你纯粹将它们用作存储类而不利用课堂上的其他功能,那么这可能不是什么大问题。你需要考虑到你的两个向量开始的点(下面的a.lasram的帖子)。 – aoi222