3dmax-unity點面數量研究(平滑組)

1.創建一個圓柱

62:等於邊上6條線 每個線上10個點 + 上下面中心的1個點

120:邊上的四邊形面50個,相當於是100個三角形面。上下面分別有10個三角形面。

實際的點線面:

在3dmax裏面不知道怎麼顯示這個,就是加上可編輯多邊形還是顯示那種“假”的線框。

2.導出fbx,放入unity,寫代碼獲取點面數據

public class MeshInfo : MonoBehaviour
{
    public MeshFilter MeshFilter;

    public Mesh mesh;


    public int Verts;

    public int Polys;

    // Start is called before the first frame update
    void Start()
    {
        if (MeshFilter == null)
        {
            MeshFilter = gameObject.GetComponent<MeshFilter>();
            mesh = MeshFilter.mesh;
        }
        Verts = mesh.vertexCount;
        Polys = mesh.triangles.Length/3;

        for (int i = 0; i < mesh.vertices.Length; i++)
        {
            Vector3 v = mesh.vertices[i];
            GameObject o=GameObject.CreatePrimitive(PrimitiveType.Sphere);
            
            o.transform.parent = this.transform.transform;
            o.transform.localPosition = v;
            o.transform.localScale = new Vector3(0.05f, 0.05f, 0.05f);

        }
    }

}

120:和max裏面的三角形面一樣。

144:

中間4行 40*2=80

上下面的邊 20*3=60

上下面中心點2個

142個,少了兩個....

寫了個工具顯示選中的點的數量,發現上下面的園的邊上各有31個點 是10*30+1。

三維裏面的三角形構成有共享點、和共享索引(Index),具體現在也忘記了。

--------------------------------------------------------

接下來確認一下max中對圓柱的平滑處理是否會影響導出模型的點面和效果。

前面的是沒有Smooth的。

右側是有smooth的,

90:中間11*4=44,上下面:中間1個,周圍22個(9*2+4)。

看起來點的數量減少了,也變得平滑了。

在沒有平滑的圓柱的基礎上,加個可編輯多邊形,使用平滑組中的自動平滑選項,導入unity,效果差不多。

參考原理:3dmax平滑組的使用方法和注意事項

也就是說使用平滑組不會增加點面,目的是爲了使造成相鄰的面平滑過渡的效果(假象)。

結論:雖然這個平滑組的效果需要光照計算,增加計算量(時間),但總比增加實際點面(空間)影響小吧。

具體的有沒有平滑組對性能的影響數值,暫時沒能力計算出來。

-----------------------------------------------------------------------------------

同時發現,加不加可編輯多邊形,導出時上下面的三角形結構是不同的。

右側加了可編輯多變形的,點面的數量更少。

分段增多後

在一個教程中看到,不推薦左側這樣的,可能在中間有一點點不好的效果(光照效果吧)。

另外還有個用一條線,增加半徑,渲染後加上可編輯多邊形變成的圓柱:

把圓柱的分段去掉,比較一下這幾個的點面差別

默認圓柱:點46,面40

加可編輯多邊形:點42,面36

由線轉換來:點40,面36。

如果不考慮其他因素(這種簡單結構外觀上感覺差不多,其他的話就是作爲一個大模型的一部分的可編輯性,還有對uv、貼圖的影響),由線轉換的是最少點面的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章