USDのバージョン指定
現在(2018年7月10日時点)の最新リリース版はv0.8.5です。
※USD_VERSIONを指定してもDockerfile内で0.8.1という値がハードコーディングされてしまっているので、作成されるコンテナの名前は0.8.1になってしまいます。全部書き換えてもいいのですが、今回は面倒なのでそのままにしておきます。
$ vi centos7/usd/Dockerfile
# 0.8.5 に書き換え
ENV USD_VERSION "0.8.5"
インストール
$ sudo ./build-centos7.sh ../apps/
数十分から数時間ほど待つと処理が終わります。私の環境では40分くらいで終わりました。
さて、ビルドは無事に成功したでしょうか?
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
usd-docker/usd 0.8.1-centos7 14dd3f8fefa4 6 minutes ago 3.63GB
usd-docker/usd latest-centos7 14dd3f8fefa4 6 minutes ago 3.63GB
usd-docker/vfx 1-centos7 0f98602ca6a6 27 minutes ago 2.76GB
usd-docker/vfx latest-centos7 0f98602ca6a6 27 minutes ago 2.76GB
374b1682290a About an hour ago 2.28GB
usd-docker/base 1-centos7 3f8667ce0f30 About an hour ago 2.28GB
usd-docker/base latest-centos7 3f8667ce0f30 About an hour ago 2.28GB
baea292c0265 About an hour ago 2.18GB
nvidia/cuda 7.5-devel-centos7 1c32c124906d 4 days ago 1.24GB
$ sudo nvidia-docker run --rm --env=DISPLAY=$DISPLAY --env="QT_X11_NO_MITSHM=1" --env="LIBGL_ALWAYS_INDIRECT=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --volume="/home:/home:rw" -ti usd-docker/usd:latest-centos7 /opt/usd/usd/0.8.5/bin/usdview /opt/usd/usd/0.8.5/share/usd/tutorials/convertingLayerFormats/Sphere.usd
見事にusdviewが起動しました!!
・サンプルデータの入手
PixarのWebサイトにサンプルデータがあります。こちらのKITCHEN SETを開いてみます。
$ sudo nvidia-docker run --rm --env=DISPLAY=$DISPLAY --env="QT_X11_NO_MITSHM=1" --env="LIBGL_ALWAYS_INDIRECT=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --volume="/home:/home:rw" -ti usd-docker/usd:latest-centos7 /opt/usd/usd/0.8.5/bin/usdview ~/Downloads/Kitchen_set.usd
ちなみに起動時の表示は最も軽いモードで行われています。View→Complexityでサブディビジョンの詳細さを変えることができます。
Complexity: Low
Complexity: High
今回までで、ものすごく駆け足ではあるもののUSDを使用する環境の構築まで行うことができました。えっえっ!? Pixar!? そこが使っている環境!? と聞くとものすごいことのように感じて尻込みしてしまうかもしれませんが、それほど高度なことをしなくても同様な環境を手元につくることができるのは本当にいい時代だなぁ~と思います。だからこそこの環境を生かせるところと生かせないところでどんどん格差が広がってしまうと言うことができます。
今後の課題
これで、Docker内で動いているGPUを使用するアプリケーションをLinuxデスクトップ環境で使用できるようになりました。しかし、Linuxを使用するときによくやる、マシンルームにある高性能な計算機から画面のみ転送してクライアントで操作するということが今のままではできません。色々調べたところコンテナ内のアプリケーションの画面を転送してクライアントで動作させた実績はあるようです。例えば、"ILM - Pipeline in the cloud"ではクラウド上の計算機からVirtualGLを使用しているようです。これは課題として面白いですし、実用性も高いので手元でも実現してみたい技術のひとつです。
今回でやっとベースになる環境が整いました。次回からはUSDを使用したシーン構築やレンダリングを行なっていきたいとおもいます。
第4回の公開は、2018年9月を予定しております。
プロフィール