メモ帳

備忘録

シェーダーでプロパティの値を呼び出す

ステンシルバッファに書き込む値をスクリプトで制御したくて、やり方が分からずしばらく悩んでたんですが、方法が分かった。

シェーダーの後のほうで、プロパティーの値は括弧 [] でプロパティーネームを記述して参照します: [name] square brackets: [name]. For example, you could make blending mode be driven by a material property by declaring two integer properties (say “SrcBlend“ and ”DstBlend”), and later on make Blend Command use them: Blend [_SrcBlend] [_DstBlend].

Later on in the shader’s fixed function parts, property values can be accessed using property name in square brackets: [name]. For example, you could make blending mode be driven by a material property by declaring two integer properties (say “SrcBlend“ and ”DstBlend”), and later on make Blend Command use them: Blend [_SrcBlend] [_DstBlend].

http://docs.unity3d.com/ja/current/Manual/SL-Properties.html

Propertiesブロック内で_Stencilのような名前の値を定義しておいて、あとでStencilブロック内でRef [_Stencil]などとすればよいらしい。