紋理是怎樣顯示在模型上的

赵青青發表於2024-05-10

看完games101的第8和9章,就會很好理解這些內容。三維世界中的模型是由點組成三角形,進而組成複雜的模型。每個面都有不同的顏色(畫素),可以用紋理來貼上去,最後在形成在螢幕上。

立方體例子

如何把2d的圖片包到3d的模型上面?

image-20240413164346450

把3d物品展開成平面(展UV),和小時候做包裝紙那樣

image-20240413164733931

Blender零基礎入門教程15【材質篇】EP3.2 紋理座標與對映節點詳解 顏色漸變 - YouTube

什麼是UV貼圖?

UV 貼圖是一種將 3D 模型表面紋理對映到 2D 平面上的技術。在 3D 模型製作過程中,UV 貼圖通常用於將紋理影像應用到模型表面,以增加模型的細節和真實感。

2D紋理貼圖只有x、y 座標,那它是如何貼到xyz的3D模型上的呢?

這張貼圖並不是直接產生的,而是展開 3D 物件得到UV貼圖,貼圖中每個點不僅儲存顏色資訊還儲存了要對映到模型的座標資訊。

如何得到一張UV紋理?

  1. 將 3D 模型表面劃分為多個面,並將每個面對映到 2D 平面上,形成 UV 網格。

  2. 將 UV 網格匯出為影像檔案,通常是一個包含多個小影像的紋理影像。

  3. 使用影像軟體編輯紋理影像。

  4. 將紋理影像應用到 3D 模型上表面上,以增加模型的細節和真實感。

角色

那麼對於角色模型這種複雜的模型展開uv之後是怎樣的?

遊戲公司製作角色模型是在3dmax中製作模型,並且上好色,然後匯出這張貼圖,這張貼圖並不是美術直接畫出來的。

How to Remap the UV Textures of a 3D Scan in BodyPaint 3D / Cinema 4D - 3D Scan Expert

img

為什麼低模和立方體流暢?

立方體展開

image-20240413205830766

遊戲模型展開後有非常多的多邊形

image-20240413205901068

模型的上色(shading)就是遍歷全部的頂點進行上色

而低模頂點數大約只佔高模的10%,效能提升90%

minmap如何降低消耗

快速的近似正方形取樣,儲存體積只佔1/3

UV中的0,1

UV中的值是從0~1,這是一個約定

假設把小圖貼到大圖上,如何保證座標的轉換?就要設定一個標準,也就是(0,1)

10x10 -> 1024x1024的,10個畫素上的顏色都是一樣的

1024x1024 -> 10x10,10畫素點擠在一個畫素點上,再取平均值造成失真

天空盒的原理

立方體或球體,向每個方向發射檢測光

image-20240413210712550

相關資料

使用google 搜尋以下關鍵字就可找到有關圖片

3d model texture mapping

Triangle Mesh Model

什麼是UV對映和解包? (conceptartempire.com)

Maya 幫助 | UV | Autodesk

相關文章