0

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

4

1 回答 1

1

1:我使用这个模块在 OpenGL 3+ 中渲染立方体

使用 VBO 渲染立方体

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

2:您不会“重新定位”对象,而是更改模型视图/投影矩阵并再次渲染 VBO。

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

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

A. 为每个面创建一个 VAO / VBO,并且只渲染您想要的面。

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

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

于 2013-02-19T08:03:44.690 回答