シャドウ サイズの計算
サンプル - ビルボード平面の作成

統合グラフィック カードの最適化

ポリゴン数は重要

ほとんどのグラフィック カードでは現在,ポリゴン数は重要ではありません。 共通の知識は,オブジェクト数やフィルレートがはるかに重要だということです。 残念ながら,ほとんどの古い統合チップ (Intel 945 / GMA 950 その他) では,そうではありません。 重要さは,頂点シェーダの複雑さまたはライティングおよび CPU の速度によります (その通りです。ほとんどの統合カードは,CPU で頂点を変形および照らします)。

Big Bang Brain Games は,1,2の頂点ごとのライトを使用して,ピクセル ライトを使用せず (基本的に,VertexLit rendering path),シーン内で 25000 の三角形を超えることはありませんでした。 Quality Settings は,フレームレートのドロップ時に,自動的にパフォーマンスを加速化するのに使用されていました。 そのため,よりハイエンドなマシンの場合,ピクセル ライトが有効になっていたより高い質設定が使用されていました。

複雑な頂点シェーダと多くのポリゴンを使用して,オブジェクトを複数回使用すると,速度が下がります。 つまり,

  • 可能な場合,VertexLit rendering path を使用します。 これにより,シーン内のライトの数に関係なく,各オブジェクトが 1 回だけ描画されます。
  • 頂点ライトも含め,ライトを一切使わないでみてください。 ライトは,ジオメトリの移動またはライトの移動を検知します。 そうでない場合, Lightmapper を使用して,照明をベークすると,高速になり,見た目もはるかに良くなります。
  • ジオメトリを最適化します (下記参照)。
  • Rendering Statistics ウィンドウおよび Profiler を使用します!

モデル ジオメトリの最適化

モデルのジオメトリの最適化に関して,次の 2 つの基本ルールがあります。

  • 不要な場合は,過剰な数の面は使用しないでください。
  • UV マッピング 継ぎ目とハード エッジの数をできるだけ抑えます。

グラフィック ハードウェアが処理する必要のある頂点の実際の数は通常,3D アプリケーションに表示されるものと同じではありません。 モデリング アプリケーションは通常,ジオメトリック頂点数,つまりモデルを構成する点の数を表示します。

しかし,グラフィック カードの場合,いくつかの頂点を個々の頂点に分割する必要があります。 頂点に複数の法線がある場合 (_ハード エッジ_で) または複数の UV 座標がある場合,または,複数の頂点色がある場合,分割する必要があります。 そのため,Unity で見える頂点数はほとんどの場合,3D アプリケーションに表示されるものとは異なります。

ライティングのベーク

ライトマップまたは頂点色のいずれかにライティングをベークします。 Unity には,組み込みの Lightmapping View があり,多くの 3D モデリング パッケージでライトマップをベークできます。

ライトマップ化環境の生成処理は,Unity のシーンで単にライトを配置するよりも若干時間がかかります ,

  • ライトが多くある場合は特に,通常非常に速く実行されます。
  • グローバル照明をベークできるため,見た目もはるかに良くなります。

次世代のゲームでも,ライトマッピングに大きく依存しています。 通常,ライトマップされた環境を使用し,リアルタイムの動的ライトは,1 つまたは 2 つしか使用しません。

シャドウ サイズの計算
サンプル - ビルボード平面の作成