今回は本当に反省というか解決しないといけないネタです。
同人で作るゲームではできるだけ新しいことにチャレンジするようにしていますが、闇雲にチャレンジすれば当然失敗します。
例えば今回はやたらとEmissionするオブジェクトが多いのでDeferred Renderingに挑戦したんですが、Deferredにするとキャラの描画に問題が。なお普段Deferred Rendering使っていないためノウハウゼロです。
Deferred時は背景の有無で描画結果が変わってしまいます。
(そもそもこれがUnityちゃんシェーダーのマテリアル設定の問題なのかDeferred Renderingの問題なのかもわかっていなかったり…)
もちろんDeferredで描画した方がバッチ数はかなり削減されます。G-Buffer生成や合成負荷は発生しますが、Deferredの方Forwardより+18FPSぐらいになります。
↓はタイトル画面(ほぼゲーム中画面と等価です)のバッチ数になります。
まぁこういう症状はFrame Debuggerで追えばわかるような気がしますが、時間がなければ問題が出ない方を選択するしかないので公開しているゲームはForward Renderingです。そのため描画はそれなりに重いです。
またCPU処理も負荷が高いことをやっているので重いです。CPU処理についてはまた別の機会に書きます。
なおこの描画問題は今も未解決です。解決次第改めて投稿する予定です。