好吧,这已经让我发疯四天了。我在生成顶点/点方面没有问题,但是如何以相当有效/优雅的方式从它们制作闭合多边形或线框?
另一个问题是如何存储顶点?我应该以什么顺序存储 3D 对象的顶点?我真的无法再思考了,我在网上寻找解决方案,但找不到任何解决方案。
我想到的是将顶点存储在二维数组中,水平(x 和 z)边缘循环作为行,垂直(y)作为列,但我怀疑这是一个好方法。
最佳答案
创建一个一维顶点数组,并将它们按照您喜欢的顺序放置(尽管为了性能要好得多,例如在 strip 中对它们进行排序...)。创建一个索引数组(例如短裤数组),索引数组中的每个元素应指向顶点数组中顶点的索引。将它们构建为一维数组的原因是这是 OpenGL 内部处理事物的方式。
如果您的问题是没有元素数组,而只有一组想要绘制为网格的点,则首先需要生成这样的数组。首先了解三角形拓扑的基础知识:http://gamma.cs.unc.edu/COMP770/LECTURES/11trimesh.pdf然后考虑如何从一组点生成网格。
关于c++ - 从顶点绘制 3D 多边形 (OpenGL/C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16387146/