DirectX シェーダ マテリアルを使用すると、DirectX (Direct3D)シェーダを使ってビューポートでオブジェクトをシェーディングできます。
DirectX シェーディングを使うと、ビューポート内のマテリアルは、マテリアルが他のアプリケーションやゲーム エンジンなどのハードウェアでどのように表示されるかを、より正確に表現することができます。Nitrous ドライバ(既定のドライバは Nitrous Direct3D 11)または古いバージョンの Direct3D ドライバを使用しているときにこのマテリアルを使用できます。
DirectX シェーダ マテリアルでは、以下のシェーダ タイプを使用できます。
FX ファイルは DirectX (DX9 または DX11)シェーダを定義します。これは、Higher-Level Shading Language (HLSL)標準を使って作成されたテキスト ファイルです。
既定値では、DirectX シェーダ(FX ファイルを含む)は 3ds Max のプログラム ディレクトリの 3ds Max に保存されます。
DirectX シェーダマテリアルでは ShaderFX にアクセスすることができ、ハードウェア シェーダ ツリーを作成して、HLSL、CGFX、または GLSL ファイルとして保存することができます。FX ファイル名拡張子を使用して HLSL ファイルに保存することができます。これにより、保存したファイルは、DirectX シェーダ マテリアルで使用できます。
Quicksilver ハードウェア レンダラーでは、FX ファイルまたは ShaderFX ツリーを使用する DirectX マテリアルをレンダリングできます。
XMSL ファイルには、1 つまたは複数のシェーダ ツリーが、XMSL 形式で保存されます。スレート マテリアル エディタで MetaSL シェーダを使用できます。また、[マテリアル変換へマップ](Map To Material Conversion)ノードでも、MetaSL シェーダ ツリーを XMSL ファイルとして保存することができます。(保存後、XMSL ファイルは 3ds Max で編集できなくなります)。
MetaSL シェーダを作成するには、mental mill ® アプリケーションを使用します。metal ray を使用した MetaSL シェーダは、mental mill から現象として保存する必要があります。現象については、『mental mill Artist Edition User Guide』(英語で提供)を参照してください。
mental ray レンダラーでは、XSML ファイルを使用する DirectX マテリアルをレンダリングできます。
通常、FX シェーダは、特定の数のライト(多くの場合、単一のライト)を使用するようコード化されています。開いた FX ファイルがこのようにコード化されている場合は、シェーダ固有のロールアウトに、使用するライトを選択するコントロールが表示されます。たとえば、次のように表示されます。
一方 XMSL シェーダは、特定のライトを使用するようコード化されていないため、シーンにあるすべてのアクティブなライトを使用します。
DirectX シェーダのマップ可能なコンポーネントにマップを割り当てる場合、以下のマップ タイプのいずれかを選択できます。
このボタンをクリックして、シェーダを開くファイル ダイアログ ボックスを表示します。既定では、FX フォーマット(Direct3D Effects)がアクティブであり、シェーダは standardfx11.fx です。
XMSL ファイルを開くには、ファイル ダイアログ ボックスの[ファイル タイプ](Files Of Type)ドロップダウン リストからファイル タイプを選択します。
このボタンをクリックして、アクティブなシェーダ ファイルを再ロードします。シェーダ ファイルを更新するには、ファイルを編集してから[再ロード](Reload)をクリックします。3ds Max を再起動しなくても、シェーダに加えた変更の効果を確認できます。
[ShaderFX を使用](Use ShaderFX)がオンのとき、ShaderFX ノード ツリーは、現在の FX または XMSL シェーダを上書きします。
ShaderFX エディタについての簡単な説明は、「ShaderFX 入門用のサンプル ワークフロー」を参照してください。また、「ShaderFX ノードについて」、「ShaderFX ノードで作業する」、「ShaderFX グループで作業する」も参照してください。
[DirectX シェーダ](DirectX Shader)ロールアウトと[技法](Technique)ロールアウトの間に表示されるロールアウトは、選択したシェーダに対するインタフェースです。これらのロールアウトは、各シェーダに固有のものです。
たとえば、XMSL ファイルを選択すると、シェーダ ツリー内の MetaSL シェーダごとにロールアウトが表示されます。現在のシーンのシェーダの設定をローカルで変更しても、XMSL ファイルは変更されません。
XMSL ファイルを使用した DirectX マテリアルのローカルで編集可能な MetaSL シェーダ ロールアウトの例
3ds Max で使用できないシェーダをロードした場合、パラメータの代わりに、エラー メッセージを示すロールアウトが表示されることがあります。例:
XMSL ファイルには、複数のシェーダを含めることができます。この中から 1 つを開く場合、[技法](Technique)ロールアウトには、マテリアルに使用するシェーダを選択できるドロップダウン リストがあります。
DirectX シェーダ マテリアルが適用されているオブジェクトのソフトウェア シェーディングおよびレンダリングを制御するマテリアルを指定します。Nitrous および古いバージョンの Direct3D ビューポートは DX シェーディングを使用します。OpenGL ビューポートは使用しません。Quicksilver ハードウェア レンダラー以外のレンダリングはソフトウェア シェーディングを使用します。
通常は、シーンのどのオブジェクトに DirectX シェーダ マテリアルが適用されているかを明確に識別するマテリアルを選択します。
システムで DirectX が使用できないにもかかわらず、マテリアル/マップ ブラウザの[互換性なし](Incompatible)オプションを使って DirectX シェーダ マテリアルを割り当てた場合、マテリアル エディタに表示されるのはこのロールアウトだけです。