3D 模型

電腦輔助工程嘅形式

3D 模型粵拼saam1 di1 mou4 jing4),又叫三維模型或者叫立體模型,係指(對於部電腦嚟講)用數字呈現嘅三維物體。立體模型有長度、闊度同高度,就好似喺現實世界見到嘅實物一樣,因此可以用嚟建構虛擬世界

呢個立體模型模擬穿梭機嘅外型。

立體建模[1]就係指用專門軟件整立體模型[2][3]。廿一世紀初有好多立體圖像軟件。建模涉及製作者喺模擬嘅立體空間入便操作角、邊同埋立面[4],譬如係以一啲簡單嘅幾何物體(例如圓柱或者球體呀噉)做起始,然後再改變唔同邊嘅長度或者唔同角嘅位置,最後整出想要嘅形狀。除此之外,製作者亦可以用程序生成或者立體掃描嚟創建想要嘅形狀。造好咗形狀,製作者仲可以用材質貼圖着色器等嘅工具,決定模型表面望落係乜嘢質哋[5]

整好之後,呢啲模型跟住就可以直接攞去 Unity 或者 Unreal 引擎等嘅遊戲引擎度使用,用嚟為視像遊戲虛擬實境等嘅產品建構虛擬世界[6][7][8]。而科研上亦會用到立體模型,將研究緊嘅現象可視化。

概念基礎

編輯
 
十二面體 3D 模型;個模型帶有頂點法綫

現時嘅圖像軟件(Blender 等)有好多自動化嘅功能,令到製作立體模型嘅工作變得更容易。高度規律嘅花臣,往往有簡單嘅演算法可以整,譬如係叫部電腦自動複雜某件物品若干次,再將呢啲物品跟住某條曲線排成一條線噉嘅樣[9];稍為唔規律嘅花臣[註 1]就可以用程序生成以及柏林雜音等嘅功能嚟整。

基本造型

編輯

做立體建模,最基本步驟係建立個模型嘅幾何結構。多邊形網格[10]有三大基本元素,包括頂點同埋[11],呢三樣嘢會界定件物件嘅形狀。概念如下[12]

  • 頂點:立體空間內嘅一,每個頂點都有個三維(X Y Z)嘅座標
  • :由兩個頂點連接埋一齊而成,模型表面嘅「骨架」。
  • ,或者叫立面:由三條或以上嘅邊組成,形成一塊平面,通常係三角形或者四邊形

例如下圖呢個多邊形網格,就模擬緊海豚嘅形態:


 


線框模型[13]亦有一定嘅作用:線框模型基本上等同多邊形網格,只係冇咗立面,淨係展示個模型啲角同邊,好似下圖噉;喺好多情況下,線框模型都[註 2]比較方便用家睇清楚個模型嘅形狀,而 Blender 等嘅圖像軟件會畀用家揀用邊種方式(多邊形網格定線框模型)嚟睇個立體模型。


 


建模技巧

編輯

建模造型嘅過程最簡單常用嘅,可以係用多邊形造型或者數碼雕塑[14][15]:用家可以由基礎嘅幾何形狀(譬如係球體或者立方體)做起始;用多邊形造型嘅話,佢會以各種方法編輯個模型嘅頂點、邊同面,當中常用嘅功能有子分拉伸以及細分曲面呀噉;用數碼雕塑嘅話,佢就會用軟件工具推、拉、磨、掹或者捏個模型(彷彿好似個模型係一嚿黏土噉)造出目標形狀,整出睇落更「有機」嘅形狀。大致[註 3]得出想要嘅形狀,就可以做下一步嘅處理。


 
深度貼圖[16]係一種灰階圖,幅圖越白嘅地方代表距離對應點越遠。呢種圖常用於電腦圖像,可以將二維圖像轉化成三維資訊。


建模造型亦有一種手法係靠物理模擬:圖像軟件往往有功能,畀用家加指定嘅物理效果落去個模型度,譬如係叫隻軟件當個模型係一嚿用布料造嘅物體,然後模擬佢點樣跌落地;跟住用家就可以攞個模擬嘅其中一「格」,指定攞嗰格嚟做個模型嘅預設形狀。諸如碰撞剛體動力模擬等嘅物理功能,都可以用嚟做呢樣嘢[17]

表面特性

編輯

材質texture)係圖像,可以用嚟「貼喺個模型表面」,令到個模型望落似係有特定嘅質哋。材質貼圖嘅做法唔同軟件都有啲唔同,不過大致上都係:一般嚟講,設計者已經整好咗個模型嘅形狀,先會郁手整材質;跟住佢哋就要決定塊材質圖要貼喺模型邊個位[18]以及引入材質圖或者自己親手畫,然後設計者仲會落着色器同埋微調材質圖嘅位置。

