Mesh 顶点的Normal

在Unity中,由于顶点共享,一个看似单一的顶点在不同三角面中可能有不同的法线(Normal)。这导致在光照计算时,为保持低精度模型的平滑效果,通常使用插值平均后的Normal。文章探讨了为何Unity中顶点法线数量与Max显示不一致,并提供了查看编辑器下顶点Normal的脚本参考。
摘要由CSDN通过智能技术生成

美术经常找程序撕逼,我做的顶点在max里面只有xxx那么少,但是程序说我再unity看到的就是有XXX那么多。为什么?


因为有些公共顶点直观感受是一个,实际上是应该按照三角面的个数来计数的。


同样。公共顶点的法线也不止一个。


不过,因为normal是影响光照效果,即在光照下的凹凸平滑程度,所以用插值平均后的Normal代替所有的顶点的各自的normal可使低精度模型看起来平滑




显示编辑器下显示 normal 的脚本,参考

using UnityEngine;

[ExecuteInEditMode]
public class ShowNormals : MonoBehaviour {

    public float length = 1;

    public Vector3 bias;

    // Update is called once per frame
    void Update() {
        // 获取网格法线
        Mesh mesh = GetComponent<MeshFilter>().sharedMesh;

        Vector3[] vertices = mesh.vertices
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值