2026年4月12日日曜日

PLYファイル仕様 ポリゴンファイルフォーマット

 

メッシュはポリゴンでできている

メッシュ: 3Dモデリングにおける「メッシュ」は、頂点(ヴァーテックス)、エッジ(エッジ)、フェース(面)のコレクションを指します。これらは3D空間内のオブジェクトの形状を定義します。メッシュは、3Dオブジェクトの全体的な「骨格」を形成し、物体の表面を模擬します。メッシュはポリゴンを使用して作成されます。

画像
https://editor.p5js.org/setapolo/sketches/7idSig9acP

ポリゴン: ポリゴンは平面の多角形で、通常は3Dモデリングにおいては三角形または四角形で表現されます。ポリゴンはメッシュを形成する基本的な要素であり、各ポリゴンはメッシュの一部を形成します。


画像
https://threejs.org/examples/models/ply/ascii/dolphins.ply


画像
画像
https://www.artec3d.com/3d-models/ply

PLYフォーマット(またはポリゴンファイルフォーマット)は、3Dコンピュータグラフィックスで使用されるファイル形式の一つです。このフォーマットは、3Dモデルや3D画像の表現に使用され、主に3Dスキャナからのデータ出力や3Dモデリングソフトウェアで使われます
PLYフォーマットは、頂点、エッジ、面などの幾何学的要素を定義することができます。それぞれの要素に対して、任意の数のプロパティを関連付けることができるのが特徴です。これにより、色情報や透明度、テクスチャ座標など、3Dデータに関連する様々な情報を格納することが可能です。

PLYフォーマットのもう一つの重要な特徴は、その柔軟性です。それぞれの要素(頂点、エッジ、面など)は任意の数と種類のプロパティを持つことができ、これらはファイルのヘッダ部分で定義されます。この柔軟性により、PLYフォーマットはさまざまな種類の3Dデータを表現することができます
ただし、この柔軟性は一方で、ソフトウェア間の互換性の問題を引き起こすこともあります。あるソフトウェアがPLYフォーマットで使用する特定のプロパティを、別のソフトウェアが認識しない場合があります。そのため、異なるソフトウェア間で3Dデータを共有する際には注意が必要です。


objから進化したPLY

ファイル形式はASCIIとバイナリの2種類がある。

https://en.wikipedia.org/wiki/PLY_(file_format)

Under Creative Commons license v4, attribution to Artec 3D and a link back to our website is all you need to use this 3D model for free.

https://www.artec3d.com/3d-models/axle-shaft

ポリゴンメッシュについて少し調べてみる。

頂点 (vertex) は、色、法線ベクトル、テクスチャ座標などの他の情報と共に位置を表す。辺 (edge) は2つの頂点間の接続のことである。面 (face) とは閉じられた辺の集合であり、三角形の面は3つの辺を持ち、四角形の面は4つの辺を持つ。ポリゴンは面の集合である。

ふまえてこの3dプリントみたいなイルカとミカエルを見ると感慨深い

画像1
みてますよー

マテリアルは、レンダリング時にメッシュの異なる部分が異なるシェーダーを使用できるように定義される


UV座標とテクスチャ

ほとんどのメッシュフォーマットは、メッシュの異なるポリゴンに適用する2次元テクスチャマップのどの部分を示すために、メッシュを "展開 "した別の2次元表現であるUV座標の形もサポートしています。

「どのように印刷できるか」という観点でまずみて、スケルタルアニメーションなどのデータの関係性を見た方が分かりやすそうだ。そして、印刷できない効果はパーティクルシステムやその他のしくみでゲームエンジンなどがアニメーションとして解決してくれる。シェーダー寄りになっていく

ポリゴンメッシュとお近づきになれたのでPlyのデモを動かす

PLYはPolygon File FormatもしくはStanford Triangle Formatとして知られているコンピュータファイル形式である。これは原則として3Dスキャナからの3次元データを格納するために設計された。データ格納形式は、名目上平面ポリゴンのリストとして、単独オブジェクトの比較的簡単な記述をサポートしている。

まさにポリゴンの申し子みたいなフォーマットPLY

プロパティ、エレメント、グルーピングがついてobjから進化したPLY

PLY形式は90年代半ばにスタンフォードグラフィクス研究所のGreg Turk(英語版)らによってMarc Levoyの指導の下に開発された。その設計はWavefront .objファイルにインスパイアされたものの、Obj形式は任意のプロパティ及びグルーピングの拡張性を欠いていたため、頂点、面、構成データ、他のグルーピングの観念を一般化して"property"及び"element"キーワードが案出された。

と、Objを軽くディスってPLYの紹介は終わる。


画像
https://threejs.org/examples/models/ply/ascii/dolphins.ply

pythonからplyファイル作る、ライブラリなしで


画像


画像


画像