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

标签 c++ opengl graphics 3d vertices

好吧,这已经让我发疯四天了。我在生成顶点/点方面没有问题,但是如何以相当有效/优雅的方式从它们制作闭合多边形或线框?

另一个问题是如何存储顶点?我应该以什么顺序存储 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/

相关文章:

Java 图形绘图未显示在绘图面板上

c++ - 如果在共享内存中,pthread 互斥锁是否可以跨线程工作?

C++ 哪个数字不属于?

c++ - OpenGL,着色器模型 3.3 纹理 : Black Textures?

c++ - 旋转并移动到 OpenGL 中的相对中心

python-3.x - 无法从 OpenGL_accelerate 加载 numpy_formathandler 加速器

c++ - 指向引用的指针和指向实际变量的指针可以被视为相同吗?

c++ - 避免模​​板特化中的构造函数重复

c++ - 旋转使用 OpenGL 绘制的 2D 对象

python - Python 中的 4D 密度图