Lit シェーダー
Lit シェーダーを使用すると、石、木、ガラス、プラスチック、金属など、現実世界に存在する物の表面をフォトリアリスティックな品質でレンダリングできます。光量や反射は実物のように見え、明るい日差しや暗い洞窟など、さまざまなライティング条件に対して適切に反応します。このシェーダーは、Universal Render Pipeline (ユニバーサルレンダーパイプライン、URP) で最も演算負荷が高い シェーディングモデル を使用します。
エディターでの Lit シェーダーの使用
このシェーダーを選択して使用するには:
- プロジェクト内でシェーダーを使用するマテリアルを作成または特定します。Material を選択します。マテリアルの Inspector ウィンドウが開きます。
- Shader をクリックし、Universal Render Pipeline > Lit の順に選択します。
UI の概要
このシェーダーの Inspector ウィンドウには次の要素が含まれています。
Surface Options
Surface Options では、URP が画面上でマテリアルをレンダリングする方法を管理できます。
プロパティ | 説明 |
---|---|
Workflow Mode | このドロップダウンメニューを使用して、テクスチャに合うワークフロー (Metallic または Specular) を選択します。 選択すると、選択したワークフローに従って Inspector 内の主なテクスチャオプションが設定されます。Metallic ワークフローまたは Specular ワークフローについて詳しくは、こちらの Unity のスタンダードビルトインシェーダーのマニュアルページ を参照してください。 |
Surface Type | このドロップダウンを使用して、マテリアルに Opaque または Transparent サーフェスタイプを適用します。これにより URP がマテリアルをレンダリングするレンダーパスが決定されます。Opaque サーフェスタイプは、背景に何があっても常に全体が表示されます。URP は不透明なマテリアルを最初にレンダリングします。Transparent サーフェスタイプは背景の影響を受け、選択した透明なサーフェスタイプの種類に応じて異なる場合があります。URP は不透明なオブジェクトの後に、透明なマテリアルを個別のパスでレンダリングします。Transparent を選択すると、Blending Mode のドロップダウンが表示されます。 |
Blending Mode | このドロップダウンを使用して、URP が透明なマテリアルを背景のピクセルとブレンドする際にそのマテリアルの各ピクセルの色を計算する方法を決定します。 Alpha を選択した場合は、マテリアルのアルファ値を使用してオブジェクトの透明度を変更します。0 は完全に透明になります。1 は完全に不透明になりますが、マテリアルは透明なレンダーパス中は引き続きレンダリングされます。これは、雲のように完全に表示されつつも時間とともにフェードするビジュアルに便利です。 Premultiply を選択すると、マテリアルに Alpha と似たようなエフェクトが適用されますが、サーフェスが透明な場合もリフレクションやハイライトが維持されます。これは反射した光のみが表示されることを意味します。例えば、透明なガラスを想像してください。 Additive を選択すると、マテリアルの別のサーフェスの上に追加のレイヤーが重ねられます。これはホログラムに適しています。 Multiply を選択すると、マテリアルの色とサーフェスの背後の色が乗算されます。これには画像を暗くする効果があり、色付きのガラスを通したように見えます。 |
Render Face | このドロップダウンを使用して、ジオメトリのどちらの側面をレンダリングするかを決定します。 Front Face を選択すると、ジオメトリの正面がレンダリングされ、背面が カリング されます。これがデフォルトの設定です。 Back Face を選択すると、ジオメトリの背面がレンダリングされ、正面がカリングされます。 Both を選択すると、ジオメトリの両面がレンダリングされます。これは葉っぱなど、両方の面が表示される、小さくてフラットなオブジェクトに適しています。 |
Alpha Clipping | マテリアルを カットアウト シェーダーのように動作させます。この機能を使用して、不透明な領域と透明な領域をはっきり分ける透明効果を作成できます。例えば、一面に草を生やすために使用できます。このエフェクトを完成させるため、URP は指定された Threshold (Alpha Clipping を有効にした場合に表示される) 未満のアルファ値をレンダリングしません。Threshold はスライダーを 0 - 1 の間で動かすことで設定できます。しきい値を超えるすべての値は完全に不透明になり、しきい値未満のすべての値は透明になります。例えば、しきい値が 0.1 の場合は、URP が 0.1 未満のアルファ値をレンダリングしないことを意味します。初期値は 0.5 です。 |
Receive Shadows | このチェックボックスをオンにすると、他のオブジェクトによってゲームオブジェクトにシャドウが投影されます。このチェックボックスをオフにすると、ゲームオブジェクトにシャドウが投影されなくなります。 |
Surface Inputs
Surface Inputs は、サーフェスそのものの設定です。例えば、これらのプロパティを使用して、濡れた面、乾いた面、粗い面、滑らかな面を表現できます。
ノート: これらのオプションは、Unity のビルトインレンダーパイプラインの スタンダードシェーダー でおなじみの マテリアルエディター 内のメインマップ設定に似ています。
プロパティ | 説明 |
---|---|
Base Map | サーフェスに色を追加します。ディフューズマップとも呼ばれます。Base Map 設定にテクスチャを指定するには、横にあるオブジェクトピッカーをクリックします。これによりアセットブラウザーが開き、そこでプロジェクトのテクスチャから選択できます。または、カラーピッカー を使用できます。設定の横にある色は、指定したテクスチャ上の色合いを示しています。別の色合いを指定するには、このカラースウォッチをクリックします。Surface Options で Transparent または Alpha Clipping を選択すると、マテリアルでテクスチャのアルファチャンネルまたは色が使用されます。 |
Metallic / Specular Map | Surface Options で選択した Workflow Mode のマップ入力を表示します。 Metallic Map ワークフローでは、上記で指定された Base Map から色を取得します。スライダーを使用して、サーフェスのメタリック度を制御します。1 では銀や銅のように完全にメタリックとなり、0 ではプラスチックや木のように完全に誘電体となります。汚れた金属や腐食した金属には、一般的に 0 と 1 の間の値を使用します。 Specular Map 設定では、横にあるオブジェクトピッカーをクリックしてテクスチャを指定できます。これによりアセットブラウザーが開き、そこでプロジェクトのテクスチャから選択できます。または カラーピッカー を使用できます。 どちらのワークフローについても Smoothness スライダーを使用してサーフェス上のハイライトの広がりを制御できます。0 の場合は、広範囲で粗いハイライトになります。1 の場合は、ガラスのように小さく鋭いハイライトになります。その間の値の場合は、やや光沢のある質感になります。例えば 0.5 の場合はプラスチックのような光沢になります。 Source ドロップダウンメニューを使用して、シェーダーがスムースネスのマップのサンプリングソースを選択します。オプションは、Metallic Alpha (メタリックマップからのアルファチャンネル) と Albedo Alpha (ベースマップからのアルファチャンネル) です。初期値は Metallic Alpha です。 選択したソースにアルファチャンネルがある場合は、シェーダーはチャンネルをサンプリングして、各サンプルを Smoothness の値で乗算します。 |
Normal Map | サーフェスに法線マップを追加します。法線マップ を使用すると、凹凸、傷、溝などのサーフェスのディテールを追加できます。マップを追加するには、横にあるオブジェクトピッカーをクリックします。法線マップは環境内のアンビエントライトを検出します。 設定の横にある Float 値は、Normal Map の効果の乗数です。値が小さいと、法線マップの効果が弱くなります。値が大きいと、効果が強くなります。 |
Height Map | URP には、表示されているサーフェステクスチャの領域を移行することで、ハイトマップ を使用してサーフェスレベルのオクルージョン効果を実現する視差マッピング手法が実装されています。マップを追加するには、横にあるオブジェクトピッカーをクリックします。 設定の横にある Float 値は、Height Map の効果の乗数です。値が小さいと、ハイトマップの効果が弱くなります。値が大きいと、効果が強くなります。 |
Occlusion Map | オクルージョンマップ を選択します。これにより、アンビエントライトやリフレクションからのシャドウをシミュレートすることで、オブジェクトの角や隙間に届く光が少なくなるため、ライティングをよりリアルに見せることができます。オクルージョンマップを選択するには、横にあるオブジェクトピッカーをクリックします。 |
Emission | 表面が発光しているように見せます。有効にすると、Emission Map と Emission Color の設定が表示されます。 Emission Map を指定するには、横にあるオブジェクトの画像をクリックします。これによりアセットブラウザーが開き、そこでプロジェクト内のテクスチャから選択できます。 Emission Color の場合は、カラーピッカー を使用して色に重ねる色合いを指定できます。これは 100% の白を超えることができ、他の色でありながら白よりもまぶしく光る溶岩などの効果において便利です。 Emission Map を指定していない場合は、Emission 設定では Emission Color で指定した色合いのみが使用されます。 Emission を有効にしない場合は、URP は放出を黒に設定し、放出を計算しません。 |
Tiling | U 軸および V 軸に従ってテクスチャがメッシュ全体に収まるように拡大縮小する 2D 乗数の値です。これは床や壁などのサーフェスに適しています。初期値の 1 は、スケーリングなしを意味します。メッシュ全体でテクスチャを繰り返すには、大きい値を設定します。テクスチャを伸縮するには、小さい値を設定します。目的の効果が得られるまで、さまざまな値を試してください。 |
Offset | メッシュ上にテクスチャを配置する 2D オフセットです。メッシュ上の位置を調整するには、テクスチャを U 軸または V 軸に沿って動かします。 |
Detail Inputs
Detail Inputs 設定は、サーフェスにさらにディテールを追加する場合に使用します。
要件: シェーダーモデル 2.5 以降に対応する GPU。
プロパティ | 説明 |
---|---|
Mask | サーフェス入力マップの上にディテールマップをオーバーレイする領域を定義するテクスチャを選択します。マスクでは選択したテクスチャのアルファチャンネルが使用されます。Tiling 設定と Offset 設定は、マスクに影響を与えません。 |
Base Map | サーフェスのディテールを含むテクスチャを選択します。Unity ではオーバーレイモードを使用して、このマップとサーフェスのベースマップをブレンドします。 |
Normal Map | 法線ベクトルのデータを含むテクスチャを選択します。法線マップ を使用して、凹凸、傷、溝などのサーフェスのディテールを追加します。 設定の横にあるスライダーを使用して、マップの効果の強度を変更します。初期値は 1 です。 |
Tiling | この設定を使用して、メッシュ上の Base Map および Normal Map を U 軸と V 軸に沿って拡大縮小し、マップが最適な状態でメッシュに収まるようにします。初期値は 1 です。メッシュ全体でマップを繰り返すには、1 よりも大きい値を選択します。マップを伸縮するには、1 よりも小さい値を設定します。 |
Offset | このオフセットにより、メッシュ上の Base Map および Normal Map を U 軸と V 軸に沿って移動します。 |
Advanced
Advanced 設定はレンダリングの基になる計算に影響します。サーフェス上に目に見える効果は及ぼしません。
プロパティ | 説明 |
---|---|
Specular Highlights | これを有効にすると、ディレクショナルライト、ポイントライト、スポットライト などの直接光のスペキュラーハイライトをマテリアルに適用できます。つまりマテリアルがこれらの光源からの光を反射するようになります。これを無効にすると、ハイライトの計算が行われなくなり、シェーダーのレンダリングが速くなります。この機能はデフォルトで有効になっています。 |
Environment Reflections | 最も近い リフレクションプローブ (Lighting ウィンドウで設定した場合は ライトプローブ) を使用して反射をサンプリングします。これを無効にすると、シェーダーの計算が減りますが、サーフェスには何も反射されなくなります。 |
Enable GPU Instancing | 可能な場合は、URP で同じジオメトリとマテリアルを使用するメッシュを一括してレンダリングします。これによりレンダリングが高速になります。URP は、異なるマテリアルがある場合や、ハードウェアが GPU インスタンシングに対応していない場合は、メッシュを一括してレンダリングすることはできません。 |
Sorting Priority | このスライダーを使用して、マテリアルの時間的なレンダリング順序を決定します。URP は、値が小さいマテリアルを先にレンダリングします。これを使用すると、パイプラインが他のマテリアルの前にあるマテリアルを先にレンダリングするため、重なってる部分を 2 回レンダリングしなくて済み、デバイスのオーバードローを減らすことができます。これは Unity のビルトインレンダーパイプライン内の レンダーキュー と同じように動作します。 |
Channel packing
このシェーダーは チャンネルパッキング を使用するため、メタリック、スムースネス、オクルージョンのプロパティに単一の RGBA テクスチャを使用できます。テクスチャパッキングを使用すると、3 つの個別のテクスチャではなく、1 つのテクスチャをメモリに読み込むだけで済みます。Substance や Photoshop などのプログラムでテクスチャマップを記述するときは、マップを次のようにパックできます。
チャンネル | プロパティ |
---|---|
Red | Metallic |
Green | Occlusion |
Blue | None |
アルファ | Smoothness |