参考書籍
この記事を書くに当たって、Unityゲーム プログラミング・バイブル内の内容及びサンプルを使用しています。
No.05の内容を実際に動かしながらさらに深掘った内容なので、本書を読みながら読むのが良いと思います。
より詳細な内容が詰まっていて、サンプルプログラムを実際に動かしながら学べるためおすすめです。
Unityゲーム プログラミング・バイブル
描画処理を最適化の必要性
多数のオブジェクトを配置する場合、描画コストが膨大になってしまう。
必要最小限の描画を行うことで処理コストの最適化を計る必要がある。
カメラリングによる描画範囲の絞り込み
カメラコンポーネント内のClipping Planesの
- Near:描画開始位置
- Far:描画終了位置
を指定すると、描画範囲を指定出来る。
この範囲が狭ければ狭いほど描画コストは下がるが、ユーザーから見て違和感が無いように調整する必要がある。
全範囲表示する場合
- Near:0
- Far:40
Nearを遠くしてみる
- Near:2
- Far:40
Farを近くしてみる
- Near:0.01
- Far:1
Farをもう少し遠くしてみる
- Near:0.01
- Far:3
描画範囲外の見え方を調整する
clear flagsの変更
clear flagsは、何のオブジェクトも描画していない範囲の描画をどのように更新するかの設定
skybox
solid color
指定した色での塗り潰しになる。 凝った演出がない場合は、単色塗り潰し+フォッグでそれらしい見た目に出来る。Depth Only
複数台カメラがある場合の処理。
公式より。
例えばプレイヤーの銃を背景で隠れないように描画したい場合は、 1 台のカメラの Depth を 0 に設定して背景を描画し、もう 1 台のカメラの Depth は 1 に設定して武器のみを描画させます。武器を表示するカメラの Clear Flags は、Depth only に設定する必要があります。これにより、画面上の背景空間の表示は維持されますが、各オブジェクトが 3D 空間内でどこに存在するか、という情報はすべて破棄されます。銃が描画されるとき、銃がいくら壁に近くても、銃の不透明な部分が一番上に描画されます。
Don't clear
背景の描画の更新を行わない。
更新を行わないので、予期せぬ表示になるため使うことは無さそう。
フォグでそれらしい見た目になるように調整する
clear flagsをsolid colorにした上で、フォグを設定しそれらしい見た目になるようにする。
フォグの設定方法
Windows > Lightning > Settings > Ohter Settings で設定できる。 ### Color フォグの色 ### Mode フォグのモードは3つある。 https://docs.unity3d.com/ja/2018.1/Manual/GlobalIllumination.html #### Linear フォグの密度が距離に応じて直線的に増加する。 ##### パラメータ - Start:フォグの開始位置 - End:フォグの終了位置。この位置でフォグの密度が最大になる。 **Clipping PlanesのEndとフォグのEndを一致させる**のが良い。 表示終了位置でフォグの密度が最大になるので見え方が自然になる。Startが0の場合
- Clipping PlanesのEnd:2
- Start:0
- End:2
Startが1.5の場合
- Clipping PlanesのEnd:2
- Start:1.5
- End:2
Endから近い場所からフォグがスタートするので、手前は明るく、Clipping PlanesのEndに近い場所にフォグがかかるようになっている。
Exponential
フォグの密度が距離に応じて指数関数的に増加する。
#####パラメータ
- Density:フォグの密度。0-1で設定し、1になるほど最大のフォグが濃くなる。
Ensityが0.8の場合
奥に行くほどフォグがより濃くなっていることが分かる。Exponential Squared
Exponential同様に、フォグの密度が距離に応じて指数関数的に増加する。
Squared(二乗)されるので、距離に応じてより濃くなる。