0
我在學習PyOpenGL
並在PyQt5
應用程序中使用它。我試圖將我的一些簡單示例從C++
/Qt
轉換爲Python
。以下示例應在黑色背景上繪製白色三角形。至少它在相應的代碼中包含C++
/Qt
代碼。但它什麼都不做,只是一個黑色的窗口。任何想法我失蹤?請注意,我需要使用着色器的「現代」方法(但根據我的知識 - 我可能是錯的 - 下面的代碼應該使用默認的平凡着色器,即2D中的白色),而不是所有舊式的glBegin()
,glEnd()
。PyQt5應用程序中的極簡PyOpenGL示例
import numpy as np
from OpenGL import GL
from PyQt5.QtWidgets import QOpenGLWidget, QApplication
class OpenGLWidget(QOpenGLWidget):
def initializeGL(self):
vertices = np.array([0.0, 1.0, -1.0, -1.0, 1.0, -1.0], dtype=np.float32)
bufferId = GL.glGenBuffers(1)
GL.glBindBuffer(GL.GL_ARRAY_BUFFER, bufferId)
GL.glBufferData(GL.GL_ARRAY_BUFFER, vertices.size, vertices, GL.GL_STATIC_DRAW)
GL.glEnableVertexAttribArray(0)
GL.glVertexAttribPointer(0, 2, GL.GL_FLOAT, GL.GL_FALSE, 0, 0)
def paintGL(self):
GL.glDrawArrays(GL.GL_TRIANGLES, 0, 3)
app = QApplication([])
widget = OpenGLWidget()
widget.show()
app.exec_()