シェーダを使った描画処理の開始を宣言し、描画処理を行ったら終了を宣言、レンダーターゲットを元へ戻します。
描画するタイミングは用途に応じて Draw もしくは DrawGUI イベントを利用。
shader_set 関数
shader_set 関数の第一引数へ、リソースツリーに登録されたシェーダの識別子を使った代入を行なってください。
shader_set(ShaderName);
以下サンプルは自動変数を使ってリソースを指定するコード
var a = Pass_Through;//文字列では無い点に注意 shader_set(a);
参考:shader_set
シェーダを使ったレンダーへ切り替えた後、draw 系命令を使って描画処理を記述します。
以下サンプルコード
var a,b; a = Pass_Through; b = "Shader Draw TEST"; shader_set(a);//Begin draw_text(0,0,b);//文字列を描画 draw_self();//インスタンスの外観(sprite)を描画 shader_reset();//End
shader_reset 関数
shader_reset 関数はシェーダを使った描画を終了する宣言です。引数は不要。一つのシェーダに対して「開始と終了宣言が対と成るよう」利用してください。※
※ 複数のシェーダ効果を適用したい場合に、shader_set 関数を二重化するような記述は不正
以下は不正なコード例
var a,b; a = SH_Gaussian_Hori; b = SH_Gaussian_Vert; shader_set(a); draw_self(); shader_set(b); draw_self(); shader_reset(); shader_reset();
正しい記述例
var a,b; a = SH_Gaussian_Hori; b = SH_Gaussian_Vert; /* SH_Gaussian_Hori */ shader_set(a); draw_self(); shader_reset(); /* SH_Gaussian_Vert */ shader_set(b); draw_self(); shader_reset(); /* ガウスぼかしはループ処理回数を減らすため一般的にシェーダを縦と横、二つに分けて適用します */
[divpage]