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
};
我在 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
};