画面全体効果を適用することは単体でならばできたのですがそれが複数重なる場合どうすればいいのかわかりません。
例えば
画面を"何らかの方法で歪ませ"その次に"グレースケールをかけ"、最後に"それらを写すポーズ画面"
といった感じです。
それぞれを別オブジェクトにして好きなタイミング・効果数にしたいと考えております。
そして例のような描画順は必ず守りたいです。
全てDrawGUIイベントにて行っております。
ご教授の程よろしくお願いいたします。
画面全体効果を適用することは単体でならばできたのですがそれが複数重なる場合どうすればいいのかわかりません。
例えば
画面を"何らかの方法で歪ませ"その次に"グレースケールをかけ"、最後に"それらを写すポーズ画面"
といった感じです。
それぞれを別オブジェクトにして好きなタイミング・効果数にしたいと考えております。
そして例のような描画順は必ず守りたいです。
全てDrawGUIイベントにて行っております。
ご教授の程よろしくお願いいたします。
シェーダーを複数回かけるマルチパスのことですかね。
とりあえずサンプルプロジェクトを用意しましたので、参考にどうぞ。
こちらからダウンロード
バージョンは以下で作成してます。バージョンが古いともしかしたら動かないかもしれません。
IDE 2022.11.1.56
Runtime v2022.11.1.75
内容は次の3つのシェーダーを画面全体に重ね掛けするというものです。
・歪みシェーダー
・グレースケールシェーダー
・色収差シェーダー
1,2,3キーでシェーダーの効果をオン、オフできます。
大まかな流れは次のとおりです。
となっています。
サンプルを見てなにかわからないことがあれば聞いてください。
サンプルが一つのオブジェクトで複数の効果だったので求めてたものとはちょっと違いましたがご教授いただきありがとうございました!
考え方を知れたのでうまく実装することができました。
surface_copyとか使わないんですね・・・。
複数オブジェクトでの実装方法を書いておきます。
Createイベント
objSurface1(レイヤーが一番下)のStepイベント
objSurface3(レイヤーが一番上)のDrawGUIイベント
よかったです。
surface_copyのほうがシンプルだったかもしれませんね。