Unity 5:自动指定网格顶点的三角形列表

Amp*_*ter 5 mesh procedural-generation unity-game-engine

有没有一种方法或算法可以自动指定应该如何连接顶点列表?

例如,假设我有这个(为简单起见,以2D表示):

     *(0,0)     *(2,0)

*(-1,-1)   *(1,-1)
Run Code Online (Sandbox Code Playgroud)

所以我按(-1,-1),(0,0),(1,-1),(2,0)的顺序添加顶点,然后将三角形0、1,2和2,1,3,这将生成一个包含两个三角形的网格。

但是,随着顶点数量的增加,定义三角形的过程将变得更加乏味,除非我当然要以某种排序的顺序添加这些顶点,以便我可以跟踪自己是哪个三角形,并且每个都添加一个偏移量时间(我不想做)。

我要去的地方是这个(为简单起见,再次以2D表示):我想定义一个数组,说:

[0,0,1,0,1,0]

[0,0,0,0,0,0]

[0,1,0,1,0,0]

它表示xy平面,并且该数组中的点是顶点(1)或不包含任何点(0)。因此,array [0,0]将为x = 0,y = 0(无),而array [2,1](一个顶点)将为x = 1,y = 2。然后,我想使用它生成一个网格。

这可能吗?任何帮助,将不胜感激。

谢谢

编辑:我知道有一个三角脚本,但它仅适用于2D。

Amp*_*ter 1

事实证明这是可以做到的。有更复杂的方法可以做到这一点,例如 Marching Cubes,但是,它们的实现相当复杂并且无法工作,因为它们效率太低而无法实时运行(编辑:除非您卸载到 GPU)。

  • 如果您有兴趣,请参阅此处的信息:https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch01.html 是一个很好的介绍。事实上,整本书都是无价的。 (2认同)