【问题标题】:Glut Solid Shape Renders as Wire when calling GLClear in JOGL在 JOGL 中调用 GLClear 时,Glut Solid Shape 渲染为线
【发布时间】:2011-03-23 21:37:21
【问题描述】:

我正在尝试在 JOGL(和 Eclipse)中渲染一些简单的实体形状,然后逐层逐层遍历它们;但是当我添加 glClear 方法时,我得到的只是线框,而不是填充的形状!?如果我评论该行(如下所示)显示实心形状但“填充”到最大形状将是然后不会再次缩小。例如,如果有一个球体,前半部分很好,但如果有意义的话,后半部分会变成一个实心圆柱体。

public void render(GLAutoDrawable gLDrawable)
{       
    GL2 gl = gLDrawable.getGL().getGL2();

    **//gl.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT);**

    gl.glColor3b((byte) 0, (byte) 127, (byte) 0);   
    gl.glLoadIdentity();

    gl.glTranslatef(500, 350, -300);

    glut.glutSolidSphere(300.0, 20, 16);

    gl.glTranslatef(-500, -350, 300);       


    gl.glEnd();     
    gl.glFlush();
}

任何帮助将不胜感激,如果需要,我会发布更多代码。

谢谢 蒂姆

已编辑更有意义

【问题讨论】:

    标签: glut jogl


    【解决方案1】:

    在创建球体之前插入它...它将告诉 Opengl 填充下一个绘制的多边形...

    gl.glPolygonMode(gl.GL_FRONT_AND_BACK, gl.GL_FILL);
    

    如果您想要再次使用线框,只需调用:

    gl.glPolygonMode(gl.GL_FRONT_AND_BACK, gl.GL_LINE);
    

    :)

    【讨论】:

    • 干杯 d0lph1n;我已经尝试过了,它得出了相同的结果:(
    • 经过大量研究,我发现我很愚蠢!任何 3D 图形程序都只是通过填充面来创建实体对象的“幻觉”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多