材質貼圖呢啲處理模型表面嘅工作,好多時都會用到烘焙baking)。電腦圖像上講嘅烘焙,係指某啲數叫部電腦預先計好晒,而唔係等到實時彩現嗰陣先至計——假如呢啲數好複雜,實時彩現嗰時計(想像部電腦一路顯示、一路計下一刻影像係點)就會好費時,容易搞到個畫面窒[19]


 
廿一世紀初嘅材質貼圖可以噉想像:個模型有一張「紙」包裝住,設計模型嘅人,首先要「拆開塊包裝」再喺塊包裝表面畫上想要嘅材質,然後將包裝「包返好」佢。


彩現嘅過程必定會用到着色器shader):着色器係一大類嘅演算法,畀 GPU 行嘅,亦可以包埋執行呢啲演算法嘅程式,負責教部電腦點樣處理一嚿物體嘅顏色、光暗同質哋,達致設計者想要嘅效果。當中「效果」可以係令到個模型望落更加迫真。着色器對於做彩現嚟講好重要。喺實際應用上,着色器會做一系列嘅數據處理,最後畀出想要嘅效果:設計模型嘅人可以當正着色器係黑盒,會攞某啲嘢做輸入,計數,跟住畀若干個輸出,當中輸入可以係顏色數據、位置同埋其他數值等,而輸出就係(例如)色彩數值[20];一個效果好多時都會用多過一件着色器嚟造,喺呢個過程裡便一件着色器可以行一啲運算,然後將自己計到嘅結果傳畀下一件着色器。下一件着色器又做運算,最後得出一個總體結果。好多圖像軟件都會畀用家用視覺化編程噉嘅方法設立「總體」着色器,揀選想用邊啲着色器,然後再決定着色器之間啲數據要點樣傳[21]


 
風氏着色法可以令到一個模型表面望落平滑啲。左圖用嘅係平直着色法,而右圖就用咗風氏着色法[22]


物理貼圖

編輯

事實表明,材質加上着色器可以產生似表面細節嘅效果,設計者唔使吓吓都將模型嘅形狀整到咁仔細。譬如物理式彩現(PBR)會用到嘅凹凸貼圖[23],就係用嚟模擬物件表面凹凸嘅技術,主要透過改變法線嘅方向。响 Blender 入便,設計者可以用材質貼圖噉嘅方法,將模型表面畫成一笪笪唔同嘅色,然後就可以加着色器,叫電腦當表面貼圖嘅灰階值係表面嘅高低,再模擬光照效果,產生凹凸錯覺。於是設計者唔使改變模型表面形狀,都可以造出好似表面有凹凸噉嘅效果。


 
凹凸貼圖嘅示例:左圖係冇任何凹凸貼圖嘅球體,中間幅圖就係凹凸圖,話畀電腦知個球體表面邊啲位要凹落去(黑色部份),電腦攞住個球體同凹凸圖就得出最右手邊嗰幅圖——望落似個嘅模型。


假設模型表面已經有基本顏色[24],物理式彩現仲可以加:

  • 金屬度表面:操控模型表面嘅光學性質有幾似金屬。
  • 粗糙度貼圖[25]:用嚟控制物件嘅表面光滑定係粗糙,會影響光線點樣反射。喺物理式彩現系統中,粗糙度越低,表面就越光滑,光線會形成清晰嘅反射,望落似玻璃金屬等嘅材料;相反粗糙度越高,表面就越粗糙,光線會散射,令反射變得模糊或擴散,例如橡膠泥土。可以睇睇反射定律嘅相關概念。

額外效果

編輯

粒子系統

編輯
 
用粒子效應造嘅火
内文:粒子系統

粒子系統particle system)係用嚟整粒子效果演算法。粒子系統嘅虛擬碼可以噉想像[26]

void setup() { // 設定個背景
  size(640,360);
  ps = new ParticleSystem(); // 系統有若干粒「粒子」。
}
 
void draw() {
  background(255); // foreach 粒子,計佢跟住落嚟會點郁。
  ps.run();
}

一大堆噉嘅「粒子」遠睇一齊郁,望落會似一大團朦朦哋嘅「雲霧」所以呢種演算法可以攞嚟模擬或者火焰等嘅現象嘅外形[26]。而啲「粒子」比較大、冇咁朦嘅粒子系統,就成日會用嚟整一啲數量大、件件都一樣樣嘅物品,譬如係頭髮或者呀噉。

模型動畫

編輯
 
呢個立體模型模擬蝴蝶嘅外形,而且仲加咗拍翼嘅動畫。
睇埋:電腦動畫角色

最佳化

編輯

