2012-12-19 24 views
0

我有一个问题(其实有一些)
1)如何用顶点缓冲区对象渲染Python中的立方体?
2)我该如何重新定位该立方体多次
3)我该如何解决不在其上渲染某些面部的问题? (我有一个八叉树存储的位置,我想没有渲染触摸海誓山盟面)
感谢PyOpenGL用VBOs绘制一个多维数据集

回答

1

1:我使用这个模块来呈现立方体在OpenGL 3+

Render Cube with VBO

如果您没有模型视图/投影矩阵,只需传入'numpy.identity(4)',这将使顶点集中在原点附近。 这也意味着相机将出现在立方体内部,因此它可能不可见。你不需要'重新定位'对象,你可以改变模型视图/投影矩阵并再次渲染VBO。

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

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

A.每个面创建VAO/VBO,只呈现你想要的面孔​​。

B.为每个面对应的每个顶点分配一个顶点属性。然后,使用统一的值,为顶点/片段着色器传递足够的信息以知道它们是否应该渲染。 你可以用一个整数很容易地实现它,并用一个位来表示每个面。

我会使用B,因为您不是经常更改VAO/VBO状态,只是更改6个值(每个面1个)。

+0

您的链接提供了一个404页面。 – jakebird451

+0

感谢您的通知,我更新了链接=) – Rebs