Polygon PLY (.ply)
Stanford 標準Polygon File Format(PLY、Stanford Triangle Formatとも呼ばれます)は、Stanford UniversityのGreg Turkが開発した拡張可能な3D形式です。一部のスキャン、フォトグラメトリ、点群のワークフローで使われています。
PLY を OBJ に変換
無料のブラウザ内 PLY から OBJ へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してPLYファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してPLYファイルを識別します:
16進数シグネチャ(オフセット0):
70 6C 79 0AASCII表現: ply\n
標準化: Stanford University Computer Graphics Laboratory標準
技術仕様
| コンテナアーキテクチャ | 拡張可能な要素とプロパティを定義するASCIIまたはバイナリヘッダーに続き、頂点/面データの生配列を格納 |
| 圧縮 | 非圧縮の構造化バイナリまたはASCIIテキスト |
| バイトエンディアン | ヘッダーで指定:'format binary_little_endian 1.0'、'format binary_big_endian 1.0'、または'format ascii 1.0' |
| 色空間 | 頂点ごとのRGB/RGBAカラー, 信頼度スカラー値, 面法線 |
| チャンネルと構造 | 頂点、ポリゴン面、点群、頂点ごとの色、法線、任意のカスタムセンサー属性 |
| 最大寸法 | 3D座標空間と頂点数に上限なし |
| 透過性 | 'alpha'プロパティにより頂点ごとのアルファチャンネルに対応 |
| ストリーミングとプログレッシブ | ヘッダーに要素数が正確に記載され、事前割り当てと高速な逐次読み込みが可能 |
技術比較表:PLYと競合製品
| 技術属性 | PLY (現在) | OBJ | STL | XYZ |
|---|---|---|---|---|
| 頂点ごとの色 | ネイティブの頂点ごとの RGB/RGBA | マテリアルテクスチャが必要 | なし (ジオメトリのみ) | 生座標スカラー |
| 拡張可能なプロパティ | ヘッダー内の任意のカスタムプロパティ | 固定タグ構文 | 固定三角形構文 | 固定座標列 |
| 点群サポート | ネイティブの高性能点群 | 不格好 (単一頂点の面が必要) | なし (閉じた三角形が必要) | ネイティブの生ポイント座標 |
| ガウシアン・スプラッティング | Gaussian Splattingデータの保存に使われる形式の一つ | サポートされていません | サポートされていません | サポートされていません |
一般的な破損モードと16進数リカバリガイド
ソフトウェアが 'PLY: End of file reached before all elements read' と報告する。
根本原因: ヘッダーで宣言された要素数と、バイナリデータ行の物理的な数との不一致。
復旧: File2File.app PLY Repair Tool を使用してヘッダーの要素数を再計算します。
セキュリティ分析とパーサー攻撃ベクトル
PLY デコーダーは、プロパティサイズを定義するヘッダー宣言を解析し、整数オーバーフローによりヒープ破損を引き起こす可能性があります。
既知の攻撃ベクター
- property_count * element_count のメモリ割り当て中の整数オーバーフロー。
- 不正なバイナリプロパティタイプを読み込む際のバッファオーバーリード (例: float32 バッファに float64 を読み込む)。
- 偽造された要素数によって引き起こされる過剰なメモリ割り当てを通じたサービス拒否 (DoS)。
防御的ベストプラクティス: メモリを割り当てる前に、宣言された要素のバイト数が物理ファイルサイズと一致していることを検証します。
歴史的背景とマイルストーン
主なメリット
- 極めて拡張性が高い: ユーザーは任意のカスタムプロパティ (頂点ごとの色、信頼度、曲率、温度) を定義できます。
- Big-Endian および Little-Endian の両方のバイトオーダーで、超コンパクトなバイナリ形式と人間が読める ASCII 形式の両方をサポートします。
- PLYは頂点、面、任意の色や法線のフィールドを保存できるため、スキャンやフォトグラメトリのツールで点群やメッシュに使われます。受け取り側のツールがファイル内のフィールドを読み込めることを確認してください。
技術的な制限とデメリット
- 特殊な点群プラグインがない限り、glTF や FBX と比較して、コンシューマー向け 3D ゲームエンジンでのサポートが制限されています。
- スケルトンリギング、ボーンウェイト、キャラクターアニメーション階層のネイティブサポートはありません。
- 標準的な PBR マテリアルの定義がありません (主に頂点ごとの色付けや単純なディフューズテクスチャに依存しています)。
興味深い技術トリビア
- すべての有効な PLY ファイルは、1 行目に正確な 4 文字の 'ply\n' で始まる必要があります。
- 有名なスタンフォードのウサギは、1994 年に Cyberware 3030 レーザースキャナーでセラミックのウサギをスキャンして作成され、元々は PLY 形式で保存されました。
- 2023年のGaussian Splatting論文では、球面調和関数を含む点群が使われました。PLYはそのようなデータの保存に使われる形式の一つです。
よくある技術的な質問
PLY形式は現在何に使用されていますか?
PLYは、3Dガウススプラッティング、3Dレーザースキャン、考古学的デジタル保存、フォトグラメトリ、LiDAR点群に広く使用されています。
ASCII PLYとBinary PLYの違いは何ですか?
ASCII PLYは頂点や面の値を読み取り可能な数値として保存し、バイナリPLYはバイトとして保存します。通常、バイナリファイルの方がコンパクトで、ASCIIはテキストエディターで確認しやすい形式です。
PLYファイルをOBJまたはSTLに変換するにはどうすればよいですか?
PLYファイルをFile2File.appにアップロードすると、Webブラウザ上で即座に標準のOBJモデルまたは3Dプリント可能なSTLメッシュに変換できます。