SoftImageとリアルタイムシェーダー

はじめに

Autodesk SoftImage ModTool 7.5とリアルタイムシェーダーについて、
正常動作にはいろいろと条件がありそうなため、調べてみました。

DirectX 2006Dec以降がインストールされていることが必要です。
そのため、以下の環境は DirectX SDK 2009Augustを用いてチェックしています。
このバージョンを選択している理由は以下の環境すべてで正しく動作すると
考えられている最低バージョンのためです。

検証結果

以下の表に、DirectXランタイムとOSごとの組み合わせで、
動作状況はどうであったかをまとめてみました。

環境 ビデオボード ドライバ DX9ランタイム 動作可否
XP SP3 (x86) Geforce9800GT 260.99 Retail 正常動作
Vista Ultimate SP2 (x86) Geforce9800GT 260.99 Retail 正常動作
Vista Ultimate SP2 (x64) Geforce9800GT 258.96 Retail 正常動作
Windows7 Ultimate (x86) Geforce9800GT 260.99 Retail 正常動作
Windows7 Ultimate (x64) Geforce9800GT 260.99 Retail 正常動作
XP SP3 (x86) Geforce9800GT 260.99 Debug 動作しない
Vista Ultimate SP2 (x86) Geforce9800GT 260.99 Debug 動作しない.
Vista Ultimate SP2 (x64) Geforce9800GT 258.96 Debug 動作しない.
Windows7 Ultimate (x86) Geforce9800GT 260.99 Debug 正常動作
Windows7 Ultimate (x64) Geforce9800GT 260.99 Debug 正常動作
環境 ビデオボード ドライバ DX9ランタイム 動作可否
XP SP3 (x86) RADEON HD5450 10.11 Retail 正常動作
Vista Ultimate SP2 (x86) RADEON HD5450 10.11 Retail 正常動作
Vista Ultimate SP2 (x64) RADEON HD5450 10.11 Retail 正常動作
Windows7 Ultimate (x86) RADEON HD5450 10.11 Retail 正常動作
Windows7 Ultimate (x64) RADEON HD5450 10.11 Retail 正常動作
XP SP3 (x86) RADEON HD5450 10.11 Debug 動作しない.
Vista Ultimate SP2 (x86) RADEON HD5450 10.11 Debug 動作しない.
Vista Ultimate SP2 (x64) RADEON HD5450 10.11 Debug 動作しない.
Windows7 Ultimate (x86) RADEON HD5450 10.11 Debug 正常動作.
Windows7 Ultimate (x64) RADEON HD5450 10.11 Debug 正常動作

動作しない = ビューポートに何も表示されない状況を示します。

切り替え方法

DirectX SDKインストールすると出来るスタートメニューグループで、
“DirectX Utilities”→”DirectX Control Panel” を選択します。
そして、以下の項目のどちらかにラジオボタンで選択して、OKを押します。

  • “Use Debug Version of Direct3D9”
  • “Use Retail Version of Direct3D9”

これでDirectXランタイムが切り替わります。

なお、通常であればアプリケーションの再起動が必要なのですが、
SoftImage ModToolの場合、ビューポートの設定を切り替えるだけで、
このランタイム切り替えの効果を得ることが出来ました。

”ワイヤーフレーム” ←→ “リアルタイム/DirectX9”

の切り替えで反映させることが出来ました。

補足

64bit環境の場合には、ほんのちょっとだけ注意が必要です。
SoftImage ModToolは32bitアプリケーションなので、
使用するDirectX Control Panelも32bit版である必要があります。

まとめ

以上の結果から、まとめてみたいと思います。
RetailのDirectXランタイムを使っている状況では、
SoftImage ModTool 7.5のリアルタイムシェーダーを使うことに問題はありません。
ただし、DirectXのデバッグランタイムを使っている場合には、
環境に大きく依存するということが言えそうです。
Windows7であれば、どちらのランタイムでも動くようですが、
それ以前の環境ではDebugランタイムでの使用は壊滅的だといえます。

アーティストさんの使用する環境ではDirectX SDKがインストールされていることは稀である、と考えられているのかもしれません。
確かにプログラマ以外DirectX SDKは不要だとも思いますけど。
アーティストさんとやりとりするプログラマの人々は、
こういった挙動に対して、いろいろと知っておかなくてはならないだろうし、
大変だなぁと思いました。

余談

Vista以降でディスプレイドライバモデルが変更されました。
そのため、VistaであればDebug/Retailも関係なく動くのでは?と思っていたのですが予想を裏切られました。
Vista->Windows7は、WDDM1.1とマイナーバージョンアップとなっていますが、
仕様としてはまぁまぁの規模で変更があるので、
そのあたり対応する過程で、うまく動くようになってるのかなと考えています。