モバイルGPUでのゲーム開発について
モバイルGPUでのゲーム開発について参考になりそうな記事のリンクを集めて、要旨をまとめた。
2019年に iOS と Android のテクスチャを扱うこと (2019-7)
iOSでATSCテクスチャを、AndroidでETC2テクスチャを使うことについての考察。
元記事リンク (英語):
記事の要旨:
- UnityのiOS用テクスチャは古いiOSで使えるPCRTCがデフォルトだがブロックノイズが目立つ。ATSCが品質面で大きく優れている。Android用テクスチャはETC1がデフォルトだが、ETC1はアルファが使えないためUnityのSplit Alpha機能を使ってアルファチャンネル用画像を別に作成する必要がある(もしくは無圧縮RGBAにするか)。品質とサイズの両面でETC2が大きく優れている。
- iOSではiPhone 6 (2014)以降でATSCが使える。ATSCを使おう。だがいずれにしても、解像度の違うiPad ProとiPhone SEで同じサイズのテクスチャを使うという問題はある。それを解決するためにオンデマンドやアプリ分割で端末ごとに違うテクスチャを配信したい場合は、Unity自体では対応できないだろうから、ポストビルドの段階での手作業になるだろう。
- Androidでは、GLES 3.0対応端末がETC2に対応している。Googleの統計ページによれば2019年5月の段階で78.9%がGLES 3.0に対応している。残りの21.1%はETC2をメモリ上に無圧縮展開して使うだろう。21.1%のうちどの程度がゲーマーだろう?それは分からないが、誰かがアプリのレビューで文句を言わない限り、私はETC2を使っていくと思う。(※端末ごとの配信やAABの話題は長くなるので割愛)
記事のコメント:
- それから1年後 (2020年5月)、GLES 3.0非対応端末は21.1%→14.5%に減った。(訳注: 2021-02のGoogleの統計では12.28%に減っています)
さまざまな端末での4096x4096テクスチャ対応 (2017-9)
4k(4096x4096)テクスチャを使うべきか、2k(2048x2048)テクスチャを使うべきかについての考察。
元記事リンク (英語):
記事の要旨:
- (私見だが)ほとんどの現代の端末は4096x4096テクスチャに対応している。よほど古い端末をサポートするのでなければ4kテクスチャを使って良い。
記事のコメント:
- 4kテクスチャは4倍のメモリを使うので、今でもハイエンド端末で2kテクスチャを選ぶケースはある。
- 2014年に、SteamのPCゲームで4kテクスチャが動かないユーザーがいて2kテクスチャに差し替えたケースがあった。
モバイルの最大テクスチャサイズ (2013-10)
Unityフォーラムの2013年当時のやり取り。モバイル向けゲームで4096x4096のテクスチャを使えるかどうか。
元記事リンク (英語):
回答:
- 2013-10 ベストアンサー: 対象のプラットフォームによるが、最大2048x2048の端末のサポートをもう少し続けていくことを勧める。メモリ容量の問題もある。
- 2017-8: 現在では状況は変わったのだろうか?様々な矛盾した回答を見てきた。Androidの99%が4096に対応しているという話も見たが、1年前の回答だったしどうも真実ではないと思う。GLES 3.0以上であれば 4096が使えると思って良さそうだが、2017-8現在のGoogleの統計ではまだAndroidの28%がGLES 2.0を使っている。(訳注: 2021-02のGoogleの統計では12.28%に減っています)
スマホ機種ごとのスペック詳細リスト
ものすごく詳しい。かなりの数の機種の SoC, RAM, CPU, GPU, 解像度, OpenGLESバージョンなどが一覧できる。
元記事リンク (日本語):
フォートナイトとスマホGPU (2019-8)
フォートナイトにおけるGPU対応と端末シェアについての考察。