【问题标题】:PyOpenGL Drawing a Cube with VBOsPyOpenGL 用 VBO 绘制立方体
【发布时间】:2012-12-07 10:16:11
【问题描述】:

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

【问题讨论】:

    标签: python dynamic vbo pyopengl cubes


    【解决方案1】:

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

    Render Cube with VBO

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

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

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

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

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

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

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

    【讨论】:

    • 您的链接提供了 404 页面。
    猜你喜欢
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 2013-11-30
    相关资源
    最近更新 更多