其他立體模型相關嘅重要概念:

  • 多邊形:用嚟衡量啲立體模型有幾複雜嘅指標,如果話立體模型多邊形多,即係話個模型有好多塊表面,正路就表示個模型望落多細節[27][28]
  • 細節層次(LOD):指立體模型嘅表示有幾複雜;例如想像家陣有個立體模型,設計者將個程式設計成「如果用家近睇個模型,就將個模型啲多邊形完全顯示嗮出嚟(LOD 高);而如果用家遠睇個模型,就將個模型簡化(少噉咗多邊形)噉顯示(LOD 低)」噉嘅樣,噉就可以避免部機要做啲不必要咁仔細嘅運算,慳返運算上用嘅時間[27][29]。可以睇埋軟件最佳化嘅概念。


細節層次嘅展現
圖例          
角嘅數量 ~5500 ~2880 ~1580 ~670 140
Notes 最高細節層次 最低細節層次


光概念

編輯
睇埋:光學

製作立體模型(尤其係材質着色器)會用到一啲相關嘅概念。

睇埋

編輯


註釋

編輯
  1. 假如製作嘅模型係模擬自然事物,往往需要噉嘅花臣。
  2. 多邊形網格比起嚟。
  3. 大致:好多專家認為,模型幾何唔使過於精細,因為視覺細節效果,往往可以透過着色器材質貼圖模擬。另一方面,過度複雜嘅幾何結構可能會影響物理模擬,例如令碰撞探測出現異常行為。

參攷

編輯
  1. 參見英文Modeling
  2. "How to 3D scan with a phone: Here are our best tips". Sculpteo (英文). 喺2021-07-14搵到.
  3. "Facebook and Matterport collaborate on realistic virtual training environments for AI". TechCrunch (美國英文). 30 June 2021. 喺2021-07-14搵到.
  4. Slick, Justin (2020-09-24). "What Is 3D Modeling?". Lifewire (英文). 喺2022-02-03搵到.
  5. How Is a 3D Model of a Product Made?. CGIFurniture.
  6. "What is 3D Modeling & What's It Used For?". Concept Art Empire (美國英文). 2018-04-27. 喺2021-05-05搵到.
  7. "3D Modeling". Siemens Digital Industries Software. 喺2021-07-14搵到.
  8. "What is 3D Modeling? | How 3D Modeling is Used Today". Tops (美國英文). 2020-04-27. 喺2021-07-14搵到.
  9. Array Modifier. Blender.
  10. 多邊形網格:polygon mesh
  11. 頂點(vertex)、(edge)同埋(face)
  12. Lorensen, William E.; Cline, Harvey E. (1 August 1987). "Marching cubes: A high resolution 3D surface construction algorithm". ACM SIGGRAPH Computer Graphics. 21 (4): 163-169.
  13. 線框模型:wireframe model
  14. 講解:
    子分英文叫 subdivide;增添邊將面分割做細部份,或者增添頂點將邊分割做細部份。
    拉伸英文叫 extrude。
    細分曲面英文叫 subdivision surface;可以令到個模型嘅表面睇落平滑啲。
  15. Blender is for Sculpters,講到:"Experience the joy of sculpting organic subjects using the built-in sculpting feature set of Blender."
  16. 深度貼圖:depth map
  17. 有關布料嗰個例子,可以睇睇:Cloth,亦可以睇返 Blender 嘅轉化做 mesh(convert to mesh)功能。
  18. seams,例子可以睇睇 Blender 嘅 mark seam(近似粵音:maak1 sim1)功能,mark seam 做嘅係設低啲接縫,而呢啲接縫通常會設喺唔當眼嘅地方,例如個模型嘅最底部呀噉。
  19. baking
  20. Rost, Randi J (2004). OpenGL Shading Language. Addison-Wesley Professional.
  21. Shader Nodes;Blender 係每件着色器做一個節點,節點間嘅箭咀就表示數據傳送嘅方向。節點同箭咀都由用家設定。節點英文叫 node
  22. Watt, Alan H.; Watt, Mark (1992). Advanced Animation and Rendering Techniques: Theory and Practice. Addison-Wesley Professional. pp. 21-26.
  23. 凹凸貼圖:bump mapping,包括法線貼圖
  24. 基本顏色:base color;指 3D 物件表面本身嘅顏色,唔包含燈光、陰影或者第啲光學效果。
  25. 粗糙度貼圖:roughness map
  26. 26.0 26.1 Chapter 4. Particle Systems 互聯網檔案館歸檔,歸檔日期2020年6月2號,.. The Nature of Codes.
  27. 27.0 27.1 Biljecki, F.; Ledoux, H.; Stoter, J. (2016). "An improved LOD specification for 3D building models". Computers, Environment and Urban Systems. 59: 25-37.
  28. DecimateBlender 有工具,可以畀用家調節個模型嘅多邊形數量。
  29. Biljecki, F.; Ledoux, H.; Stoter, J.; Zhao, J. (2014). "Formalisation of the level of detail in 3D city modelling". Computers, Environment and Urban Systems. 48: 1-15.