PyOpenGL使用VBO绘制多维数据集

时间:2012-12-19 23:26:56

标签: python dynamic vbo pyopengl cubes

我有一个问题(实际上有几个)
1)如何使用顶点缓冲对象在Python中渲染立方体?
2)我怎样才能多次重新定位该立方体
3)我怎么不去渲染某些面孔呢? (我有一个八叉树存储位置,我想不要渲染相互碰触的面孔)
感谢

1 个答案:

答案 0 :(得分:1)

1:我使用此模块在OpenGL 3 +中呈现立方体

Render Cube with VBO

如果你没有模型视图/投影矩阵,只需传入'numpy.identity(4)',这将使顶点以原点为中心。 这也意味着相机将出现在立方体内部,因此可能无法看到。

2:你没有'重新定位'对象,你改变模型视图/投影矩阵并再次渲染VBO。

立方体的顶点不知道3D空间中的位置,它们是相对于原点的。渲染时,应用矩阵(投影*模型视图)移动立方体的顶点。

3:有很多方法可以做到这一点:

一个。每个面创建一个VAO / VBO,只渲染你想要的面。

B中。将顶点属性分配给与每个面对应的每个顶点。然后,使用统一值,为顶点/片段着色器传递足够的信息,以了解它们是否应该渲染。 您可以使用单个整数轻松实现此功能,并使用单个位来表示每个面。

我会使用B,因为你不经常改变VAO / VBO状态,只改变6个值(每个面都有1个)。