我想将网格切成碎片。所以我遇到了一个编程问题:如何有效地将新切割节点添加到原始网格VAO(顶点数组缓冲区)?随着切割过程的进行,同时创建了更多新的切割节点。这意味着每个帧都创建了许多新节点。我是否需要通过在每个帧中向VBO和IBO插入新的顶点和索引来重新排列VBO(顶点缓冲区对象)和IBO(索引缓冲区对象)的结构?有人对如何切割网格和更有效地更新VAO有一些好主意吗?
答案 0 :(得分:0)
我有一个类似的问题,Multiple, dynamic model data in opengl。
基本上,根据我的发现,您可以拥有一个VAO和一个VBO集(位置,法线等),然后使用glBufferSubData()手动管理内存。但是我发现对于我想要的东西来说太难了(呃,不是很难,但是很费时),所以我只为每个被截断的部分添加一个VAO和新的VBO。然后,当它们消失时删除它们。基本上只需要制作一个强大的网格/模型系统,它易于调用删除和复制功能。