JOGL - 翻译GL_QUADS

时间:2013-02-20 15:25:16

标签: java opengl jogl

在JOGL中我尝试使用GL_QUADS(即整个对象的不同组件)创建一些3D形状,到目前为止,这样做很好但我无法弄清楚如何翻译形状,必须有一种方法这样做,但我不熟悉GL_QUADS所以我不完全确定如何去做这件事。编辑gl.glVertex3f只会导致形状不同,这似乎是我可以编辑的唯一内容,是否可以为GL_QUAD提供变量名称?

2 个答案:

答案 0 :(得分:2)

您可以使用glTranslatef功能:

// render the shape
gl.glTranslatef(5.0f, 0.0f, 0.0f); // translate along x, y, z
// render the shape - you will now have two shapes next to each other

答案 1 :(得分:1)

调用gl.glTranslatef(1.0f, 0.0f, 0.0f);将应用于堆栈中的当前矩阵,实际上意味着从那时开始绘制的任何内容都将在x轴上显示1个单位,而不是之前的矩阵(可能是您的原点)情况)。

我可以看到为什么它可能看起来令人困惑,而不是创建形状然后移动它(无法完成,它已经被绘制),你要翻译然后画出你的形状。

例如:

gl.glPushMatrix();
    gl.glTranslatef(1.0f, 0.0f, 0.0f);
    gl.glBegin(GL2.GL_QUADS);
        // draw some vertices here
    gl.glEnd();
gl.glPopMatrix();