ゲーム制作日誌006 GPU Instancerで最適化。草木だらけのフィールドを快適に動かしたい!

今回作っているエロゲーは寂れた田舎が舞台ということで、錆びたトタン、そして草と木だらけの道、という感じのロケーションになっています。

そもそもそれが間違いっちゃ間違いなんですが、草と木だらけだと重いんですよね。でもそこは外せないんで、たまたまセットで買ったアセットの中に入っていたGPU Instancerで軽量化を試みます。

早速GPU Instancerを適用!あれ?重いぞ!?

GPU Instancerを現状の状態にそのまま適用したところ逆に重くなってしまう事態に。様々なPCでの動作を考え、GPU性能が悪いノートPCで作っているのも悪いのですが、原因を確認していったところ色々な原因がみつかりました。

草の生え方がリッチになっている

どうやらGPU Instancerでは現状を最適化するのではなく、よりビジュアルを向上してくれるようです。草の生え方が全然違います。

上の画像がGPU Instancer適用前です。

そして適用後。なんだかリアルになっていますね。

ビジュアルが向上した分重たくなっていますが、ビジュアルが向上した分草を減らしても影響も少なくなっています。なので、軽くするには草を減らす必要があります。

草の生え方がよく見えるのは何故?

GPU Instancerには近くの草をリアルに見せるためCross Quadsという機能がついています。通常の草は一枚の板ですが、Cross Quadsは近くの草が指定した枚数の板になります。

上からみるとこのようになるので、より密集した草に見えるわけです。

木のLODが機能せず重たい

木のLODが設定しても使えないと思っていたんですが、どうやらこれはGPU Instancer側で設定を変えないと機能しないようです。

LOD Bias Adjustment数値を0~1に変更して良いポイントをを探さないといけません。デフォルト1ですが、私の環境だと重すぎました。また、マニュアルには0以上の数値を入れろと書いておらずそこも迷いました。おそらく、0%~100%ということなんでしょう。

オリジナルシェーダーは使えないかも

一部にオリジナルのシェーダーを使っていましたが、GPU Instancerでうまく機能しませんでした。機能しているシェーダーもありましたので、どのようなことが必要なのか私にはよくわかりませんが、オリジナルシェーダー多用されている方はうまく機能しない可能性があります。

結果……fps向上は微妙でも見た目はリッチに

fps向上は私の環境では微妙でした。しかし、見た目はリッチに。また、使用されている頂点数も少なく最適化はされています。