0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

USD 22.11 を Windows で C++ 用に mindep ビルドするメモ

Last updated at Posted at 2022-11-01

背景

漢には, Windows で C++ で pxrUSD 使わねばならぬときもある... C++ でコアの機能(UsdGeomMesh とか)が使えればよい. usdImaging とか Hydra とか Python binding はとりあえずはいらない.

pxrUSD の Windows ビルドめんどくさすぎじゃ...

Prebuilt あるけど,

Python 付き + VS2015(v141) でビルドされているため, C/C++ で pxrUSD の API だけ使いときにいろいろ問題ある(VS2019~ だと v142 なので, boot-python.lib 関連がなくてリンクできないなど)

環境

  • VS2019 or VS20222
  • (mini)conda
  • Windows 10 or 11

手順

の python のビルドスクリプトを使います.

優秀な若人さまにおかれましては, 機械学習で Python 環境は conda で作っているかと思いますので, 今回 conda 使います.

conda インストールして, conda init しておくと PATH など環境変数設定してくれますのでやっておくとよいでしょう.

Python は 2020/11 時点では 3.8 以上がよいと思いますが, 今後 USD を Python 付きでビルドするかもを想定し, 一応互換性考えて 3.7 環境を作っておきます.
(また古い USD のバージョンだと Python 3.8+ 対応していない)

> conda create -n usd-22 python=3.7

VS の開発環境に入り(or vcvarsalllbat をよぶ https://stackoverflow.com/questions/43372235/vcvarsall-bat-for-visual-studio-2017), conda で activate しておきます.

あとはいろいろ disable してビルドするだけです!
今回は --build-monolithic つけてみました.

python USD\build_scripts\build_usd.py --no-python --build-monolithic --no-openvdb --no-materialx --no-ptex --no-embree --no-prman --no-hdf5 --no-alembic --no-draco --no-docs --no-imaging --no-openimageio --no-opencolorio  USD-dist-22_11

その他, お好みで調整して. App が Debug ビルドする場合, CRT のデバッグ機能などと合わせるために pxrUSD も --debug つけてビルドする必要があると思います.

usd file format plugin folder

.dll を App フォルダにコピって使っているばあい, USD ファイルを Open しようとしても cannot determine format error というエラーがおきるときがあります.

これは pxrUSD が .usda, .usdc でも file format 情報を plugin JSON <dist>/lib/usd にあるファイル群から読み取る必要があるためです!(monolithic build とか dll ビルドのときでも同じ). めんどくさいネ...

PXR_PLUGINPATH_NAME で環境変数を設定するか, C++ で PluginRegistory で登録してあげる必要があります.

(Linux だと .so ファイルは通常動かさないので, plugin info ファイルを .so からの相対パスでうまく見つけてくれる模様)
`

Monolithic build

USD を monolithic にビルドしている場合, リンクするライブラリ名は usd_ms.lib になります.

使うときの注意

TBB が, Debug ビルド時に TBB_USE_ASSERT などマクロ定義してあげる必要があるときがあるかもしれません.

Seg fault 問題

ただ, なんかビルド構成によるのか, pxrUSD API 内で exception が起きてしまうときがあります...
どうも Debug build かどうかだったり Unicode/MBCS charset 問題のもよう...

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?