是否有可以生成从数据的3D阵列的3D网格的任何库?

问题描述 投票:2回答:5

我试图写一些代码,需要一些数据,将其放入一个3维阵列,然后生成一个3D网格进行渲染。该数据是瓷砖与定义瓷砖的类型等领域我使用Irrlicht的图形,现在的列表,它的方式来操作网格的顶点/索引,但我不能拿出一个快速,高效办法做到这一点。是否有一个如何做到这一点的人都知道任何图书馆或例子吗?

c++ 3d
5个回答
2
投票

你想Delaunay triangulation。有在维基百科条目的末尾的链接。我已经使用CGAL一旦这一点,但它是相当痛苦的。请注意,这个问题是特别病态,而你确实需要的库文件:CGAL使用了一些确切的算术技巧,因此它的繁琐。

不要自己做。

如果你想啮合的凸包的生成,CGAL提供它太(繁琐太)。


1
投票

目前还不清楚究竟你通过数据的三维阵列的意思,但我猜你正在寻找移动立方体算法。这是很容易实现自己,但也许你可以找到一个开源实现。


1
投票

如果它是一个完全的3D(内部容积和交叉面),那么你需要marching cubes或行军四面体

但是,如果它的2.5D(即XY和深度/高度),那么它更快做的XY二维Delaunay三角网 - 最好最快的实现是triangle但它不是免费用于商业用途


0
投票

与上述其他海报同意 - 行军立方体算法是要走的路。就个人而言,我很感兴趣,绘图隐含定义表面。我写了一个介绍移动立方体为例(使用three.js所为图形),并张贴在:

http://stemkoski.github.com/Three.js/Marching-Cubes.html

有关理论的详细信息,你应该检查出的文章

http://paulbourke.net/geometry/polygonise/


0
投票

这篇文章是关于在地图和图表值相等的线。单词“轮廓”的更多含义,见轮廓(消歧)。你可以看到:http://en.wikipedia.org/wiki/Contour_line

© www.soinside.com 2019 - 2024. All rights reserved.