0

所以,我有点迷路了。对于我正在制作的游戏,我想让“世界”成为一个几何圆顶(由等边三角形组成的球体)。为了生成世界和玩世界,我需要找到一种方法来保存所有边和顶点并能够计算邻居。我不确定如何保存所有不同的顶点和边,以便您可以轻松找出哪些点与每个边相邻,哪些边与每个点相邻。我可以用什么方法来完成这个?

4

1 回答 1

1

有很多方法可以按照您的要求去做。 Wavefront OBJ 文件将每个顶点的坐标存储为索引列表,然后将每个面定义为围绕面法线顺时针方向的顶点索引循环。

我不喜欢这样,因为您必须进行处理才能确定连接的某些方面。对于您所描述的三角形网格,我更喜欢存储顶点及其 1 环。1-环是围绕顶点顺时针方向的相邻顶点的索引。

这样做可以让您更轻松地从三角形移动到三角形。如果对于顶点 V,您有 1 个环(v1,v2,v3,v4),那么您立即知道它在三角形(v,v1,v2),(v,v2,v3),...,(v,v4 , v1)。例如。

这篇博文更详细:http ://bluntobject.wordpress.com/2007/03/13/mesh-data-structures-vol-2-vertex-one-rings/

如果顶点在边界上或不是流形的,则您没有完整的 1 环。我将其作为部分 1 链的列表来处理。

于 2013-08-20T13:49:28.740 回答