🐙
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