亚洲AV无码国产乱码一区三区|久久精品亚洲一区二区无码|久久er99国产精品|免费A级毛片无码

3D模型文件格式之Ply

軟件設(shè)計(jì)算法
2013
01/03
16:41
分享
評(píng)論
Ply文件格式是Stanford大學(xué)開發(fā)的一套三維mesh模型數(shù)據(jù)格式,圖形學(xué)領(lǐng)域內(nèi)很多著名的模型數(shù)據(jù),比如Stanford的三維掃描數(shù)據(jù)庫(kù)[1](其中包括很多文章中會(huì)見到的Happy Buddha、Dragon、Bunny兔子),Geogia Tech的大型幾何模型庫(kù)[3],北卡(UNC)的電廠模型[4]等,最初的模型都是基于這個(gè)格式的。

PLY多邊形文件格式的開發(fā)目標(biāo)是建立一套針對(duì)多邊形模型的,結(jié)構(gòu)簡(jiǎn)單但是能夠滿足大多數(shù)圖形應(yīng)用需要的模型格式,而且它允許以ASCII碼格式或二進(jìn)制形式存儲(chǔ)文件。PLY的開發(fā)者希望,這樣一套既簡(jiǎn)單又靈活的文件格式,能夠幫助開發(fā)人員避免重復(fù)開發(fā)文件格式的問題。然而由于各種各樣的原因,在工業(yè)領(lǐng)域內(nèi),新的文件格式仍然在不斷的出現(xiàn),但是在圖形學(xué)的研究領(lǐng)域中,PLY還是種常用且重要的文件格式。

PLY作為一種多邊形模型數(shù)據(jù)格式,不同于三維引擎中常用的場(chǎng)景圖文件格式和腳本文件,每個(gè)PLY文件只用于描述一個(gè)多邊形模型對(duì)象(Object),該模型對(duì)象可以通過諸如頂點(diǎn)、面等數(shù)據(jù)進(jìn)行描述,每一類這樣的數(shù)據(jù)被稱作一種元素(Element)。相比于現(xiàn)代的三維引擎中所用到的各種復(fù)雜格式,PLY實(shí)在是種簡(jiǎn)單的不能再簡(jiǎn)單的文件格式,但是如果仔細(xì)研究就會(huì)發(fā)現(xiàn),就像設(shè)計(jì)者所說的,這對(duì)于絕大多數(shù)的圖形應(yīng)用來說已經(jīng)是足夠用了。

PLY的文件結(jié)構(gòu)同樣很簡(jiǎn)單:文件頭加上元素?cái)?shù)據(jù)列表。其中文件頭中以行為單位描述文件類型、格式與版本、元素類型、元素的屬性等,然后就根據(jù)在文件頭中所列出元素類型的順序及其屬性,依次記錄各個(gè)元素的屬性數(shù)據(jù)。

下面這個(gè)例子是一個(gè)典型的ASCII格式的PLY文件,其所描述的是一個(gè)立方體。
ply

format ascii 1.0 ...{ 文件類型:ascii或binary,版本號(hào) }

comment made by anonymous ... { 注釋行 }

comment this file is a cube ...{ 注釋行 }

element vertex 8 ...{ 定義“頂點(diǎn)”元素,其數(shù)量為8個(gè) }

property float32 x ...{ 頂點(diǎn)的x屬性,數(shù)據(jù)類型為float32 }

property float32 y ...{ 頂點(diǎn)的x屬性,數(shù)據(jù)類型為float32 }

property float32 z ...{ 頂點(diǎn)的x屬性,數(shù)據(jù)類型為float32 }

element face 6 ...{ 定義“面”元素,其數(shù)量為6個(gè) }

property list uint8 int32 vertex_index ...{ 面的頂點(diǎn)索引屬性,類型為uint8的列表 }

end_header ...{ 文件頭結(jié)束標(biāo)志 }

0 0 0 ...{ 頂點(diǎn)元素列表 }

0 0 1

0 1 1

0 1 0

1 0 0

1 0 1

