MARIプロジェクトにおけるパフォーマンスの最適化

新年、あけましておめでとうございます。
本年もインディゾーンをよろしくお願い致します。

 

MARIでプロジェクトを進めるにあたり、クリエイティブ・ブリーフの要求はだんだん大きくなってきており、ジオメトリの複雑さが増すにつれてテクスチャマップの解像度もますます高いものが求められます。

これを考慮に入れて、Mariを使用したペイント作業をより流動的に行うため、できる限りマシンのパフォーマンスを向上することは極めて重要になってきます。

今回はパフォーマンスを向上するための設定をいくつかご紹介いたします。

 

プリファレンス

Mip-Map Generation – 「Fast」

mari_preferences_gpu_mipmap-generation

※Editメニュー > Preferences > GPUタブ > Baking and Pojection

Mip-Map GenerationをFastに設定することで、線形化は行われず、ダウンサンプリングは画像の標準のカラースペースで実行されます。
これによってペイントバッファからキャンバスにペイントをベイクする処理は加速しますが、計算がリニアではないためエラーを引き起こす可能性があります。
 

Depth Projection – 「Allow Depth Projection」 – DISABLED
(チェックボックスを無効にする)

mari_preferences_gpu_depth-projection

※Editメニュー > Preferences > GPUタブ > Depth Projection

Depth Projectionは、リアルタイムアプリケーションでより正確なシャドウを生成するために使用することができます。これを無効にすることで、システムリソースを解放できます。
 

Vitual Texture Type – 「Byte」

mari_preferences_gpu_vt01

※Editメニュー > Preferences > GPUタブ > Virtual Texture

表示用にキャッシュされたチャンネルデータのデータタイプを制御します。設定を高くすると表示値の正確さは向上しますが、GPUメモリを多く消費します。

Float」オプションを使用すると、「Half」や「Byte」を使用するよりも、より多くのビデオカードメモリを消費してしまいます。多くの場合、Virtual Texture Typeを「Float」に設定しても特に利点はありません。Nvidia GeForceのようなカードの場合、「Half」に設定しておくことを推奨します。

Mariは、ペイントの投影やレイヤー処理で自動的に「Float」を内部的に使用します。Virtual Texture Typeは画面上にレンダリングするためのものだけなので、「Half」で十分です。

「Float」は精度の中でも最も高い精度となります。従って、「Float」に設定すると、より多くのビデオカードメモリの消費を犠牲にしての利益が得られます。言い換えると、「Half」や「Byte」に設定するほうが、「Float」に設定するよりも、より少ないビデオメモリの消費で安定的な操作が行える利点があります。
 

Virtual Texture Depth

mari_preferences_gpu_vt02

※Editメニュー > Preferences > GPUタブ > Virtual Texture

Mariが表示用に使用する仮想テクスチャの2Dテクスチャレイヤーの数を制御します。
これを増やすとテクスチャがちらつく問題を解決できるかもしれません。また、モデルのタンブリングが発生する部分で速度を速くすると、仮想テクスチャに含まれるそれぞれの2DテクスチャレイヤーはGPUの2GBメモリと同等になります。GPUメモリの上限を超えると不具合の原因となる恐れがあります。
 

ノード

RAWプロシージャルノードは、それらの高レベルな複雑さによって計算とレンダリングに多くのシステムメモリを必要とするため、使用を避けることを推奨します。パフォーマンスを向上するためにも可能な限りRAWプロシージャルノードはキャッシュ化することをお勧めします。
 

シェーダー&レイヤー

レイヤーのキャッシュ化

mari_cachelayeroption

多数のレイヤーや計算的に消費が激しいレイヤーはパフォーマンスを低下させてしまうことがあります。これらのレイヤーはキャッシュ化することで軽減できます。レイヤーをキャッシュ化するには、LayersメニューからCashing > Cache Layersを選択、またはレイヤーを右クリックしてドロップダウンメニューからCaching > Cache Layersを選択します。
 

複数のシェーダー設定

複数のシェーダーを設定して、それらを切り替えます。
例えば、ペイント/編集用にライトを設定し、最終プレビュー用に重い完全な設定を適用します。
 

Bump Mode

mari_shaderpalette_bumpmode

※Shadersパレット > シェーダーを選択 > Bump

Bump Modeの「Fast」もまた、「最終」ルックとは対照的にプレビュー用により適した設定です。
 

Bump Map

Bumpマップチャンネルのキャッシュ化を必要とする場合、ペイント中はBumpマップの適用を控えることをお勧めします。
 

ビューポート

非常に大きなビューポートの表示は避けることを推奨します。より多くのピクセルをレンダリングすることは、より低速度なFPSとなります。極端な場合には、特定のジオメトリ部分を非表示にすることでフレームレートを改善できるかもしれません。

 


関連リンク