给定一个三角形索引列表,如何将其转换为具有几何着色器邻接关系的索引列表呢?
请注意,我们在这里严格地讨论索引 -存在顶点,但是我们将仅关注索引,因为我们可以使用它们来匹配重复的顶点,而不必进行浮点比较和epsilon-这项工作已经完成了。
我知道对于列表中的任何给定三角形,索引为{0,1},{1,2}和{2,0}(或{n,n + 1},{n + 1,n + 2},{ n + 2,n}(如果您愿意)的形式形成边缘;索引列表格式正确,并正确遵守绕线顺序。
我知道,对于任何给定的此类边缘,我们都可以在整个列表中搜索使用两个索引的另一个三角形,并且该三角形的第三个索引是用于完成该边缘的相邻三角形的索引。
我知道在邻接表中,每个原始三角形都由6个索引表示,原始索引分别进入插槽0、2、4;完成邻接的新索引进入插槽1、3、5。边缘{0,1}完成的索引进入插槽1,边缘{1,2}完成的索引进入插槽3,索引完成以完成边{2,1}进入插槽5。
我尝试了什么?
我已经尝试过强行使用,是的,那行得通,但是我追求的是更优雅的方法。
我已经尝试了Eric Lengyel的边缘列表生成器,但是(1)它似乎并不遵循原始的三角形顺序,(2)它似乎并不遵循缠绕的顺序,(3)泥泞无处接下来,在构建边缘列表之后,以及(4)我怀疑示例代码具有明显的明显错误,例如“ triangleIndex”与“ faceIndex”-作者甚至编译了代码,没关系将其运行到验证吗?
那么-从这里开始有什么建议或指示吗?