OpenGL ES中的3D多边形三角剖分

3

我正在寻找关于在OpenGL ES中内置算法的任何信息,以将3D多边形转换为三角形集。 在OpenGL ES中是否有实现此类功能的内容?

3个回答

4
简短回答:不,OpenGL ES 不支持多边形镶嵌。多边形镶嵌是作为 GLU(OpenGL 实用库)的一部分提供的,因为它是可选的而不是 OpenGL 的核心功能,所以在每个平台、每个版本和每个实现者上都有所不同。
如果您正在开发 iPhone 应用程序,请查看 iphone-glu,它声称支持多边形镶嵌。
这里有一个更通用的 walkthrough,介绍如何在 OpenGL 中使用 GLU 进行镶嵌(但不适用于 OpenGL ES),可能会帮助您更好地理解。

我读到说进行3D三角测量很困难,但我不太明白为什么OpenGL不支持它,因为这是创建复杂多边形的唯一方法。虽然算法只在多边形创建时执行,但它并不需要非常高效,所以我可以自己编写一个。但我真的很好奇这个问题。 - Simon
1
这并不包含在OpenGL中,因为OpenGL仅用于渲染。它不打算用于预处理要显示的数据。难道您无法将数据离线处理为OpenGL友好格式吗? - CaseyB

1
“进行3D三角测量很困难”。这取决于您要进行何种类型的三角测量。例如,如果您想找到Delaunay三角剖分,那就相当于找到一个凸包,这已经是一个足够困难的问题了。
但您可能不需要那么高级的功能。如果您只需要任何一种三角测量,那就更简单了。但通常您需要跟踪隐藏的表面,这是另一个例子,说明为什么他们没有将其包含在核心API中:因为有太多不同的算法可能需要根据用户的实际需求使用。他们不想让资源有限的移动电话负担支持开发人员可能需要的所有内容,也不想使用覆盖所有基础的缓慢算法。
请记住,当OpenGL-ES开发时,移动电话甚至比现在还要有限。G1的16M在那些日子里是罕见的。CPU速度只有大约25MHz。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接