首页
学习
活动
专区
圈层
工具
发布

Pyglet
EN

Stack Overflow用户
提问于 2015-10-30 22:22:37
回答 1查看 289关注 0票数 0

我使用PyOpenGL已经很长时间了,但是现在,我转向了PyGlet。PyGlet更严格的PyOpenGL,所以我现在正在学习它。我用VBO编写了一个简单的代码来呈现一个三角形(我从PyGlet教程中获得了这个基),但是它并不适用于我。

它应该渲染一个彩色的三角形,但它不是呈现一个白色的三角形。我做错什么了?

这是我的密码:

代码语言:javascript
复制
from pyglet.gl import *

window = pyglet.window.Window()
glEnableClientState(GL_VERTEX_ARRAY)
vertices = [
    0,0,0,
    window.width,0,0,
    window.width,window.height,0]

colors=[1.0,0.0,0.0,
        0.0,1.0,0.0,
        0.0,0.0,1.0]

class VBO():
    def __init__(self):
        self.buffer=(GLuint)(0)
        glGenBuffers(1,self.buffer)
    def data(self,data):
        data_gl= (GLfloat * len(data))(*data)
        glBindBuffer(GL_ARRAY_BUFFER_ARB, self.buffer)
        glBufferData(GL_ARRAY_BUFFER_ARB, len(data)*4,
                    data_gl, GL_STATIC_DRAW)

    def bind(self):
        glBindBuffer(GL_ARRAY_BUFFER_ARB, self.buffer)
    def vertex(self):
        self.bind()
        glVertexPointer(3, GL_FLOAT, 0, 0)
    def color(self):
        self.bind()
        glColorPointer(3, GL_FLOAT, 0, 0) 




vbo=VBO()
vbo.data(vertices)
color=VBO()
color.data(colors)

@window.event
def on_draw():
    glClear(GL_COLOR_BUFFER_BIT)
    glLoadIdentity()
    vbo.vertex()
    color.color()
    glDrawArrays(GL_TRIANGLES, 0, len(vertices) // 2)

@window.event
def on_resize(width, height):
    glViewport(0, 0, width, height)
    glMatrixMode(gl.GL_PROJECTION)
    glLoadIdentity()
    glOrtho(0, width, 0, height, -1, 1)
    glMatrixMode(gl.GL_MODELVIEW)

pyglet.app.run()

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-31 02:45:12

通过添加以下内容,我能够获得显示的颜色:

代码语言:javascript
复制
...

glClientStateEnable(GL_COLOR_ARRAY) 

vbo=VBO()
vbo.data(vertices)
color=VBO()
color.data(colors)

...

用于pyglet的嵌入式文档非常没有帮助,但是glColorPointer的手册页面非常清楚地指出,glDrawArray忽略了颜色数组,直到通过glClientStateEnable启用了GL_COLOR_ARRAY。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33445742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档