Android API開發之OpenGL開發之Android OpenGL STL詳解
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。
相關文章
- Android OpenGL ES 開發(二):繪製圖形Android
- android開發 之 Bolts-AndroidAndroid
- [OpenGL]VS2010配置OpenGL開發環境開發環境
- OpenGL ES SDK for Android - 6Android
- OpenGL ES SDK for Android - 2Android
- 3D開發和OpenGL3D
- Android開發 - Movie 類詳解Android
- Android開發 - RecyclerView 類詳解AndroidView
- android 開發之 APT 技術AndroidAPT
- Android JNI開發系列之配置Android
- Android開發之常用佈局Android
- Android開發工具類之DownloadManagerProAndroid
- Android NDK開發之JNI基礎Android
- OpenGL Android課程一:入門Android
- OpenGL 紋理詳解
- Android APK開發:Menu介面功能詳解AndroidAPK
- 淺談OpenGL之DSA
- Android日常學習:OpenGL 實踐之貝塞爾曲線繪製Android
- Mac之Android Studio開發NDK入門MacAndroid
- Android開發之指令碼替換PackageNameAndroid指令碼Package
- Android Native 開發之 NewString 與 NewStringUtf 解析Android
- WWDC 2018:寫給 OpenGL 開發者們的 Metal 開發指南
- iOS開發之 Autolayout 詳解iOS
- OpenGL 模型載入詳解模型
- OpenGL 基礎光照詳解
- QCustomPlot開啟opengl
- OpenGL 之 GPUImage 原始碼分析GPUUI原始碼
- Opengl ES之踩坑記
- Flutter完整開發實戰詳解(十四、混合開發打包 Android 篇)FlutterAndroid
- Android開發之跟蹤應用更新大小Android
- Android之五大應用開發框架Android框架
- Android NDK 開發之 CMake 必知必會Android
- Android開發之執行緒間通訊Android執行緒
- Android OpenGL ES 系列連載:(07)Transform FeedbackAndroidORM
- Android OpenGL ES 系列連載:(14)粒子(Particles)Android
- OpenGL Android課程三:使用每片段照明Android
- OpenGL Android課程五:介紹混合(Blending)Android
- Flutter混合開發(三):Android與Flutter之間通訊詳細指南FlutterAndroid