在OpenGL中绘图总是

2024-05-20 14:10:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用OpenGL绘制一些简单的三角形。 问题是,当我用glColor3f函数添加一些颜色时,我的三角形总是白色的:

def OnDraw(self):

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
    glClearColor(.1, 0.1, 0.1, 1.0)

    glBegin (GL_TRIANGLES)
    glColor3f (1.0, 0.0, 0.0)
    glVertex2f (0.25, 0.25)
    glColor3f (0.0, 1.0, 0.0)
    glVertex2f (0.12, 0.25)
    glColor3f (0.0, 0.0, 1.0)
    glVertex2f (0.25, 0.4)
    glEnd()

这里是我的初始化:

^{pr2}$

有什么想法吗?在


Tags: 函数self颜色defbufferbit绘制opengl
2条回答

在启用照明的情况下,计算不再考虑顶点颜色。相反,您必须设置材质属性。但是顶点颜色非常方便,所以有一种方法可以使用顶点颜色来设置材质属性。在

glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);

不过,要注意的是,法线必须提供奇怪的光照。最好暂时禁用照明。在

另一个注意事项:请停止使用旧的即时模式,固定函数管道OpenGL。学习现代OpenGL。我建议从http://arcsynthesis.org/gltut开始。在

我解决了这个问题 glEnable(GL_深度_测试) glEnable(GL_照明) 嘉能伯(GL iu LIGHT0)

有人能解释一下为什么它现在能用吗?在

相关问题 更多 >