C++ 使用三角形带将三角形移动到新列
我在将三角形移动到另一列时遇到问题。我能够成功地将它们添加到正确的方向(图中),但当我想将它们移动到新列中时,它会从旧点(最右侧)获取点,并且我希望在提升网格时将它们连接到上部三角形,条带将使网格上升C++ 使用三角形带将三角形移动到新列,c++,opengl,C++,Opengl,我在将三角形移动到另一列时遇到问题。我能够成功地将它们添加到正确的方向(图中),但当我想将它们移动到新列中时,它会从旧点(最右侧)获取点,并且我希望在提升网格时将它们连接到上部三角形,条带将使网格上升 // triangles without a new column std::vector<triangle_vertices_t> vertices = { { {0, 0, 0}, {1, 0, 0}, {0, 0, 1} }, { {1, 0, 0}, {0, 0
// triangles without a new column
std::vector<triangle_vertices_t> vertices = {
{ {0, 0, 0}, {1, 0, 0}, {0, 0, 1} },
{ {1, 0, 0}, {0, 0, 1}, {1, 0, 1} },
{ {0, 0, 0 + 1}, {1, 0, 0 + 1}, {0, 0, 1 + 1} },
{ {1, 0, 0 + 1}, {0, 0, 1 + 1}, {1, 0, 1 + 1} }
};
所以我的问题是,如何在连接到上面的三角形时添加列?
关于使用inidces的可能性
另一个简单的技巧是将条带的最后一个顶点和第一个顶点添加两次:
A C E G
+---- +-----+-----+
| / | / | / |
| / | / | / |
B+-----+-----+-----+
|/| D F H
| / |
+-----+
I J
三角带:
A-B-C-D-E-F-G-H-H-B-B-I-D-J
这是因为对于具有两个相同点的三角形基本体,根本没有光栅化。因此,“三角形”
G-H-H
、H-H-B
、H-B-B
和B-B-I
不会生成任何片段。仍然存在一个问题,我如何将上排与底部rom连接(添加新图片)?@pesuww采用相同的方法。如果要重新启动三角形条带,则必须添加零件的最后一个顶点和第一个顶点两次。但实际上我不太明白你的意思。无论如何,这似乎是一个全新的问题。所以请。
// vertices with a new column
std::vector<triangle_vertices_t> vertices = {
{ {0, 0, 0}, {1, 0, 0}, {0, 0, 1} },
{ {1, 0, 0}, {0, 0, 1}, {1, 0, 1} },
{ {0, 0, 0 + 1}, {1, 0, 0 + 1}, {0, 0, 1 + 1} },
{ {1, 0, 0 + 1}, {0, 0, 1 + 1}, {1, 0, 1 + 1} },
{ {1 - 1, 0, 0}, {1 - 1, 0, 1}, {0 - 1, 0, 1} },
{ {-1, 0, 0}, {1 - 1, 0, 0}, {-1, 0, 1} },
};
//drawing the triangles
glBindVertexArray(m_vao);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 3 * amount_of_triangles);
glBindVertexArray(0);