ムラサメ研究ブログ

主にゲームやプログラミングのログ

ScriptableRenderLoop概要

今までは情報がある程度まとまってから書いてたけど 試しに気にせずに毎日でも書くことにしたよ すぐ飽きるけど

ScriptableRenderLoopとは

UNITY2017から入る機能の1つで、現在はベータ版でお試しが可能 今までブラックボックスだった UNITYのレンダリングパイプラインをスクリプトでカスタマイズできる機能 具体的に何ができるかといわれると 難しいけど、G-Bufferとかライト計算とかいろいろと自由にできる

今までのRenderingPipeline

今までは レンダリングモードが Forwardの時は ForwardBase、Deferredは Deferred が実行されていた Unity - マニュアル: Unity のレンダリングパイプライン マルチパスは シェーダーにて 複数パスを書いて 暗黙的に実行させる ライトモードにより、実行するシェーダーパスは固定であり レンダリングパイプラインは変更する事が不可能

グラフィックスコマンドバッファ

Unity - マニュアル: グラフィックスコマンドバッファ

拡張され、指定されたタイミングで任意のGPU命令を実行させることが可能になった 上記の図の緑色の地点に コールバック関数を差し込むことが出来る 例えば ポストプロセスを行う時によく使われる

ただし、レンダリングパイプライン自体は変更する事が出来ない

ScriptableRenderLoop

まず シェーダーのパスを任意に実行可能。マテリアル事、ライト毎にパスを変える事も可能 また レンダリングパイプライン自体も自由に書くことが出来る そのため G-Bufferも自由に設計可能だし、ライトの計算なども自分で行う必要がある カリングやオブジェクトのソート等の一部の機能は 変更する事は出来ない