首页 > 解决方案 > 尝试在 OpenGL 中使用三角形绘制复杂多边形时出错

问题描述

我正在尝试在 OpenGL 中绘制复杂的二维多边形。我用 GL_TRIANGLES 编写了所有渲染方法,所以我不想更改为 GL_TRIANGLE_STRIP 或类似的东西。

本质上,我有一个有序坐标列表,我想从它们创建一个多边形,如下所示: 在此处输入图像描述

我最初使用的方法是在第一个顶点和接下来的两个顶点之间创建一个三角形,并这样做直到三角形位于第一个和最后两个顶点之间。但是,在上面的 L 形多边形上,我得到这样的结果:

在此处输入图像描述

如您所见,以这种方式索引顶点会在不应该有三角形的区域绘制三角形。如何使用 GL_TRIANGLES 索引顶点以获得类似于第一个结果的结果?顶点每次都会不同,但总是按顺时针顺序排列,所以我需要一种适用于任何多边形的通用方法。

标签: opengllwjgl

解决方案


将多边形分解为三角形或使用模板缓冲区方法


推荐阅读