1

我通过绘制一个四边形来创建一个简单的渐变背景,如下所示:

 glMatrixMode GL.GL_PROJECTION
 glLoadIdentity

 glMatrixMode GL.GL_MODELVIEW
 glLoadIdentity

 ***glPolygonMode GL_FRONT_AND_BACK, GL_LINE*** 

 glDisable glcDepthTest

   glBegin bmQuads

     glColor4d 1, 0, 0, 1

     glVertex2i -1, -1
     glVertex2i 1, -1

     glColor4d 0, 0, 1, 1

     glVertex2i 1, 1
     glVertex2i -1, 1

    GL.glEnd

  GL.glEnable glcDepthTest

然后我设置我的查看矩阵并绘制我的 3D 场景。当(场景的)多边形模式设置为 GL_FILL 时,这可以按预期工作,但是当我将(场景的)多边形模式设置为 GL_LINE 或 GL_POINT 时,背景四边形消失并且背景绘制为glClearColor中指定的颜色.

我尝试了几种不同的混合选项(包括完全禁用它),所以我认为问题与混合模式无关。

编辑:在上面的代码中添加以下多边形模式可以解决这个问题!

glPolygonMode GL_FRONT_AND_BACK, GL_LINE

4

1 回答 1

1

在绘制背景多边形之前,您需要将 GL_FILL 的多边形模式推入堆栈,然后将其从堆栈中弹出。

于 2009-06-30T17:13:26.467 回答