見出し画像

Kaolin / USDファイル

Kaolin」では、「USDファイル」の読み込みを確かめます。
(元ネタはKaolinのドキュメント)

1. Universal Scene Description(USD)

「Universal Scene Description」(USD)は、「Pixar」が開発したオープンソースの3Dシーン記述ファイル形式で、さまざまな3Dツール間で汎用性、拡張性、互換性を持たせるために開発されました。「USD」はアセット参照をサポートしており、タグ、クラス、またはその他のメタデータラベルに基づいて、データセット全体を解釈可能な表示可能なサブセットに整理するのに適しています。

2. USDファイルからのメッシュデータセットの作成

Kaolinは「USDファイル」からの「メッシュ」として読み込む機能をサポートしています。今回は、「Pixar」の「KitchenSet」を使用します。以下のサイトで「DOWNLOAD KITCHEN SET」をクリックしてダウンロードします。

Downloads

画像1

次に、Kaolinリポジトリのルートで以下のコマンドを実行し、環境変数を設定する必要があります。これは「USD」とのやり取りに必要ですが、将来のリリースで対処される予定です。

$ source setenv.sh

USDMeshesを使って「USDファイル」からメッシュ群を作成します。

>>> from kaolin.datasets.usdfile import USDMeshes
>>> usd_meshes = USDMeshes(usd_filepath='./data/Kitchen_set/Kitchen_set.usd')
>>> len(usd_meshes)
740

740の多様なオブジェクトのデータセットを持っています。これらがどのように見えるか見てみましょう。

>>> from kaolin.visualize.vis_usd import VisUsd
>>> vis = VisUsd()
>>> vis.set_stage()
>>> spacing = 200
>>> for i, sample in enumerate(usd_meshes):
>>>     attr, data = sample['attributes'], sample['data']
>>>     max_x = int(math.sqrt(len(usd_meshes)))
>>>     x = (i % max_x) * spacing
>>>     y = (i // max_x) * spacing
>>>     vis.visualize(mesh, object_path=f'/Root/Visualizer/{attr["name"]}', \
>>>                   translation=(x, y, 0))

そして、少しスタイリングしてUSDビューアで開くと、次のようになります。

画像2


3. USDファイルの表示

「USDファイル」は、「Pixar」の「USDView」を使用して視覚化できます。
以下のサイトにアクセスして、「USD Pre-built Libraries and Tool」の下で対応するプラットフォームを選択することで取得できます。

Pixar Universal Scene Description (USD)

USDViewはPython 2.7のみをサポートしていることに注意してください。

4. 備考

・現在、「*.usd」「*.usda」拡張子がサポートされています。
・メッシュをインポートする場合、面ごとに頂点の数が異なるメッシュはインポートできません。

この記事が気に入ったらサポートをしてみませんか?