マテリアル エディタの改善点

NVIDIA MDL および MaterialX マテリアルを読み込み、マテリアル エディタで公開パラメータを調整し、3 つすべてのレンダリング モード(OpenGL、CPU レイトレーシング、GPU レイトレーシング)でレンダリングできるようになりました。また、マテリアルの粗さのコントロールが、0 ~ 1 の範囲の知覚的にリニアな動作に変更され、より簡単にコントロールできるようになりました。

ビデオ キャプション: VRED 2024 では、ユーザ インタフェース全体の最新化と修正を開始しました。さらに、Material x および MDL マテリアルを読み込む機能が追加されました。これにより複雑なマテリアル定義をキャプチャできるため、マテリアルを操作する際に多くのオプションを使用できるようになります。それらは手続き型ですが、オートデスク内外での優れた交換可能性を実現するために多くのアプリケーションで使用されているオープン標準です。

たとえば、NVIDIA の Web サイトから MDL マテリアルをダウンロードし、AMD の Web サイトから Material X をダウンロードすることができます。次に、Material X または MDL マテリアルを作成し、マテリアル定義をロードします。これで、すべての編集可能なパラメータを使用できます。これにより、マテリアルを使用する際のパイプラインの質が大幅に向上します。

以上でビデオを終わります。

サンプル マテリアル ライブラリ

次のマテリアル ライブラリにアクセスするには、次のリンクをクリックしてください。

重要:

VRED で NVIDIA MDL または MaterialX マテリアルを最初から作成することはまだできません。ノードベースのマテリアル エディタもありません。

これらのマテリアル ライブラリのマテリアルの一部は非常に大きく、非常に高度なパラメータまたは最大 16 のテクスチャを含み、特にレイトレーシング時にレンダリングのパフォーマンスを大幅に低下させるため、レンダリングのパフォーマンスを監視することをお勧めします。

ヒント:

独自のマテリアル ファイルを作成する場合は、MaterialX と MDL の両方ともプレーン ASCII テキスト ファイルなので、外部エディタを使用して作成できます。

MDLの理解と使用に役立つその他のリソースについては、『NVIDIA MDL - ハンドブック』を参照してください。言語の背景、理論、実用的な例が示されています。

OpenGL およびレイトレーサーの計算済みのイルミネーション モードでの MDL のサポート

OpenGL レンダラおよび CPU と GPU レイトレーサで計算済みイルミネーション モードになっている場合、リアルタイムのコンストレイントにより、MDL マテリアルは簡易モデルになるよう処理されます。この簡易モデルは、粗さ/メタル性の PBR モデルに基づいており、一部が修正されています。MDL マテリアルは、異方性/等方性 GGX BRDF を使用してモデル化された一般的な金属レイヤ、鏡面反射光レイヤ、拡散反射光レイヤになるよう簡易化されています。これらのレイヤの上に、等方性 GGX BRDFでモデリングされたクリアコート レイヤがあります。スペキュラ透過は、ベール-ランベルトの法則の係数である absorption_coefficientscattering_coefficients を組み合わせてモデリングされます。OpenGL の境界(屈折や内部反射は発生しない)の間で IOR が変わることはなく、レイトレーサの計算済みのイルミネーション モードで境界間の IOR は完全に考慮されます。OpenGL の拡散反射光透過は、サブサーフェス スキャタリングの簡易拡散反射光の近似式によって近似されます。透明度はアルファ ブレンディングとして実装されます。放出によってシーンが照らされることはありません。

MDL マテリアルの簡易化プロセスでは、OpenGL レンダラと CPU/GPU レイトレーサの計算済みイルミネーション モードのコンストレイントに基づいて、マテリアルがオリジナルに近くなることに注意してください。このプロセスでは、MDL の一部の機能が削除されるか、より単純な形式に切り替わります。

サポートされていないフィーチャ

これらの機能は、OpenGL レンダラおよび CPU/GPU レイトレーサの計算済みモードではサポートされていません。

これらの機能がサポートされていないのは、OpenGL レンダラのみです。

部分的にサポートされる機能

次に示す機能は、OpenGL レンダラおよび CPU/GPU レイトレーサの計算済みモードでは部分的にサポートされています。

マテリアルの粗さ

また、マテリアルの粗さのコントロールが、0 ~ 1 の範囲の知覚的にリニアな動作に変更され、より簡単にコントロールできるようになりました。これにより、VRED は他のマテリアル ライブラリの粗さの値をマッピングできます。既存のシーンを開くときには、マテリアルの外観は変更されませんが、値が新しい 0 ~ 1 の範囲に調整されます。

古い粗さを新しい粗さに変換する

この新しい粗さスケールに変換する必要がある古いマテリアルを使用するユーザは、手動で、または Python を使用して行うことができます。

手動によるアプローチ

計算機を使用して新しい変換値を計算します。たとえば、革など、特定のマテリアル タイプに対して VRED の粗さ値を 2.0 に設定した場合、2024 バージョンで使用する値を計算する必要があります。

注:

特定の値を持つ旧バージョンのマテリアルが 2024 に読み込まれた場合、変換は自動的に実行され、新しい値が表示されます。

これらの式を使用して、古い粗さの値を新しい値に変換、またはその逆を行います。

Python アプローチ

マテリアルの粗さは Python スクリプトで設定できます。VRED 2024 では、値に新しい範囲(0 ~ 1)を使用する必要があります。VRED 2023 以前では、値に古い範囲(0 ~ 40)を使用する必要があります。

したがって、古いバージョン(2023.4 以前)の VRED 用に記述されたスクリプトでは、特定の粗さの値が設定される場合があります。

次に例を示します。

leather = vrMaterialService.createMaterial("leather", vrMaterialTypes.Plastic)
leather.setRoughness(2.0) # legacy roughness value for VRED 2023

VRED 2024 でこのスクリプトを使用する場合、この値を変換して、古いバージョンの VRED と同じ表示結果を得る必要があります。これを行うには、上記の式を次の 2 つの Python 関数として定義できます。

from math import sqrt, pow

def toNewRoughness(oldRoughness):
    return sqrt(sqrt(oldRoughness / 40.0))

def toOldRoughness(newRoughness):
    return pow(newRoughness, 4.0) * 40.0

したがって、VRED 2024 では従来の粗さの値が 2024 の値に変換されます。

leather = vrMaterialService.createMaterial("leather", vrMaterialTypes.Plastic)
leather.setRoughness(toNewRoughness(2.0)) # convert legacy roughness value to 2024 value