【发布时间】:2016-04-08 01:36:01
【问题描述】:
我有一个 3d 网格(稀疏八叉树),其中每个叶子(最深节点)存储一个带颜色的 3d 点。我想把整个八叉树转换成3d点的线性数组(顶点缓冲区),可以直接上传到OpenGL。
以一种天真的方式,我可以遍历八叉树的所有节点并填充线性数组。
现在,我面临的问题是,当我向稀疏八叉树添加新的 3d 点并想要更新顶点缓冲区时,我必须遍历整个八叉树才能将数据导入 OpenGL。
有没有人知道如何在只更新/添加几个点时避免完整的迭代?
我能想到的唯一方法是记住八叉树中的哪些元素已添加,并将它们直接附加到顶点缓冲区数组。这会更好,但是当我从八叉树中删除一个元素时就不起作用了。
我使用 C++。
【问题讨论】:
标签: opengl caching vertex-buffer octree