DirectX シェーダ マテリアルは、FX ファイルを使用します。FX ファイルは DirectX (DX9 または DX11)シェーダを定義します。これは、Higher-Level Shading Language (HLSL)標準を使って作成されたテキスト ファイルです。
既定では、DirectX シェーダ(FX ファイルを含む)は 3ds Max のプログラム フォルダの ¥maps¥fx¥ に保存されます。
DirectX シェーダ マテリアルでは ShaderFX にアクセスすることができ、ハードウェア シェーダ ツリーを作成して、HLSL、CGFX、または GLSL ファイルとして保存することができます。FX ファイル名拡張子を使用して HLSL ファイルに保存することができます。これにより、保存したファイルは、DirectX シェーダ マテリアルで使用できます。
Quicksilver ハードウェア レンダラーでは、FX ファイルまたは ShaderFX ツリーを使用する DirectX マテリアルをレンダリングできます。
通常、FX シェーダは、特定の数のライト(多くの場合、単一のライト)を使用するようコード化されています。開いた FX ファイルがこのようにコード化されている場合は、シェーダ固有のロールアウトに、使用するライトを選択するコントロールが表示されます。たとえば、次のように表示されます。
一方 XMSL シェーダは、特定のライトを使用するようコード化されていないため、シーンにあるすべてのアクティブなライトを使用します。
DirectX シェーダのマップ可能なコンポーネントにマップを割り当てる場合、以下のマップ タイプのいずれかを選択できます。
DirectX 方法を選択するには、このメニューを使用します。
[ShaderFX を使用](Use ShaderFX)がオンのとき、ShaderFX ノード ツリーは、現在の FX または XMSL シェーダを上書きします。
Stingray シェーダは、ShaderFX と同様に ShaderFX エディタを使用します。
HLSL ファイルがアクティブな状態で、このボタンをクリックしてシェーダを開くためのファイル ダイアログ ボックスを表示します。既定では、FX フォーマット(Direct3D Effects)がアクティブであり、シェーダは standardfx11.fx です。
HLSL ファイルがアクティブである間は、このボタンをクリックしてアクティブなシェーダ ファイルを再ロードします。シェーダ ファイルを更新するには、ファイルを編集してから[再ロード](Reload)をクリックします。3ds Max を再起動しなくても、シェーダに加えた変更の効果を確認できます。
[DirectX シェーダ](DirectX Shader)ロールアウトと[技法](Technique)ロールアウトの間に表示されるロールアウトは、選択したシェーダに対するインタフェースです。これらのロールアウトは、各シェーダに固有のものです。
default10.fx シェーダ用のパラメータ
FX ファイルには、複数のシェーダを含めることができます。この中から 1 つを開く場合、[技法](Technique)ロールアウトには、マテリアルに使用するシェーダを選択できるドロップダウン リストがあります。
DirectX シェーダ マテリアルが適用されているオブジェクトのソフトウェア シェーディングおよびレンダリングを制御するマテリアルを指定します。Nitrous および古いバージョンの Direct3D ビューポートは DX シェーディングを使用します。OpenGL ビューポートは使用しません。Quicksilver ハードウェア レンダラー以外のレンダリングはソフトウェア シェーディングを使用します。
通常は、シーンのどのオブジェクトに DirectX シェーダ マテリアルが適用されているかを明確に識別するマテリアルを選択します。
システムで DirectX が使用できないにもかかわらず、マテリアル/マップ ブラウザの[互換性なし](Incompatible)オプションを使って DirectX シェーダ マテリアルを割り当てた場合、マテリアル エディタに表示されるのはこのロールアウトだけです。