【问题标题】:OpenGL: Choose which poly face is forwards?OpenGL:选择哪个多边形面朝前?
【发布时间】:2010-09-18 18:48:59
【问题描述】:

我是 OpenGL 新手。我正在使用 Java/JOGL。

我在处理多边形面时遇到了困难。我希望能够控制哪一侧是正面或背面。我一直在处理这个documentation

我认为这行代码,在我的display() 方法中,会绘制所有多边形面,但它没有效果:

gl.glPolygonMode(GL.GL_FRONT_AND_BACK, GLU.GLU_LINE);

使用它,我可以翻转渲染的面:

gl.glFrontFace(GL.GL_CW);

但是我的多边形有一半面向一个方向,一半面向另一个方向,所以只有一半被渲染过。

我尝试使用gl.glNormal3f() 设置正常,希望这与“正面”有关,但没有效果。

我应该在这里做什么?

谢谢。

【问题讨论】:

    标签: java opengl graphics jogl


    【解决方案1】:

    前面不是由法线定义的,而是顶点的顺序。从前面看多边形时,如果您按照顶点的创建顺序跟踪顶点,您最终会顺时针或逆时针跟踪多边形。如果你从另一边看多边形,你会沿着相反的方向追踪它。

    glFrontFace 设置哪个方向被认为是前面。确保从应该是前面的方向查看时,所有顶点的定义顺序相同。

    【讨论】:

      【解决方案2】:

      也许您启用了剔除功能。如果你禁用它

      glDisable(GL_CULL_FACE);
      

      那么你所有的脸都应该被光栅化,但最好确保你的多边形不是由内而外。

      【讨论】:

        猜你喜欢
        • 2014-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-11
        相关资源
        最近更新 更多