OpenGL 渲染半多边形

OpenGL Render Half Polygon

我在 OpenGL 中使用索引时渲染了半个多边形。知道出了什么问题吗?

    float vertices[] = {
    -0.5f, 0.5f, 0,
    -0.5f, -0.5f, 0,
    0.5f, -0.5f, 0,
    0.5f, -0.5f, 0,
    0.5f, 0.5f, 0,
    -0.5f, 0.5f, 0
    };

    uint32_t Indices[] = {
        0,1,3,
        3,1,2
    };

你画的是索引吗?如果是这种情况,您只需要 4 个顶点

如果您使用索引进行绘制,则数据不正确索引 2 和 3 具有相同的值,提供相同的两个位置不会做任何事情,您提供了两个顶点来绘制需要 3 个顶点的三角形

当你用索引绘制时,你只需要 4 个顶点而不是 6 个。索引是顶点的“地址”:

float vertices[] = {
    -0.5f, -0.5f, 0,    // vertex 0
     0.5f, -0.5f, 0,    // vertex 1
     0.5f,  0.5f, 0,    // vertex 2
    -0.5f,  0.5f, 0     // vertex 3
};

uint32_t Indices[] = {
    0, 1, 3,            // 1. triangle, vertices 0, 1, 2 
    0, 2, 3             // 2. triangle, vertices 0, 2, 3
};