iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 2
0
Modern Web

在Three.js探索CAD的奧秘系列 第 2

Day 2 : 從B-rep、CSG到三角網格模型

前言

邊界表示 (Boundary Representation, B-rap) 的模型在設計領域已被廣泛使用,繪圖設計軟體會利用基本的點、線、面等表示一個三維空間中的幾何形狀,並建立這些幾何彼此間的拓樸(Topology)關係。構造實體幾何(Constructive solid geometry, CSG)的模型方法被用來創造實體,可以透過布林運算對兩個模型進行交集、聯集、差集建立出不同的形狀。三角網格模型,利用三角型組成網格狀的模型,每個三角形的面記錄著頂點座標以及面所朝向的方向,用於表示更複雜的三維空間中的模型。

B-rap表示模型

在工程繪圖設計領域,不同的設計軟體會定義屬於自己的模型檔案格式,自訂格式的好處有檔案辨識、讀取效率提升、檔案容量縮小等優點,但是在不同軟體間的模型檔案交換就會有了大麻煩,因此有人定義了標準的3D模型的初始圖型交換格式(Initial Graphics Exchange Specification, IGES),IGES格式採用了基本的字串去定義不同的幾何與拓樸資訊,下圖是一個3D立方體模型的IGES檔案片段內容。

https://ithelp.ithome.com.tw/upload/images/20171221/20107175MvdnClPMvn.png
3D立方體模型的IGES檔案片段內容

IGES出現的問題

現今的CAD繪圖軟體越趨強大,它們為了能夠創造更複雜的模型,將CSG模型加進了B-rep裡頭使得模型的表示更加的複雜了,雖然IGES的出現讓不同CAD軟體間有了一個簡單的方法可以交換資料,可是面對這樣複雜的情況仍然無法非常準確的紀錄資訊,在傳遞過程中就出現了模型破損的情形,所以製圖工程師在接收對方的圖檔後會進行補破洞的動作。近年來,為了解決複雜模型的轉換問題,在工程領域開始大量的採用三角網格模型來進行模型的傳遞,其中最現今最為普遍的檔案儲存格式是STL(STereoLithography),現在幾乎所有的套裝軟體都具備了STL的轉檔能力。

STL格式

STL格式簡單且容易使用,它的資料儲存格式很簡單,紀錄了每一片三角型面的頂點座標及法向量方向,其中法向量是用於判斷三角形的正面是朝向哪個方向,這種表示方式在B-rap表式模型方面可以很容易的進行轉換,CSG模型的部分也可以藉由調高解析度來盡可能的保存原始的特徵。除了在桌面版的CAD軟體會採用STL格式,在網際網路上也經常被使用到,下圖是一個利用 Three.js 所繪製的 STL 三維模型。

https://ithelp.ithome.com.tw/upload/images/20171221/20107175QevTGwrjNq.png
Three.js官方網站之讀取STL模型範例

範例來源: https://threejs.org/examples/webgl_loader_stl.html

後記

在簡單介紹完三角網格模型STL格式後,下一次將會開始講解Three.js的部分,逐步將CAD的觀念在網際網路平台上一一詮釋。


上一篇
Day 1 : 為什麼是CAD?
下一篇
Day 3 : 準備Three.js
系列文
在Three.js探索CAD的奧秘30

尚未有邦友留言

立即登入留言