Version: 2017.1
ライトのトラブルシューティングとパフォーマンス
リニアレンダリング概要

関連トピック

Unity のライティングシステムは他の多くのエフェクトやシステムから影響を受けたり、与えたりします。

Quality settings (画質設定)

Quality settings ウィンドウにはライティングとシャドウに影響する多くの設定があります。

Player settings (プレイヤー設定)

Unity Player settings ウィンドウによってレンダリングパスと色空間を選択できます。

Camera インスペクター

Camera によって、各カメラのレンダリングパスに Unity の Player 設定をオーバーライドできます。HDR もアクティベートすることができます。

レンダリングパス

Unity にはレンダリングの方法、「レンダリングパス」がいくつかあります。プロジェクトを開始する際に、どのパスを使うか早めに決定しておく必要があります。Unity のデフォルトは「フォワードレンダリング」です。

フォワードレンダリングでは、すべてのオブジェクトが影響するライトごとに「パス」でレンダリングされます。そのため、どのオブジェクトも影響範囲内にあるライトの数にしたがって、複数回レンダリングされます。

この方法の利点は、とても速いこと - つまりハードウェア要求が低いことです。加えて、フォワードレンダリングでは「シェーディングモデル」をカスタマイズできる幅が広く、また半透明を素早く制御することができます。イメージ品質に多大な影響を与えるディファードレンダリングなどの他の方法では使うことの出来ない「マルチサンプリングアンチエイリアシング(MSAA)」のようなハードウェアテクニックを使うことも可能です。

しかしながら、フォワードパスの重要な問題点は、ライトごとにレンダリングコストが必要になるという点です。オブジェクトに影響するライトの数が増えるほど、レンダリング性能が落ちます。そのためたくさんのライトを使うタイプのゲームでは、非常にコストがかかります。ですが、ゲーム内のライト数は簡単に管理できるので、実際のところ、フォワードレンダリングは高速な方法となるのです。

一方「デファードレンダリング」では、サーフェイスごとの座標と法線、そしてマテリアルが、一連の画面座標系テクスチャとして「ジオメトリバッファ」に出力されるまで、光源情報のブレンドとシェーディングを遅延させます。その後、それらの結果をライティングのパスとともに合成します。この方法には、ライティングの描画コストが、ライト自体の数ではなく、照らすピクセル数に比例する、という原理的な利点があります。このため、画面上に描画するライトの数を気にする必要がなくなります。これは、ゲームによっては重要な利点となります。

デファードレンダリングはかなり予測可能なパフォーマンス機能ですが、一般的に処理能力の高いハードウェアを必要とします。また、一部のモバイルハードウェアではサポートされません。

デファード、フォワード、他の使用可能なレンダリングパスに関する情報は、レンダリングパス を参照してください。

ハイダイナミックレンジ

ハイダイナミックレンジによるレンダリングでは、今まで利用してきた方法に比べて、より幅広い色域をシミュレートすることが可能になります。一般的には、まず画面上に表示する露出域を選択する必要があります。これによって、例えばシーンの屋外部分と、影になっている領域の、極端な明度差をシミュレートすることが可能になります。また、シーンの明るい部分に「ブルーム」やグローのようなエフェクトを生成することも可能です。このような特殊効果により、パーティクルやその他の光源を、よりリアルに見せることができます。

HDR に関する詳しい情報は、Unity で HDR レンダリング を参照してください。

トーンマッピング

トーンマッピングは HDR から画面上にどのように色をマップするかを指示するために必要な ポストプロセシングエフェクト です。さまざまなメソッドが含まれ、自分で作成することもできます。

詳しくは トーンマッピング を参照してください。

リフレクション

明白にライティングエフェクトとは言えませんが、輝く金属やガラスなど光を反射するマテリアルをリアルに表示するために、リフレクションは重要な役割を果たします。Unity の Standard シェーダーを含め、現段階で一般的に使用されている多くのシェーディング技術では、リフレクションをマテリアルのプロパティーに統合しています。

詳細は、リフレクションプローブ を参照してください。

リニアカラースペース

レンダリングパスを決めるのと同様に、プロジェクトでライティングを行う前に「カラースペース」を決めることも重要です。カラースペースによって、光源計算の色や、読み込んだテクスチャの値を合成する際にUnityが使う計算方法を確定します。リニアカラースペースは、ゲームのリアリティを上げるのに劇的な効果がありますが、多くの場合、どちらのカラースペースを使うかは、ターゲットとするハードウェアによって選択してください。

リアルなレンダリングに向いているカラースペースはリニアです。

リニア空間を使用する大きな利点は、ライトの強度が増加するにつれシーン内のシェーダーに提供される色が一直線状に明るくなることです。もう一方の「ガンマ」カラースペースでは、明度が上がるにつれすぐに白く変化します。これは、画像の品質に悪影響があります。

詳しい情報は、 リニアレンダリング を参照してください。

ライトのトラブルシューティングとパフォーマンス
リニアレンダリング概要