2010-06-12 44 views
4

我在Unity3D中工作,但我的问题是3D网格。我希望这里有人能帮助或指引我朝着正确的方向前进。8球形球体的3D球体地形。网格的边缘很明显,我不确定为什么

我有2个版本的代码,http://www.pasteit4me.com/695002(旧)和http://www.pasteit4me.com/690003(新)。旧代码创建一个单一的网格球体并在其上创建一个地形。新代码制作一个8网格球体并在其上创建一个地形。

在新版本中,网格的边缘很明显,我不知道为什么。看起来边缘调整得并不多,几乎是他们应该达到的2-3倍。旧代码中的GenerateB()和新代码中的Generate()会创建球体。 MakeTerrain()都创建地形。

如果我不运行MakeTerrain()函数,新的球体看起来像一个坚实的网格。我不知道从哪里开始寻找新代码中的MakeTerrain()函数来解决问题: -/

任何想法?

问题的图像在http://img28.imageshack.us/img28/3784/screenshot20100611at850.png

+3

错误的正常计算。最有可能的默认球体不完全是一个真正的固体对象,并从几个段创建不相互连接。即使用接缝连接到边的面不共享相同的顶点 - 只有具有相似坐标的顶点副本。 – SigTerm 2010-06-12 09:03:36

+2

这是正确的,他们是8个独立的网格,当对齐看起来像一个坚实的球体。 8个网格可以单独移动。 您认为MakeTerrain函数的问题是正常计算?那么会导致8个单独网格的边缘比其他边缘更加明显地升高或降低? – Justin808 2010-06-12 17:49:02

+0

我只是根据图像进行猜测,但它看起来像地形总是与接缝处基础网格的高度相同,就好像地形限制在沿着接缝的网格上方有0高度一样。 – cape1232 2010-07-19 02:16:00

回答

3

沿着边缘的所有线段都没有相同的法线。您必须考虑接缝两侧的三角形来计算法线。如果您只是单独查看每个细分,则无法做到这一点。