是否有一种方法或算法可以自动指定如何连接顶点列表?
例如,假设我有这个(为了简单起见,在2D中):
*(0,0) *(2,0)
*(-1,-1) *(1,-1)
所以我按顺序(-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)。因此,数组[0,0]将是x = 0,y = 0(无),而数组[2,1](顶点)将是x = 1,y = 2。使用这个,然后我想生成一个网格。
这可能吗?任何帮助将不胜感激。
由于
编辑:我知道这里有一个三角形脚本,但它只适用于2D。答案 0 :(得分:2)
不,你只需手动完成。
就是这样。
请注意,使用一行代码的例程,您可以“自动化”该过程。
如果您正在学习网格,那么理解 您不必使用重复的顶点,如果您不想 ,则至关重要。
祝你好运并祝贺他们整整一周在Unity3D标签中提出唯一有价值的问题:O
(1)我敦促你在Unity中编织网格时熟悉tis“gotchya”
http://answers.unity3d.com/answers/417487/view.html
请注意,这里一遍又一遍地询问同一个问题。
(2)我恳请你研究那里的三个相关答案。
(3)请务必了解这一点...... http://answers.unity3d.com/answers/352167/view.html
(4)不要忘记记住Unity的手性.. http://answers.unity3d.com/answers/267076/view.html
一个小问题。毫无疑问你不使用网格对撞机,几乎任何理由都在视频游戏中。 Unity包含了这个概念是非常令人困惑的,它无休止地混淆了新手和业余爱好者的程序员。 (如果你正在构建自己的网格,甚至添加动态碰撞器,你所要做的就是使用尺寸合适的盒式对撞机。)
答案 1 :(得分:0)
原来可以做到。有更复杂的方法可以实现这一点,例如Marching Cubes,然而,它们实现起来相当复杂并且不能正常工作,因为它们实时运行效率太低(编辑:除非你卸载到GPU)。