【发布时间】:2021-03-24 07:57:25
【问题描述】:
如何使用 GL_POLYGON 模式绘制凹形? 据我所知,GL_POLYGON 被定义为凸形
GL_POLYGON
绘制单个凸多边形。顶点 1 到 N 定义了这个多边形。
【问题讨论】:
如何使用 GL_POLYGON 模式绘制凹形? 据我所知,GL_POLYGON 被定义为凸形
GL_POLYGON
绘制单个凸多边形。顶点 1 到 N 定义了这个多边形。
【问题讨论】:
简短的回答:你不能。您必须将多边形切成凸形部分。有几何库可以为你做这件事。通常你会将凹形切成三角形。
这是一个例子: https://github.com/memononen/libtess2
不支持它的原因是因为这通常不是 GPU 可以为您做的事情。 API 大部分映射到硬件。
【讨论】:
一个更长的答案。你可能不想避免使用GL_POLOYGON,因为它是deprecated
正如 cmaughan 所讨论的,您可能想要进行镶嵌(改为单独渲染所有三角形)。我只想补充一点,您可以使用GL_TRIANGLE_FAN 来做一些凸形的特殊情况。像这样:
请注意,这种方法根本不适用于所有凸形,您可能只想将形状渲染为单独的三角形。
【讨论】: