gpt4 book ai didi

c++ - 将三角形移动到带有三角形条的新列

转载 作者:行者123 更新时间:2023-12-03 06:58:52 27 4
gpt4 key购买 nike

我在将三角形移到另一列时遇到问题。我能够成功地将它们添加到正确的方向(如图中所示),但是当我要将它们移动到新列中时,它需要从旧点(右边最远)获取点,并且我希望将它们连接到当我提升网格时,上面的三角形将使网格上升。

// 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} }
};
triangles single column
// 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} },
};
triangles with column
//drawing the triangles
glBindVertexArray(m_vao);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 3 * amount_of_triangles);
glBindVertexArray(0);
所以我的问题是,在连接上三角时如何添加列?
enter image description here

最佳答案

有可能使用Primitive Restart inidces。
另一个简单的技巧是将 strip 的最后一个顶点和第一个顶点相加两次:

A       C     E      G
+---- +-----+-----+
| / | / | / |
| / | / | / |
B +-----+-----+-----+
| / | D F H
| / |
+-----+
I J
三角带:
A - B - C - D - E - F - G - H - H - B - B - I - D - J
之所以可行,是因为对于具有2个相同点的三角形图元,根本没有任何栅格化。因此,“三角形” G - H - HH - H - BH - B - BB - B - I不生成任何片段。

关于c++ - 将三角形移动到带有三角形条的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64179008/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com