mental ray standalone でのレンダリング用に .mi 形式で書き出されたファイルで、フレームごとにジオメトリが振動しているように見えることがあります。この場合は、次の 3 つの解決方法があります。
.mi ファイルに書き出すときに、ASCII の代わりにバイナリ ファイル フォーマットを使用して書き出し、変換によるデータ損失を防ぎます。
精度が下がるのは、mental ray for Maya が浮動小数点の精度 6 桁、倍精度浮動小数点の精度 15 桁で書き出しているためです。たとえば、浮動小数点の値 1000.2249 は、書き出す時に 1000.22 に丸められます。
精度を上げるためには、浮動小数点で書き出し(Export Float Precision) および倍精度で書き出し(Export Double Precision)といったユーザ定義のアトリビュートを使用することができます。
ステータス ラインで次の値を入力して、これらのアトリビュートを作成します。
addAttr -type short -ln “exportFloatPrecision” mentalrayGlobals addAttr -type short -ln “exportDoublePrecision” mentalrayGlobals
これらのアトリビュートを以下のように設定します。
setAttr mentalrayGlobals.exportFloatPrecision <value> setAttr mentalrayGlobals.exportFloatPrecision <value>
ここで、<value> は、使用する精度の桁数です。
大きいオブジェクト オフセットを非常に小さいシェイプのデフォメーションとともに使用することを避け、頂点位置が 1000.000001 のような結果にならないようにします。これは一般的に浮動小数点で表現できる精度を超えており、また .mi フォーマットには頂点位置の倍精度表現がありません。既定の精度が .mi ファイルでシーンを表現するのに十分でない状況では、Maya モデルを確認して極端な値にならないようにする必要があります。
スキニングなど、Maya モデリング機能の一部は、最終的なシェイプ プロパティへのベイク処理グローバル変換で確認されるので、極端なケースでは記述の問題が起きる場合があります。
mental ray for Maya のレンダリング エラーが発生した場合は、Maya シーンを保存し、シーンを即座に再レンダーしないようにしてください。代わりに、Maya を終了して再起動します。
シーンをレンダーするのに十分なメモリがない場合は、「MEM 0.3: TRY -MEMORY 314」に似たエラー メッセージが表示されることがあります。トラブル シューティングするには、レンダー > 現在のフレームのレンダー(Render > Render Current Frame)を選択し、メモリ制限(Memory Limit)をエラー メッセージに表示されるメモリ量以上に増やします。ただし、一般的には、メモリ不足が発生する場合には、シーンの最適化を再検討することも必要です。
オブジェクトがイメージ プレーンなどの透明なオブジェクトによって隠れている場合、オブジェクトの一次可視性(Primary Visibility)のフラグ(オブジェクトのアトリビュート エディタ(Attribute Editor)のレンダリング詳細(Render Stats)セクション)がオフになっていても、オブジェクトはレンダリングされます。
代わりに、透明度の可視(Visible in Transparency)フラグ(オブジェクトのアトリビュート エディタ(Attribute Editor)の mental ray セクション)をオフにします。
この動作は、mental ray for Maya でのみ発生します。これは mental ray for Maya が、Maya レンダラと異なり一次可視性(Primary Visibility)と透明度(Transparency)を区別するからです。一次可視性(Primary Visibility)をオフにしても、mental ray は前面の透明なオブジェクトの後ろにあるジオメトリを認識し、レンダリングに含めます。このジオメトリを除外するには、透明度の可視(Visible in Transparency)を無効にしてください。
この動作はまた、前面のオブジェクトが透明(Transparent)な場合にのみ発生します。前面のオブジェクトの一次可視性(Primary Visibility)をオフにしてシーンをセットアップすると、この動作は発生しません。
以下のセクションで、Maya と mental ray for Maya 間の明らかな違いを説明し、その対処方法に関するヒントを提供します。
スキャンラインのみのレンダリングは、Maya の既定のレンダー モードです。スキャンラインのレンダリングにさまざまな制約があるため、モーション ブラー、ボリューム レンダリング、シャドウ トレーシングなどと一緒に使用すると、アーティファクトが生じる可能性があります。レンダーに問題が生じた場合には、レイ トレーシング(Raytracing)をオンにする必要があります。
mental ray は、ディスプレイスメント マップのディテールにうまく適合するように条件判断型テッセレーションを使用しています。一次テッセレーション(NURBS の場合: サーフェス計算後)は、ディスプレイスメントの概算の設定によって制御される、二次基準に合わせて更に分割されます。mental ray for Maya は、既定で、曲率に応じて三角形に分割する適切な設定値を設定します。これは、フィーチャベースのディスプレイスメント マッピングの 1 つの方法です。近似エディタ(Approximation Editor)でカスタム ディスプレイス近似ノードを作成または選択してこれらの設定を変更することができます。近似ノードの詳細については、近似ノードを参照してください。
Maya ライトの mental ray シャドウ マップ アトリビュートが無効の場合、mental ray for Maya では、シャドウ マップのほとんどのパラメータが Maya の深度マップ設定から導き出されますが、コントロールの値はほとんど該当しません。このため、特にフィルタの値を変更してソフト シャドウを生成したときに、異なる結果が生じます。シャープなシャドウの場合は、フィルタ サイズ(Filter Size)を 0 に設定する必要があります。中間距離の使用(Use Mid Dist)や自動焦点の使用(Use Auto Focus)など、その他のコントロールは mental ray シャドウマップの値には適用されません。
mental ray for Maya のシャドウ マッピングの処理方法については、Maya のシャドウを参照してください。
mental ray シェーダにバンプ マッピングを導入する場合は、バンプ ノードのフィルタ(Filter)設定を Maya とは若干変更する必要があります。このフィルタでは、通常、ビューに依存したバンプ マッピングのディテールが生成されますが、これは、アニメーションには適さない場合があります。Maya と mental ray の両方で、フィルタ(Filter)の値を 0 にしてこのフィルタを無効にすると、フィルタのオフセット(Filter Offset)によってバンプ マップのルックアップが決まります。これによって、ビューに依存しない正しいバンプ マッピングのレンダー結果が得られます。
透明なオブジェクトでは、Maya のマットの不透明度(Matte Opacity)の設定に従って、最終イメージに適切なアルファ チャネルが生成されます。ただし、以下のような制約があります。
透明度の詳細については、サーフェス テクスチャを参照してください。
このエフェクトは、Maya での出力フィルタとは異なり、mental ray のレンズ シェーダでサポートされています。このため、mental ray ではグローバルなサンプリング設定の影響を受けます。サンプリング レベルの最小値または最大値を上げると画質が向上しますが、その分、レンダリング スピードが低下します。一方、出力フィルタでは正しい深度オブ フィールド ブラーを生成できないような難しいシーンでも、この真の 3D エフェクトではアーティファクトが生じることはありません。
グループをレンダー レイヤに割り当てると、mental ray for Maya では、そのグループのメンバもすべてそのレイヤに属し、そのアトリビュートを継承するものとみなされます。ただし、Maya では、グループのメンバをグループの親とは別のレイヤに割り当てることができます。
ソフトウェア レンダリングのパーティクル タイプは、mental ray によるレンダリング用のすべてのプラットフォームでサポートされています。パーティクルをレンダーするには、新しい Maya ベースのシェーダ ライブラリが必要です。これも、すべてのプラットフォームで使用可能です。パーティクル データは、.mi ファイルに書き出すこともできます。これらのファイルは、Maya を使用していたマシンとバイトの並び順(ビッグ エンディアン/リトル エンディアン)が異なるマシン上ではレンダーできません(たとえば、Linux と Windows の両方で使うことはできません)。パーティクルのトランスレーションとレンダリングには制限があり、大量のパーティクルは処理できない可能性があります。ライト リンクはパーティクルではサポートされていません。ただし、ソフトウェア パーティクルとパーティクルのインスタンス化はシームレスに連携するはずです。
Maya の レンダー(Render)メニューをティアオフしてから mental ray for Maya プラグインをロードし、mental ray for Maya のレンダー メニューをティアオフすると、Maya がクラッシュする場合があります。
mental ray for Maya をロードする前に、メニューを閉じてください。
ファイウォール ソフトウェアにより、コマンドのポートが遮断される場合があります。mental ray for Maya をロードする際に、ファイアウォールから「Maya アプリケーションにインターネット: IP アドレス 127.0.0.1 ポート 1333 へのアクセスを許可するか」という問い合わせがあります。ここで「いいえ」を選択すると、警告やエラーのメッセージは表示されず、Maya は即座に終了します。「はい」を選択すると、mental ray for Maya が通常どおりに起動します。
ファイアウォール ソフトウェアを使用している場合は、Maya に対してポート 1333 での通信を許可しなければ、mental ray for Maya が正しく動作しません。
3D ペイントでテクスチャをペイントする際に、mental ray for Maya で新しいペイント ストロークが自動では検出されません。
mental ray でレンダーする前に、ペイントしたテクスチャまたはシーン全体を保存しておき、すべてのストロークが正しくレンダーされるようにします。
既定では、mental ray のバッチ レンダーされたイメージは、プロジェクトの images フォルダに保存されます。
マルチコアのマシンで複数レンダーを実行すると、メモリの消費量が非常に多くなります。一方、マルチコアのマシンで単一のレンダーを実行すると、メモリが共有されるため、レンダリングの処理速度が改善します。