看完games101的第8和9章,就會很好理解這些內容。三維世界中的模型是由點組成三角形,進而組成複雜的模型。每個面都有不同的顏色(像素),可以用紋理來貼上去,最後在形成在屏幕上。
立方體例子
如何把2d的圖片包到3d的模型上面?
把3d物品展開成平面(展UV),和小時候做包裝紙那樣
Blender零基礎入門教程15【材質篇】EP3.2 紋理座標與映射節點詳解 顏色漸變 - YouTube
什麼是UV貼圖?
UV 貼圖是一種將 3D 模型表面紋理映射到 2D 平面上的技術。在 3D 模型製作過程中,UV 貼圖通常用於將紋理圖像應用到模型表面,以增加模型的細節和真實感。
2D紋理貼圖只有x、y 座標,那它是如何貼到xyz的3D模型上的呢?
這張貼圖並不是直接產生的,而是展開 3D 對象得到UV貼圖,貼圖中每個點不僅保存顏色信息還保存了要映射到模型的座標信息。
如何得到一張UV紋理?
-
將 3D 模型表面劃分爲多個面,並將每個面映射到 2D 平面上,形成 UV 網格。
-
將 UV 網格導出爲圖像文件,通常是一個包含多個小圖像的紋理圖像。
-
使用圖像軟件編輯紋理圖像。
-
將紋理圖像應用到 3D 模型上表面上,以增加模型的細節和真實感。
角色
那麼對於角色模型這種複雜的模型展開uv之後是怎樣的?
遊戲公司製作角色模型是在3dmax中製作模型,並且上好色,然後導出這張貼圖,這張貼圖並不是美術直接畫出來的。
How to Remap the UV Textures of a 3D Scan in BodyPaint 3D / Cinema 4D - 3D Scan Expert
爲什麼低模和立方體流暢?
立方體展開
遊戲模型展開後有非常多的多邊形
模型的上色(shading)就是遍歷全部的頂點進行上色
而低模頂點數大約只佔高模的10%,性能提升90%
minmap如何降低消耗
快速的近似正方形採樣,存儲體積只佔1/3
UV中的0,1
UV中的值是從0~1,這是一個約定
假設把小圖貼到大圖上,如何保證座標的轉換?就要設定一個標準,也就是(0,1)
10x10 -> 1024x1024的,10個像素上的顏色都是一樣的
1024x1024 -> 10x10,10像素點擠在一個像素點上,再取平均值造成失真
天空盒的原理
立方體或球體,向每個方向發射檢測光
相關資料
使用google 搜索以下關鍵字就可找到有關圖片
3d model texture mapping
Triangle Mesh Model