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

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

GL_POLYGON

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

【问题讨论】:

    标签: c++ opengl


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2013-03-11
        • 2016-02-18
        • 2017-04-13
        • 1970-01-01
        • 1970-01-01
        • 2017-09-19
        • 1970-01-01
        相关资源
        最近更新 更多