Tag: 法线

计算在接缝处结束的2个网格之间的法线

我的任务 我目前正在为Unity3D创建一个地形,专门用于运行应用程序的内存不足的移动设备。 允许大小为15.000 x 15.000千米,高度为-1.000米到10.000米的地形,它的唯一限制是硬盘上的空间。 情况 现在一切都运行正常,除了不正确地计算不同网格之间的法线(每个网格具有细分级别)。 这是两张可视化问题的图片: 问题仅发生在从一个细分级别到另一个细分级别的转换中。 如果两个网格具有相同的级别,则效果很好。 我首先想到在计算法线时我会错过一些面孔,但似乎它们都包含在计算中。 一些代码 每张脸的正常计算: Vector3 u = vertices[item.Face1] – vertices[item.Face0]; Vector3 v = vertices[item.Face2] – vertices[item.Face0]; Vector3 fn = new Vector3((uY * vZ) – (uZ * vY), (uZ * vX) – (uX * vZ), (uX * vY) – (uY * vX)); fn.Normalize(); 在计算顶点周围的每个面的法线之后,我将所有面法线添加到顶点法线并对其进行标准化。 结果显示在图片中,正如您在背景和网格本身中看到的那样,只要没有不同的细分级别,它就会起作用。 一些更多的代码 /// […]