大量のオブジェクトを描写するのは長年Unityユーザーの願いでしたが、それを叶えてくれるアセットを発見しました!
その名もGurBu Technologiesによる「GPU Instancer」です!
![](https://i0.wp.com/yukiit.com/wp-content/uploads/cocoon-resources/blog-card-cache/86a73d5d7e2975df334981ddf86770db.png?resize=160%2C90&ssl=1)
このアセットは大量のゲームオブジェクトを、負荷を極限まで抑えながら描写することができ、また草のオクルージョンカリングやフラストムカリングなどテレイン関係の負荷も軽減してくれます。
また、PCだけかと思ったらAndroidやiOS、VRなど結構たくさんのプラットフォームに対応しているようです。素晴らしいヾ(・ω・`)
今回はこのアセットでどれくらい負荷を軽減してくれるのかを検証したいと思います。
*Unity標準のGPU Instancingとは異なります。
準備
同じ環境の上で、「GPU Instancerなし」と「GPU Instancerあり」を比較したいと思います。GPU Instancerにはデモが入っているのでこれを用います。
![](https://i0.wp.com/assetstorev1-prd-cdn.unity3d.com/package-screenshot/4112113e-f90c-4c22-9c21-7fb97e15e572_scaled.jpg?resize=540%2C304&ssl=1)
このデモでは5万個のゲームオブジェクトを動的に生成し、プレイヤーは宇宙船を操縦するというものです。
実験結果
GPU Instancer なし
まず、GPU Instancerに含まれるデモを改造します。GPU Instancerを外した状態(通常のゲームオブジェクト)で実行します。(PC固まるでしょこれ…)
結果↓
![](https://i0.wp.com/yukiit.com/wp-content/uploads/2021/07/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2021-07-30-230917.png?resize=986%2C510&ssl=1)
5FPS~15FPSあたり。落ちはしなかったけどゲームにはならない結果となりました。
GPU Instancer あり
![](https://i0.wp.com/yukiit.com/wp-content/uploads/2021/07/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2021-07-30-231025.png?resize=983%2C548&ssl=1)
やばっ!!
こんだけの動的ゲームオブジェクトがありながら300FPSを超えるってやばくない!?最初「せいぜい100FPSくらいだろうな」と思っていたところでこの数字。GPUの強さを改めて感じました。
追記
ちなみに、これらの隕石にはすべてRigidbodyがついていて、プレイヤーの機体がぶつかると物理的にちゃんと動きます。以下の動画を見てみてください。(この開発者さんのPC強すぎ)
まとめ
このアセットのおかげで作れるゲームの幅がものすごく広がったように感じました。また、このアセットの開発者さんは現在もこのアセットをアップデートしているので、今後にもかなり期待できます。
通常だと値段はすこし高いですが、たまにセールしてたりするので、チェックしてみてください(^▽^)/
![](https://i0.wp.com/yukiit.com/wp-content/uploads/cocoon-resources/blog-card-cache/86a73d5d7e2975df334981ddf86770db.png?resize=160%2C90&ssl=1)
コメント