用 GL_POLYGON 绘制凹形? [复制]

Posted

技术标签:

【中文标题】用 GL_POLYGON 绘制凹形? [复制]【英文标题】:Draw concave shapes with GL_POLYGON? [duplicate] 【发布时间】:2021-03-24 07:57:25 【问题描述】:

如何使用 GL_POLYGON 模式绘制凹形? 据我所知,GL_POLYGON 被定义为凸形

GL_POLYGON

绘制单个凸多边形。顶点 1 到 N 定义了这个多边形。

【问题讨论】:

【参考方案1】:

简短的回答:你不能。您必须将多边形切成凸形部分。有几何库可以为你做这件事。通常你会将凹形切成三角形。

这是一个例子: https://github.com/memononen/libtess2

不支持它的原因是因为这通常不是 GPU 可以为您做的事情。 API 大部分映射到硬件。

【讨论】:

【参考方案2】:

一个更长的答案。你可能不想避免使用GL_POLOYGON,因为它是deprecated

正如 cmaughan 所讨论的,您可能想要进行镶嵌(改为单独渲染所有三角形)。我只想补充一点,您可以使用GL_TRIANGLE_FAN 来做一些凸形的特殊情况。像这样:

请注意,这种方法根本不适用于所有凸形,您可能只想将形状渲染为单独的三角形。

【讨论】:

以上是关于用 GL_POLYGON 绘制凹形? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL GL_POLYGON 无法正常运行

如何创建 UIView 的凹形

OpenGL用鼠标移动画圆

我想用ARCGIS提取坡型(凹形坡、凸形坡等)和坡位(坡顶、坡中、坡底),请问该怎么操作呀?

OpenGL入门程序

绘制多边形网格时的 Opengl 性能问题