从顶点绘制3D多边形(OpenGL / C ++)

时间:2013-05-05 17:28:34

标签: c++ opengl graphics 3d vertices

好的,这让我疯狂了4天了。我没有生成顶点/点的问题,但是如何以合理有效/优雅的方式从它们中制作闭合多边形或线框?

另一个问题是如何存储顶点?我应该以什么顺序存储3D对象的顶点?我真的想不起了,我在网上寻找解决方案,却找不到任何解决方案。

我想到的是将顶点存储在2D数组中,水平(x和z)边循环作为行,垂直(y)作为列,但我怀疑这是一个很好的方法。

2 个答案:

答案 0 :(得分:1)

创建一个顶点的一维数组,并按照您喜欢的顺序放置它们(尽管为了保持它们在条带中的示例排序,性能要好得多......)。创建一个索引数组(例如一个short数组),索引数组中的每个元素都应该指向顶点数组中顶点的索引。将它们构建为一维数组的原因是这是OpenGL内部处理事物的方式。

如果您的问题是您没有元素数组但只有一组要绘制为网格的点,则首先需要生成此类数组。首先要了解三角形拓扑的基础知识:http://gamma.cs.unc.edu/COMP770/LECTURES/11trimesh.pdf然后考虑从一组点生成网格的方法。

答案 1 :(得分:1)

对于3d顶点,没有标准顺序。您可以根据自己的喜好订购它们,也可以根据自己的喜好进行订购。

相关问题