Mayaで自作シェーダーを使う ~ HLSL編 ~

Tech

はじめに

Mayaには標準のマテリアルが用意されていますが、自作シェーダーを使うと、標準機能だけでは難しい表現や、制作目的に合わせた独自の描画処理を実装できます。

Mayaではいくつかのシェーダー言語を使用できますが、この記事では、MayaのビューポートでHLSLシェーダーを表示するまでの手順を解説します。(HLSLそのものについて解説は、他のサイトに譲ります。)

「Mayaで自作シェーダーを使う」シリーズの他の記事はこちらです。

シェーダーファイルの用意

まずはHLSLファイルを用意します。

以下は、赤単色で表示するシンプルなサンプルシェーダーです。これをテキストエディタで拡張子を.fxとして保存すればHLSLファイルとして使用できます。

Mayaの準備

Plug-in Managerで dx11Shader.mll の「Loaded」と「Auto load」にチェックを入れます。

MayaのPlug-in Managerでdx11Shader.mllを有効にする設定

Preference > Display > Rendering engine を「DirectX 11」に変更し、Mayaを再起動します。

MayaのRendering engineをDirectX 11へ変更する設定

ビューポートの「Textured」と「Use all Lights」をONにします。

MayaビューポートのTexturedとUse all Lightsを有効にした状態

シェーダーの読み込み

dx11Shader ノードを作成し、任意のオブジェクトに割り当てます。

Mayaでdx11Shaderノードをオブジェクトへ割り当てる操作

dx11Shader ノードの「Shader File」に、用意したHLSLファイルのパスを指定して読み込みます。

dx11ShaderノードのShader Fileへfxファイルを指定する設定

上記のサンプルHLSLを読み込んだ場合、オブジェクトが真っ赤に表示されれば成功です。

ファイルを書き換えて再読み込みすれば、好きな表現に置き換えることができます。

HLSLシェーダーによりMayaのオブジェクトが赤く表示された成功例

まとめ

HLSLシェーダーをMayaで使用するには、dx11Shader プラグインを有効にし、レンダリングエンジンをDirectX 11に切り替えるのがポイントです。あとは .fx ファイルを用意してノードへ読み込むだけで、ビューポートに自作シェーダーを表示できます。

シェーダーの書き方を工夫すれば、ライティングやテクスチャの制御も自由に行えます。ぜひ色々試してみてください。

コメント

タイトルとURLをコピーしました