使用不同颜色绘制多个点的最简单,最易格式的方法是什么?
现在我执行以下操作:
paintGL(self):
...
glBegin(GL_POINTS)
for x, y, z, r, g, b in points:
glColor(r, g, b)
glVertex3f(x, y, z)
glEnd()
当为paintGL()中的每一帧绘制它们时,这对于~50k点来说非常慢。我希望能够旋转和缩放云。
我已经看过glDrawElements,glDrawArrays,我也听说过着色器和东西。请指出我正确的方向。
UPDATE2:
我找到了一种方法,这里是:
def init(self):
...
points = np.array(points, dtype=np.float64)
colors = np.array(colors, dtype=np.float64)
self.count = len(points)
self.vbo_points = VBO(points)
self.vbo_colors = VBO(colors)
def paintGL(self):
...
self.vbo_points.bind()
glEnableClientState(GL_VERTEX_ARRAY)
glVertexPointer(3, GL_DOUBLE, 0, self.vbo_points)
self.vbo_colors.bind()
glEnableClientState(GL_COLOR_ARRAY)
glColorPointer(3, GL_DOUBLE, 0, self.vbo_colors)
glDrawArrays(GL_POINTS, 0, self.count)