1 1 1

1 1 0

4 0 1 2 3 ...{ 面元素列表 }

4 7 6 5 4

4 0 4 5 1

4 1 5 6 2

4 2 6 7 3

4 3 7 4 0

從這個(gè)文件的文件頭可以看到,文件定義的對(duì)象由8個(gè)頂點(diǎn)元素和6個(gè)多邊形面元素組成,其中頂點(diǎn)元素包括x、y、z三個(gè)屬性,其在文件中均為32位浮點(diǎn)類型,而多邊形面元素則只包括一個(gè)頂點(diǎn)索引列表的屬性,作為一個(gè)列表屬性,它包括兩部分,即列表元素的數(shù)量(uint8類型)及各個(gè)列表元素(int32類型),其中每個(gè)列表屬性的數(shù)據(jù)包括4個(gè)列表元素,分別表示每個(gè)多邊形面的4個(gè)頂點(diǎn)的索引。

PLY格式支持如下的數(shù)據(jù)類型。
name type number of bytes
---------------------------------------
int8 character 1
uint8 unsigned character 1
int16 short integer 2
uint16 unsigned short integer 2
int32 integer 4
uint32 unsigned integer 4
float32 single-precision float 4
float64 double-precision float 8

但是需要注意,由于PLY格式的開放性,有些PLY文件的解析程序不支持全部的數(shù)據(jù)類型,也有的PLY文件采用自定義的數(shù)據(jù)類型,這些都有可能導(dǎo)致文件解析過程的失敗。

對(duì)于元素的屬性定義方式,PLY允許單一屬性定義:
property
以及列表屬性方式:
property list

其中第一個(gè)數(shù)據(jù)類型描述列表元素?cái)?shù)量,第二個(gè)數(shù)據(jù)類型描述每個(gè)列表元素。
除了頂點(diǎn)和多邊形面兩種基本元素外,PLY文件格式允許使用自定義的元素和元素屬性,稱為Other Element和Other Property。只要遵循文件格式中對(duì)元素及元素屬性的格式定義,就能夠被正常的解析,這也是PLY格式所具備的靈活性特色。
PLY文件格式的規(guī)范及其解析的源代碼都是開放的,可以從參考文獻(xiàn)中找到相關(guān)的下載。最著名的就是Greg Turk在1994年發(fā)布的解析代碼,Turk似乎也是PLY格式的開發(fā)者之一。

參考文獻(xiàn)
1.The Stanford 3D Scanning Repository
2.MAC+PC+UNIX PLY reading/writing
3. Large Geometry Models Archieve
4. Power Plant Model
5. The PLY Polygon File Format

上一篇:3d打印機(jī)用到的軟件
下一篇:3D模型文件格式之Obj
回復(fù)

使用道具 舉報(bào)

2#
小熊  發(fā)表于 2013-10-13 10:57:02
您好,PLY文件如何在3D打印機(jī)上操作,需要那個(gè)軟件轉(zhuǎn)換格式?

推動(dòng)3D打印

關(guān)注南極熊

通知

聯(lián)系QQ/微信9:00-16:00

392908259

南極熊3D打印網(wǎng)

致力于推動(dòng)3D打印產(chǎn)業(yè)發(fā)展

Copyright © 2024 南極熊 By 3D打印 ( 京ICP備14042416號(hào)-1 ) 京公網(wǎng)安備11010802043351
快速回復(fù) 返回列表 返回頂部
邵阳市| 文安县| 彭水| 即墨市| 湾仔区| 星子县| 曲松县| 个旧市| 富宁县| 农安县| 赤城县| 赣州市| 合水县| 景宁| 塔城市| 焦作市| 甘谷县| 雅江县| 涞水县| 泰兴市| 陆河县| 西藏| 乐业县| 军事| 洮南市| 汤阴县| 灵台县| 会东县| 西青区| 和林格尔县| 民县| 岑巩县| 大港区| 黄陵县| 磴口县| 晋城| 博客| 加查县| 洞头县| 四子王旗| 额济纳旗|