将顶点存储在几何圆顶上



所以,我有点迷路了。对于我正在开发的游戏,我想让"世界"变成一个几何圆顶(由等边三角形组成的球体)。为了生成世界和播放世界,我需要找到一种方法来保存所有的边和顶点,并能够计算邻居。我不确定如何保存所有不同的顶点和边,这样你就可以很容易地找出哪些点与每条边相邻,哪些边与每个点相邻。我可以用什么方法来实现这一点?

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

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

这样做可以让你更容易地从一个三角形移动到另一个三角形。如果顶点V有一个环(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-链的列表。

最新更新