Java OpenGL画一颗星

时间:2009-12-09 21:31:47

标签: java opengl drawing shapes

我正在开发一个OpenGL项目,我想在其中绘制一个星星。它不一定是3D外观星(2d看起来很好)。我有明星中心的xyz坐标,我知道我希望它的大小。我没有做太多的OpenGL / 3d数学编程,所以非常感谢这里的任何帮助。

编辑:更多细节:我不确定这是否可行,但是我可以在3d空间的某个点绘制2D外观星吗?我尝试了一个简单的方块并尝试了类似的东西:

gl.glTranslated(x, y, z);
gl.glBegin(GL.GL_QUADS);
gl.glVertex2D(x-size,y-size);
gl.glVertex2D(x-size,y+size);
gl.glVertex2D(x+size,y+size);
gl.glVertex2D(x+size,y-size);
gl.glEnd();

即使我翻译成x,y,z,广场似乎也没有达到正确的深度。它看起来比应该更接近屏幕的正面。是否可以像这样翻译3d中的2d形状?

感谢,

杰夫

2 个答案:

答案 0 :(得分:3)

您是否设置了projection matrix?如果不是,则可能设置为identity,这意味着顶点的z值对屏幕空间中的渲染位置没有影响。为了获得您想要的深度感,您需要创建透视投影矩阵。您可以使用glFrustum()来创建投影矩阵。这是一个例子(来自Wikipedia's OpenGL page):

glMatrixMode( GL_PROJECTION );      /* Subsequent matrix commands will affect the projection matrix */
glLoadIdentity();                   /* Initialise the projection matrix to identity */
glFrustum( -1, 1, -1, 1, 1, 1000 ); /* Apply a perspective-projection matrix */

网上有大量免费的OpenGL教程,因此您不必在寻找更多信息方面遇到任何麻烦。

答案 1 :(得分:0)

我决定使用3D绘图,看起来翻译实际上已经为我完成了,我不需要重新翻译。所以实际上我正在翻译。感谢大家的帮助。