Unityのシェーダーを実行時モバイル向けに変更して描画パフォーマンスを稼ぐ
今回もSample Assetsについて。
新 Standard Assets候補、Sample Assets (beta) - テラシュールブログ
シェーダーを差し替えるAutoMobileShaderSwitch
Sample Assetsにシェーダーを一括で変更する面白いUtilityがあります。
このAutoMobileShaderSwitchは、モバイルプラットフォームで起動した際、シェーダーを差し替えるアセットです。
(左・起動前、 右・起動後)
iOS/Androidのようなモバイル端末では高い解像度の割にGPUが貧弱なので、複雑なシェーダーを実行すると簡単に処理落ちが発生します*1。
そのため可能な限り複雑なシェーダーを避けMobileのような簡略化したシェーダーを使う事が、パフォーマンスを稼ぐ最も近道となります。
iOSでパフォーマンスに悪影響を与えるボトルネックを確認 - テラシュールブログ
AutoMobileShaderSwitchの使い方
AutoMobileShaderSwitchの使い方は非常に分かりやすいです。
「+」を押し左にリプレースする元のシェーダー、右に置換するシェーダーを指定します。不要な場合は「-」をクリックします。とても簡単。
と簡単なのは良いのですが、この設計だと「実行時に置換」処理を行います。しかも内部的にはシーン内のRendererを全て舐めて、マテリアルのシェーダーを差し替える処理を行います。これは割と勿体無いので、シェーダーをエディタ側で書き換える感じのエディタ拡張を作っても良いかもしれません。”とりあえず”シェーダーを一括で変えたい人向けで。