🐙

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

に公開

MayaでGLSLシェーダーを表示するまでの手順。

HLSL編 → https://zenn.dev/tachikure/articles/499b212e9fe6c9
OSL編 → https://zenn.dev/tachikure/articles/807bb71b0feef0

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

拡張子を.ogsfxにしたGLSLファイルを用意する。

赤単色のシンプルなシェーダー ↓ ↓ ↓

sample.ogsfx
// 変数宣言
uniform mat4 WVP_mat: WorldViewProjection;

// アトリビュート
attribute VS_IN{ vec3 pos: POSITION; vec3 normal: NORMAL; }
attribute VS_OUT{}
attribute PS_OUT{ vec4 colorOut: COLOR0; }

// 頂点シェーダー
GLSLShader VS{
    void main(){
        gl_Position = WVP_mat * vec4(pos, 1.0);
    }
}

// ピクセルシェーダー(フラグメントシェーダー)
GLSLShader PS{
    void main(){
        colorOut = vec4(1.0, 0.0, 0.0, 1.0);
    }
}

// テクニック宣言
technique Main{
    pass P0{
        VertexShader(in VS_IN, out VS_OUT) = VS;
        PixelShader(in VS_OUT, out PS_OUT) = PS;
    }
}

Mayaの準備

Plug-in ManagerでglslShader.mllのloadとAuto loadにチェックを入れる。

Preference > Display > Rendering engineをOpenGL-Core Profile(Compatibility/strict)に変更しMayaを再起動。

viewportのTexturedとUse all LightsをON。

シェーダーの読み込み

[glslShader]ノードを作成し、オブジェクトに割り当てる。

[glslShader]ノードのShade Fileに用意した.ogsfxファイルのパスを指定して読み込み。

sample.ogsfxを読み込んだ場合は、オブジェクトが真っ赤になれば成功

Discussion