記事一覧

Substance for MODO 2.4.0 GPUの利用

MODOでSubstanceのテクスチャを利用するための、Substance plugin for modo(2.4.0)ですが、テクスチャを生成するときのエンジンをCPUとGPUの2つから選択できます。
インストール直後はCPUを利用する設定になっているのですが、GPUを使って違いがあるのか試してみました。

Substance Engineの切り替え

Substance Engineの切り替えは、MODOのTextureメニューSubstance→Switch Substance Engineから設定可能です。
Switch Substance Engine

CPUとGPUが選択できるので、GPUを選択してOKボタンをクリックします。
GPU Engine

SubstanceでGPUを使う場合の注意点が表示されるので、内容を確認しOKボタンをクリックします。
注意点は「使っているGPUが最低限のハードウェア要件を満たしていない場合、MODOやシステムがクラッシュする可能性がありますよ…」という内容です。
GPUの機能を使うには、nVIDIA GeForce 650M以上、もしくはAMD 6870M以上で、VRAMを1GBより多く搭載したグラフィックカードが必要になります。CPUに統合されているような内蔵型のGPUはサポートされないようです。
※私が使っているグラフィックカードは、nVIDIA GeForce GTX 1080(VRAM 8GB)です。
Substance Warning

エンジンを切り替えるにはMODOの再起動が必要…とメッセージが表示されるので、OKボタンを押してMODOを再起動します。(自動では再起動されません)
Restart message

MODOを再起動すると、SubstanceがGPUエンジンに切り替わっています。
GPUエンジンを使った場合、最大で4096x4096ピクセルのテクスチャが生成可能になります。ちなみに、CPUエンジンの場合は2048x2048が生成可能な最大サイズになります。

なお、テクスチャ生成にかかる時間は、CPUでもGPUでも違いは分かりませんでした。どちらのエンジンを利用した場合でも、ボタンをクリックしてすぐにテクスチャが生成されます。
Substance output size


生成されるテクスチャに違いはあるのか?

次に気になるのが、エンジンによって生成されるテクスチャに違いが出るのか…という点です。
GPUを使った場合、CPUよりも計算精度が落ちて出力される結果(品質)も少し悪くなる…という事がよくありますが、Substanceの出力結果がどうなのか比較してみました。

下のテクスチャは、CPUとGPUのエンジンで生成した2048x2048のテクスチャです。
当たり前ですが、目視では違いが分かりません。
Compare CPU and GPU

違いが分かりやすいように、2つの画像で差の絶対値をとってみました。
差の絶対値…というと難しいかもしれませんが、要は「全く同じ画像なら真っ黒になり、違いがある部分には色がつく…」というものです。
結果は全体真っ黒…となり、2つの画像に大きな差は無いことが分かります。
Diff CPU and GPU

念のため、わずかな違いでも分かるように、上の画像をレベル補正しました。
ちなみに、レベル補正の値は0~2の超極端な値に設定しています。簡単に言うと、RGBのどれかの色が0~255段階で1段階でも違っていたら分かるレベルです。(たとえば、RGB=255,255,255の白色だった部分が、RGB=255,255,254になっていても明確に検出できるレベルです…)

ここまでレベル補正をかけて、やっと全体的に均一なノイズ(差)が見られました。
そのため、2つの画像は完全には同じものではありませんが、生成される画像には極めてわずかな違いしかなく、ノイズが出る場所も偏っているわけではないため、エンジンの違いによる影響は全く気にする必要がないと言えます。
Diff CPU and GPU レベル補正

これらの結果から、GPUが利用できる要件を満たしているのであれば、より大きなサイズのテクスチャが生成できるGPUエンジンを選択しておくことをおすすめします。
もしかすると、CPUとGPUの違いで安定性が違ってくるかもしれませんが、しばらく使っている感じでは安定性においても違いは無いように感じます。


関連記事

スポンサーリンク

  

コメント

コメントの投稿

非公開コメント