| ファイル名拡張子 |
。プライ |
|---|---|
| インターネットメディアの種類 |
テキスト/プレーン |
| タイプコード | ASCII /バイナリファイル |
| 魔法の数字 | プライ |
| 開発者 | グレッグ・ターク、スタンフォード大学 |
| 初回リリース | 1994年[1] |
| フォーマットの種類 | 3Dモデル形式 |
PLY は、ポリゴン ファイル形式またはスタンフォード トライアングル形式として知られるコンピュータ ファイル形式です。主に 3D スキャナからの 3 次元データを格納するために設計されました。データ格納形式は、名目上は平坦なポリゴンのリストとして、単一のオブジェクトの比較的単純な記述をサポートします。色と透明度、表面法線、テクスチャ座標、データ信頼値など、さまざまなプロパティを格納できます。この形式では、ポリゴンの前面と背面に異なるプロパティを設定できます。
ファイル形式には 2 つのバージョンがあり、1 つはASCIIで、もう 1 つはバイナリです。
ファイル形式
Ply ファイルは、メッシュの要素とそのタイプを指定する「header」属性で始まり、その後に要素自体のリストが続きます。要素は通常、頂点と面ですが、エッジ、範囲マップのサンプル、三角形ストリップなどの他のエンティティが含まれる場合もあります。
ASCII ファイルとバイナリ ファイルのヘッダーは両方とも ASCII テキストです。2 つのバージョン間で異なるのは、ヘッダーに続く数値データのみです。ヘッダーは常に「マジック ナンバー」で始まり、次の内容を含む行が含まれます。
プライ
これは、ファイルが PLY ファイルであることを示します。2 行目は、これが PLY 形式のどのバリエーションであるかを示します。次のいずれかになります。
フォーマット ASCII 1.0 フォーマット binary_little_endian 1.0 フォーマット binary_big_endian 1.0
標準の将来のバージョンでは末尾のリビジョン番号が変更されますが、現在使用されているバージョンは 1.0 のみです。
ヘッダーの行頭に という単語を使用すると、コメントを配置できますcomment。そこから行末までのすべては無視されます。例:
コメント これはコメントです!
キーワードelementは、特定のデータ要素がどのように格納され、その数もいくつあるかを説明します。したがって、12 個の頂点があり、それぞれが浮動小数点 (X、Y、Z) の 3 値として表されるファイルでは、次のようになります。
要素頂点12 プロパティ float x プロパティ float y プロパティ float z
他のproperty行は、各頂点に色やその他のデータ項目が格納されていることを示し、その情報のデータ型を示します。データ型に関しては、ply ファイルのソースに応じて 2 つのバリエーションがあります。型はchar uchar short ushort int uint float double、 または のいずれかで指定できますint8 uint8 int16 uint16 int32 uint32 float32 float64。10 個の多角形面を持つオブジェクトの場合、次のように表示されます。
要素面10 プロパティ リスト uchar int vertex_index
PLYの実装はプロパティ名が大きく異なります。vertex_indicesは よりもよく使用されますvertex_index。たとえば、BlenderやVTKでは です。拡張仕様では、プロパティ名の「コアリスト(必須)」、「第2リスト(よく使用される)」、および「第3リスト(推奨される拡張機能)」がリストされています。[2]
この単語は、listデータが値のリストであり、その最初の値がリスト内のエントリの数であることを示します (この場合は 'uchar' として表されます)。この例では、各リスト エントリは 'int' として表されます。ヘッダーの最後には、常に次の行がなければなりません。
終了ヘッダー
ASCIIまたはバイナリ形式
ASCII バージョンの形式では、頂点と面はそれぞれ 1 行に 1 つずつ記述され、数字は空白で区切られます。バイナリ バージョンでは、データはendiannessヘッダーで指定された値に、レコードで指定されたデータ型で密集してパックされますproperty。property list...ポリゴンの一般的な表現では、その要素の最初の数字はポリゴンの頂点の数であり、残りの数字は、前の頂点リスト内のそれらの頂点のインデックスです。
歴史
PLY 形式は、90 年代半ばに、Marc Levoy の指導の下、スタンフォード大学のグラフィックス ラボのGreg Turkらによって開発されました。その設計は、Wavefront .obj 形式にヒントを得ています。ただし、Obj 形式には任意のプロパティとグループ化の拡張性が欠けていたため、頂点、面、関連データ、およびその他のグループの概念を一般化するために、
propertyおよびキーワードが考案されました。element
サンプルファイル
以下は、 Blenderバージョン 4.0.2からエクスポートされた立方体メッシュを記述する PLY ファイルの完全な例です。
プライ フォーマット ASCII 1.0 コメント Blender バージョン 4.0.2 で作成 要素頂点14 プロパティ float x プロパティ float y プロパティ float z プロパティ float nx プロパティフロートNY プロパティフロート NZ プロパティ float s プロパティ float t 要素面6 プロパティ リスト uchar uint vertex_indices 終了ヘッダー 1 1 1 0.5773503 0.5773503 0.5773503 0.625 0.5 -1 1 1 -0.5773503 0.5773503 0.5773503 0.875 0.5 -1 -1 1 -0.5773503 -0.5773503 0.5773503 0.875 0.75 1 -1 1 0.5773503 -0.5773503 0.5773503 0.625 0.75 1 -1 -1 0.5773503 -0.5773503 -0.5773503 0.375 0.75 -1 -1 1 -0.5773503 -0.5773503 0.5773503 0.625 1 -1 -1 -1 -0.5773503 -0.5773503 -0.5773503 0.375 1 -1 -1 -1 -0.5773503 -0.5773503 -0.5773503 0.375 0 -1 -1 1 -0.5773503 -0.5773503 0.5773503 0.625 0 -1 1 1 -0.5773503 0.5773503 0.5773503 0.625 0.25 -1 1 -1 -0.5773503 0.5773503 -0.5773503 0.375 0.25 -1 1 -1 -0.5773503 0.5773503 -0.5773503 0.125 0.5 1 1 -1 0.5773503 0.5773503 -0.5773503 0.375 0.5 -1 -1 -1 -0.5773503 -0.5773503 -0.5773503 0.125 0.75 4 0 1 2 3 4 4 3 5 6 4 7 8 9 10 4 11 12 4 13 4 12 0 3 4 4 10 9 0 12
ファイルは、ASCII 形式でファイルを定義するヘッダーで始まります。合計で 14 個の頂点 (6 つの面 * 4 つの頂点 - マージにより保存された 10 個の頂点) と 6 つの面があります。ヘッダーの後には、頂点と面のデータがリストされます。頂点リストには、14 個の頂点それぞれについて、位置 (x、y、z)、法線 (nx、ny、nz)、テクスチャ座標 (s、t) が含まれます。面リストには、6 つの四辺形面のそれぞれについて、頂点数 (4) と頂点インデックスが含まれます。
参照
- STL(ファイル形式)、3Dプリント用のもう一つの一般的なファイル形式
- 積層造形ファイル形式
- Wavefront .obj ファイル、 .objファイル拡張子を持つ 3D ジオメトリ定義ファイル形式
- glTF - 3D シーンおよびモデル用のKhronos Groupファイル形式。
- ユニバーサルシーン記述(USD)。
オープンソースソフトウェア
- CloudCompare は、ポイント クラウドに重点を置き、メッシュ用の追加機能も備えています。
- GigaMesh ソフトウェア フレームワーク: PLY (または OBJ) 内のメッシュ上の数値計算。
- MeshLab : 3 次元メッシュを視覚化し、処理し、PLY ファイル形式に変換したり、PLY ファイル形式から変換したりするための汎用アプリケーション。
参考文献
- ^ Greg Turk. 「PLY ポリゴン ファイル形式」。2016 年 12 月 4 日時点のオリジナルよりアーカイブ。
- ^ Greg Turk. 「PLY ポリゴン ファイル形式 (拡張)」(PDF)。
外部リンク
- 米国議会図書館フォーマットの説明
- PLY - ポリゴンファイル形式
- PLY ファイルを操作するツール (C ソース コード)
- rply - PLY ファイルの読み取りと書き込み用の Ansi C ソフトウェア ライブラリ (MIT ライセンス)
- libply - PLY ファイルの読み取りと書き込み用の C++ ソフトウェア ライブラリ (GNU ライセンス)
- PLY ファイルの読み取りと書き込み用の別の C++ ソフトウェア ライブラリ (GPL 3.0 ライセンス)
- PLY形式で保存された3Dモデルのリポジトリ
