版本:Unity 6 (6000.0)
语言英语
  • C#

Mesh.RecalculateNormals

建议更改

成功!

感谢您帮助我们提高 Unity 文档质量。尽管我们无法接受所有意见,但我们确实会阅读用户提出的每项建议的更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,您建议的更改无法提交。请在几分钟后<a>重试</a>。感谢您花时间帮助我们提高 Unity 文档质量。

关闭

取消

切换到手册

声明

public void RecalculateNormals(Rendering.MeshUpdateFlags flags = MeshUpdateFlags.Default);

参数

标记 控制函数行为的标记,请参阅 MeshUpdateFlags

说明

从三角形和顶点重新计算网格的法线。

在修改顶点后,经常需要更新法线来反映更改。法线是从所有共享顶点计算的。

导入的网格有时不会共享所有顶点。例如,在 UV 缝合线处的顶点被分成两个顶点,因此 RecalculateNormals 函数会创建在 UV 缝合线处不平滑的法线。

请注意,RecalculateNormals 不会自动生成切线,要进行生成,请使用 RecalculateTangents

using UnityEngine;

public class Example : MonoBehaviour { void Start() { Mesh mesh = GetComponent<MeshFilter>().mesh; mesh.RecalculateNormals(); } }

如果格式不同,RecalculateNormals 会将网格顶点位置数据转换为 VertexAttributeFormat.Float32 格式。

其他资源:RecalculateTangents