Android API開發之OpenGL開發之Android OpenGL STL詳解

Penny-聽海發表於2018-05-30

1.簡介

 

.stl 檔案是在計算機圖形應用系統中,用於表示三角形網格的一種檔案格式。 它的檔案格式非常簡單, 應用很廣泛。

 

STL是最多快速原型系統所應用的標準檔案型別。STL是用三角網格來表現3D CAD模型。

 

STL只能用來表示封閉的面或者體,stl檔案有兩種:一種是ASCII明碼格式,另一種是二進位制格式。

 

 

2.檔案格式

 

 

2.1.ASCII格式

ASCII碼格式的STL檔案逐行給出三角面片的幾何資訊,每一行以1個或2個關鍵字開頭。

在STL檔案中的三角面片的資訊單元 facet 是一個帶向量方向的三角面片,STL三維模型就是由一系列這樣的三角面片構成。

整個STL檔案的首行給出了檔案路徑及檔名。

在一個 STL檔案中,每一個facet由7 行資料組成,

facet normal 是三角面片指向實體外部的法向量座標,

outer loop 說明隨後的3行資料分別是三角面片的3個頂點座標,3頂點沿指向實體外部的法向量方向逆時針排列。

ASCII格式的STL 檔案結構如下:

 

 

 

2.2.二進位制格式

二進位制STL檔案用固定的位元組數來給出三角面片的幾何資訊。

檔案起始的80個位元組是檔案頭,用於存貯檔名;

緊接著用 4 個位元組的整數來描述模型的三角面片個數,

後面逐個給出每個三角面片的幾何資訊。每個三角面片佔用固定的50個位元組,依次是:

3個4位元組浮點數(角面片的法向量)

3個4位元組浮點數(1個頂點的座標)

3個4位元組浮點數(2個頂點的座標)

3個4位元組浮點數(3個頂點的座標)個

三角面片的最後2個位元組用來描述三角面片的屬性資訊。

一個完整二進位制STL檔案的大小為三角形面片數乘以 50再加上84個位元組。

二進位制:

 

 

3.特點

 

stl檔案格式簡單,只能描述三維物體的幾何資訊,不支援顏色材質等資訊,是計算機圖形學處理CG,數字幾何處理如CAD, 數字幾何工業應用, 如三維印表機支援的最常見檔案格式。

表面的三角剖分之後造成3D模型呈現多面體狀。輸出STL檔案的引數選用會影響到成型質量的良莠。所以如果STL檔案屬於粗糙的或是呈現多面體狀,您將會在模型上看到真實的反應。

在CAD軟體包中,當您輸出STL檔案時,您可能會看到的引數設定名稱,如弦高(chord height)、誤差(deviation)、角度公差(angle tolerance)、或是某些相似的名稱。建議儲存值為0.01或是0.02。

 

 

 

 

 

相關文章