Unityは,レンダリングの画質設定を設定することができます。一般的に言えば,画質はフレームレートを犠牲にしているのため,モバイル機器や古いハードウェアで最高画質をターゲットにすることはゲームプレイに悪影響を与えるため,正しいとはいえません。Quality Settings において と選択することで選択したデバイスの画質レベルを選択できます。2つのメインエリアに分けられていて,上部には次のマトリクスがあります:
Unityには,簡単に参照できるように,画質オプションの組み合わせに名前をつけることができます。マトリクスの行により,各画質水準をどのプラットフォームに割り当てるかを選択することができます。マトリクスの下の Default と書かれた行は画質設定そのものはではありませんが,各プラットフォームで使用されるデフォルトの画質設定を設定します。(列に緑のチェックボックスは,現在,そのプラットフォームの選択レベルを表す)Unityは 6 つの画質設定が標準で設定されていますが,マトリクスの下にあるボタンを使用してカスタムのレベルを追加することができます。不要な画質設定を削除するには,ゴミ箱アイコン(右端の列)を使用することができます。
画質設定の名前をクリックすることで編集することが出来ます。これは先ほどマトリクスの下部のパネルで設定します:
画質設定のために選ぶことができる画質オプションは次のとおりです:
プロパティ: | 特徴: |
---|---|
名前 | 画質設定を参照するときに使用する名称 |
Pixel Light Count | フォワードレンダリング使用時の最大ピクセルライト数 |
Texture Quality | テクスチャを最大解像度で表示するか,何分の一かで表示するか選択する(低い解像度は処理オーバーヘッドを減少させる)。選択肢は次のとおり Full Res(フル解像度), Half Res(1/2解像度), Quarter Res(1/4解像度), Eighth Res(1/8解像度) |
Anisotropic Textures | 異方性テクスチャの設定 |
Disabled | 異方性テクスチャは不使用 |
Per Texture | 異方性レンダリングを各テクスチャごとに有効化 |
Forced On | 異方性テクスチャを常に使用 |
AntiAliasing | アンチエイリアシングのレベル設定選択肢は 2x , 4x , 8x のマルチサンプリング |
Soft Particles | ソフトブレンドをパーティクルに使用するか |
Shadows | 使用されるべき影の種類 |
Hard and Soft Shadows | ハードとソフトの両方の影をレンダリング |
Hard Shadows Only | ハードの影のみレンダリング |
Disable Shadows | 影がレンダリングされません。 |
Shadow resolution | 影は異なる解像度でレンダリングすることができます: Low , Medium , High , Very High 解像度が高いほど,処理オーバーヘッドは大きくなります。 |
Shadow Projection | ディレクショナル ライトから影を投影する2つの異なる方法があります。 Close Fit は高解像度の影をレンダリングするが,カメラのわずかな動きで揺れることがあります。 Stable Fit は,低解像度の影をレンダリングするが,カメラの動きで揺れません。 |
Shadow Cascades | シャドウカスケードの数はゼロ,2または4に設定することができます。カスケードの数値が高いほど高品質が得られますが,処理オーバーヘッドを犠牲にします(詳細はディレクショナル シャドウのページを参照してください)。 |
Shadow Distance | カメラから影が見える距離範囲。この距離を越えて投影される影はレンダリングされません。 |
Blend Weights | アニメーションの際にひとつの頂点に影響を与えることができるボーンの数。使用可能なオプションは,1つ,2つ,または4つのボーンです。 |
VSync Count | レンダリング処理をディスプレイのリフレッシュレートと同期させることでティアリングによる画像乱れ(下記参照)を避けることができる。すべての垂直ブランク(VBlank)と同期をとるか,ひとつおきに垂直ブランクと同期をとるか,まったく同期しないとか,選択することができます。 |
LOD Bias | LODレベルはオブジェクトの画面上のサイズに基づいて選ばれます。サイズが2つのLODレベルの間にある場合,より詳細か,より詳細でないか,2つのモデルのいずれかの方に偏りをもたせることができます。値は0から1までの小数として設定出来ます。0に近いほど,より詳細でないモデルに偏ります。 |
Maximum LOD Level | ゲームで使用される最大のLOD。詳細については以下に記載されているメモを参照して下さい。 |
Particle Raycast Budget | パーティクルシステムの衝突のために使用するraycastsの最大数(Medium,Low品質)。パーティクル衝突モジュール を参照のこと。 |
これより高い LOD を持つモデルは,使用されずビルド対象から外れます(ストレージとメモリ容量を節約)。Unity はターゲットプラットフォームに対して,全ての Quality Setting の中からもっとも高い LOD を使用します。もしLOD Level 0 がいずれかの Quality Setting で使用されている場合,ビルドに含まれてランタイムにロードされます。例えば,もし LOD level が 含まれている場合,対応する LODGroup はビルドに含まれ,どの Quality Setting が使用されているかに関わらず,その LODGroup は必ず実行時にロードされる。もしMax LOD オプションを使用して いずれかの LOD を外すとその LOD のモデルは含まれません(シーンの別の箇所で使用されていないかぎり)。
ディスプレイ上の画像は連続して更新されるのではなく,Unityのフレーム更新のような定期的な間隔で発生します。しかし,Unityの更新は必ずしもディスプレイと同期していませんので,ディスプレイがまだ前のフレームをレンダリングしている最中にUnityが新しいフレームを発行してしまうことがありえます。この場合,フレームの変更が発生した画面の中ほどの位置に “ティアリング”と呼ばれる目に見える画像の乱れが発生します。
Unityの設定により,ディスプレイが更新していないタイミング,いわゆる「垂直ブランク」のタイミングのみにフレームを切替えさせることが出来ます。画質設定(Quality Settings)のVSyncオプションにより,フレームの切替えをディスプレイの垂直ブランク,あるいはひとつおきの垂直ブランクと同期をとることが出来ます。後者は,ゲームでのフレームのレンダリング処理に要する時間が複数回のディスプレイ更新分だけ時間を要する場合に役に立ちます。
アンチエイリアス処理により,ポリゴンの端の見た目が改善されるため,「ギザギザ」でなくなりますが,画面上では滑らかになります。 しかし,グラフィック カードのパフォーマンスが犠牲になり,使用されるビデオ メモリが増えます (CPU の負担は増えません)。 アンチエイリアス処理のレベルにより,ポリゴンの端がどのくらい滑らかになるか (消費されるビデオ メモリの量) が決定されます。
ソフトパーティクルは,シーン中の物体同士の交点付近をフェードアウト処理します。見た目は良くなりますが,計算処理の負荷は高くなり(複雑なピクセルシェーダ),かつデプステクスチャ をサポートしているプラットフォームでしか動作しません。さらにレンダリングパスとしてディファード ライティング を使用するか,あるいはカメラのレンダラをスクリプトからからデプステクスチャ とする必要があります。