PLY
PLY 是一種電腦檔案格式,全名為 多邊形檔案(Polygon File Format) 或 史丹佛三角形檔案(Stanford Triangle Format)。
該格式主要用以儲存立體掃描結果的三維數值,透過多邊形片面的集合描述三維物體,與其他格式相較之下這是較為簡單的方法。它可以儲存的資訊包含顏色、透明度、表面法向量、材質座標與資料可性度,並能對多邊形的正反兩面設定不同的屬性。
在檔案內容的儲存上 PLY 有兩種版本,分別是純文字(ASCII)版本與二元碼(binary)版本,其差異在儲存時是否以 ASCII 編碼表示元素資訊。
檔案格式 [编辑]
(本文並未提供完整的格式描述,以下僅介紹 PLY 的基本概念與格式)
每個 PLY 檔都包含檔頭(header),用以設定網格模型的元素與屬性。在檔頭後接著是一連串的元素,一般而言這些元素就是端點(vertices)和面(faces),另外還可能包含有邊(edges)、深度圖樣本(samples of range maps)與三角帶(triangle strips)等元素。無論是純文字與二元碼的 PLY 檔,檔頭資訊都是以 ASCII 編碼編寫,接續其後的數值資料才有編碼之分。PLY 檔案以此行:
ply
開頭作為 PLY 格式的識別。接著第二行是版本資訊,目前有三種寫法:
format ascii 1.0 format binary_little_endian 1.0 format binary_big_endian 1.0
其中 ascii, binary_little_endian, binary_big_endian 是檔案儲存的編碼方式,而 1.0 是遵循的標準版本(現階段僅有 PLY 1.0 版)。在標頭中可使用 'comment' 作為一行的開頭以編寫註解,例如:
comment This is a comment!
在元素的數量定義上可使用 'element' 關鍵字。舉例而言,若一個檔案包含 12 個端點,則檔頭必須包含:
element vertex 12 property float x property float y property float z
其中 vertex 是內定的元素類型,而這裡也出現了 'property' 關鍵字,其功用是描述構成 vertex 元素的數值欄位及其形態,例如上述範例定義 x, y, z 三欄位為浮點數資料形態。內定的資料形態有 char uchar short ushort int uint float double 與具有位元長度的 int8 uint8 int16 uint16 int32 uint32 float32 float64 幾種。另一個常使用的元素是面,例如一個具有十個多邊面的物體,其 PLY 檔頭可能包含:
element face 10 property list uchar int vertex_index
此處的 'list' 表示該元素 face 的 vertex_index 欄位是一數值資料列表,並以 'uchar' 開頭表示列表的項目數,而每個項目的資料形態是 'int' 類型。最後標頭必須以此行結尾:
end_header
檔頭後接著的是元素資料(端點座標、拓譜連結等)。在 ASCII 格式中各個端點與面的資訊都是以獨立的一行描述,而二元編碼格式則連續儲存這些資料,載入時須以 'element' 定義的元素數目以及 'property' 中設定的資料形態計算各筆欄位的長度。一個典型的 PLY 檔案結構是:
檔頭 端點元素列表 面元素列表
其中的 端點元素列表 一般以 x y z 方式排列,形態如檔頭所定義;而 面元素列表 是以
<組成面的端點數 N> <端點#1的索引> <端點#2的索引> ... <端點#N的索引>
表示,舉例如下:
ply ... (一些檔頭資訊) end_header 0 0 1 0 1 1 ... (更多的端點元素) 3 0 1 2 3 0 1 3 4 1 2 3 5 ... (更多的面元素)
參見 [编辑]
- Blender: 免費而功能強大 3D 編輯工具,可以用來匯入 PLY 檔案
- MeshLab: 在 Windows、Mac OS X 與 Linux 平台上開放原始碼的網格編修與展示工具,可用來編輯轉換 PLY 檔案