Fabric
Fabric Master Stack (ファブリックマスタースタック) を使うと、HD レンダーパイプライン (High Definition Render Pipeline、HDRP) で様々な種類のファブリックをレンダリングすることができます。コットンウールまたは異方性シルクをベースとして使い、サブサーフェススキャタリング など、その他の異なるエフェクトをサポートし、見た目がリアルなファブリックを作成します。
Fabric Shader Graph の作成
Shader Graph で Fabric マテリアルを作成するには、以下のいずれかの方法を使うことができます。
既存の Shader Graph を変更します。
- Shader Editor で Shader Graph を開きます。
- Graph Settings で HDRP ターゲットを選択します。見つからない場合は、Active Targets へ移動して Plus ボタンをクリックし、HDRP を選択します。
- Material ドロップダウンで Fabric を選択します。
新しい Shader Graph を作成します。
- Assets > Create > Shader Graph > HDRP へ移動し、Fabric Shader Graph をクリックします。
コンテキスト
この Mater Stack マテリアルタイプには、独自の Graph Settings があります。設定とブロックの関係性により、どのブロックが Graph に関連するかに影響を与えます。このセクションには、この Master Stack マテリアルタイプがデフォルトで追加するブロックに関する情報と、どのブロックがこの Master Stack マテリアルタイプの Graph Settings に対するプロパティーを設定するかに関する情報が含まれています。
Graph Settings とブロックの関係性に関する詳細は、 コンテキストとブロック を参照してください。
Vertex コンテキスト
デフォルト
新しく Fabric Master Stack を作成する際、Vertex コンテキストにはデフォルトで次のブロックが含まれます。
プロパティー | 説明 | 依存関係の設定 | デフォルト値 |
---|---|---|---|
Position | 頂点ごとの、オブジェクト空間頂点の位置です。 | None | CoordinateSpace.Object |
Normal | 頂点ごとの、オブジェクト空間頂点法線です。 | None | CoordinateSpace.Object |
Tangent | 頂点ごとの、オブジェクト空間頂点の接線です。 | None | CoordinateSpace.Object |
関連性
この Master Stack マテリアルタイプは、デフォルトですべての頂点ブロックを頂点コンテキストに追加し、その他の関連するブロックを持ちません。
Fragment コンテキスト
デフォルト
新しく Fabric Master Stack を作成する際、Fragment Context にはデフォルトで次の Blocks が含まれます。
プロパティー | 説明 | 設定依存 | デフォルト値 |
---|---|---|---|
Base Color | マテリアルのベースカラーです。 | None | Color.grey |
Normal Tangent Space | 接線空間におけるマテリアルの法線です。 | • Fragment Normal Space は Tangent に設定 | CoordinateSpace.Tangent |
Bent Normal | フラグメントのベント法線です。HDRP はベント法線マップを使い、より正確なアンビエントオクルージョンのシミュレーションを行います。ベント法線は、ディフューズライトとのみ、機能します。 | • Material は Eye、Fabric、Hair、Lit、または StackLit に設定 | CoordinateSpace.Tangent |
Smoothness | マテリアルの滑らかさです。滑らかなサーフェスに当たるすべての光線は、予測可能な一定の角度で跳ね返ります。光を鏡のように反射する完全に滑らかなサーフェスのためには、この値を 1 に設定します。スムーズでない表面は(光がマイクロサーフェスの凸凹に当たるため)より広い範囲の角度で光を反射します。そのため、リフレクションにはディテールが少なくなり、より拡散したパターンでサーフェス全体に広がります。 | None | 0.5 |
Ambient Occlusion | マテリアルのアンビエントオクルージョンです。これは、メッシュジオメトリではなく、マテリアルに存在するディテールによって作られた、ゲームオブジェクトのサーフェス上のフラグメントのオクルージョンを近似します。値が 0 の場合、フラグメントが完全に塞がれていることを示し、黒く表示されます。値が 1 の場合は、フラグメントがまったく塞がれていないことを意味し、環境光の色は変わりません。 | None | 1.0 |
Specular Color | マテリアルのスペキュラーカラー値です。スペキュラーハイライトの明度と色合いを定義します。 | None | Color.grey |
Emission | マテリアルのサーフェスから発するライトの色です。エミッシブマテリアルは、シーンの光源として表示されます。 | None | Color.black |
Alpha | マテリアルのアルファ値です。マテリアルの透明度を決定します。想定範囲は 0 - 1 です。 | None | 1.0 |
関連性
使用する Graph Settings に応じ、Shader Graph は以下のブロックを Fragment コンテキストに追加することができます。
プロパティー | 説明 | 設定依存 | デフォルト値 |
---|---|---|---|
Alpha Clip Threshold | 各ピクセルをレンダリングするか判断するために HDRP が使うアルファ制限値です。ピクセルのアルファが制限値以上の場合、HDRP はピクセルをレンダリングします。値が制限値より低い場合は、HDRP はピクセルをレンダリングしません。デフォルト値は 0.5 です。 | • Alpha Clipping は有効 | 0.5 |
Alpha Clip Threshold Depth Postpass | 透明深度ポストパスに HDRP が使うアルファ値制限です。ピクセルのアルファ値が制限と等しいあるいは高い場合、HDRP はピクセルをレンダリングします。値が制限値より低い場合は、HDRP はピクセルをレンダリングしません。デフォルト値は 0.5 です。 | • Alpha Clipping 有効 • Transparent Depth Postpass 有効 |
0.5 |
Alpha Clip Threshold Depth Prepass | 透明深度プレパスに HDRP が使うアルファ制限値です。ピクセルのアルファ値が制限値以上の場合、HDRP はピクセルをレンダリングします。値が制限値より低い場合は、HDRP はピクセルをレンダリングしません。デフォルト値は 0.5 です。 | • Alpha Clipping は有効 • Transparent Depth Prepass は有効 |
0.5 |
Alpha Clip Threshold Shadow | ピクセルの影をレンダリングするか判断するために HDRP が使うアルファ制限値です。ピクセルのアルファ値が制限値以上の場合、HDRP はピクセルをレンダリングします。値が制限値より低い場合は、HDRP はピクセルをレンダリングしません。デフォルト値は 0.5 です。 | • Use Shadow Threshold は有効 | 0.5 |
Anisotropy | 異方性エフェクトの方向です。マイナス値は垂直に、プラス値は水平になります。 | • Anisotropy 有効 | 0.0 |
Baked Back GI | メッシュの裏 面 のみに適用するグローバルイルミネーション (GI) 値です。ビルトインのディフューズ GI ソリューションを置き換えます。 このポートは Override Baked GI 設定を有効化したときのみに表示されます。 |
• Override Baked GI 有効 | 0.0 |
Baked GI | メッシュの表 面 のみに適用するグローバルイルミネーション (GI) 値です。ビルトインのディフューズ GI ソリューションを置き換えます。 | • Override Baked GI 有効 | 0.0 |
Depth Offset | Shader がフラグメントの深度を増大させるために使う値です。現実的な結果を得るために、この Block には、視差オクルージョンマッピング ノードの結果を入力する必要があります。 | • Depth Offset 有効 | 0.0 |
Diffusion Profile | サブサーフェススキャタリングおよび透過に使う Diffusion Profile です。 | • Material Type は Subsurface Scattering または Translucent に設定 | 0.0 |
Normal Object Space | オブジェクト空間におけるマテリアルの法線です。 | • Fragment Normal Space は Object に設定 | CoordinateSpace.Object |
Normal World Space | ワールド空間におけるマテリアルの法線です。 | • Fragment Normal Space は World に設定 | CoordinateSpace.World |
Specular AA Screen Space Variance | ジオメトリックスペキュラーアンチエイリアス 効果の強度です (0 と 1 の間)。値が高いと、それだけエイリアシングが少なく、よりぼやけた結果が得られます。 | • Specular AA 有効 | 0.0 |
Specular AA Threshold | アーティファクトを減らすために、HDRP がスムースネス値から差し引く最大値です。 | • Specular AA 有効 | 0.0 |
Specular Color | マテリアルのスペキュラーカラー値です。スペキュラーハイライトの明度と色合いを定義します。 | None | Color.grey |
Specular Occlusion | スペキュラーグローバルイルミネーションの強さの乗数です。 | • Specular Occlusion Mode は Custom に設定 | 1.0 |
Subsurface Mask | マテリアル全体のスクリーンスペースのブラーエフェクトの強度です。 | • Material は Lit に設定 • Material Type は Subsurface Scattering に設定 |
1.0 |
Tangent Object Space | オブジェクト空間における異方性の方向です。指定した方向にスペキュラーハイライトを引き伸ばします。 | • Material は Lit に設定 • Material Type は Anisotropy に設定 • Fragment Normal Space は Object に設定 または • Material は StackLit に設定 • Fragment Normal Space は Object に設定 Or • Material は Fabric に設定し、Material Type は Silk に設定 • Fragment Normal Space は Object に設定 |
CoordinateSpace.Tangent |
Tangent Tangent Space | 接線空間における異方性の方向です。指定した方向にスペキュラーハイライトを引き伸ばします。 | • Material は Lit に設定 • Material Type は Anisotropy に設定 • Fragment Normal Space は Tangent に設定 または • Material は StackLit に設定 • Fragment Normal Space は Tangent に設定 Or • Material は Fabric に設定し、Material Type は Silk に設定 • Fragment Normal Space は Tangent に設定 |
CoordinateSpace.Tangent |
Tangent World Space | ワールド空間における異方性の方向です。指定した方向へスペキュラーハイライトを引き伸ばします。 | • Material は Lit に設定 • Material Tpe は Anisotropy に設定 • Fragment Normal Space は World に設定 または • Material は StackLit に設定 • Fragment Normal Space は World に設定 Or • Material は Fabric に設定し、Material Type は Silk に設定 • Fragment Normal Space は World に設定 |
CoordinateSpace.World |
Thickness | HDRP が透過を評価するために使う、表面の厚さです。 | • Material Type を Subsurface Scattering に設定し、Transmission を有効化。 または • Material Type を Transluscent に設定。 または • Refraction Model を None に設定しない。 |
1.0 |
Graph Settings
Surface Options
プロパティー | 説明 |
---|---|
Material Type | ファブリックシェーダーのマテリアルタイプを指定します。オプションは以下の通りです。 • Cotton Wool: Imageworks の布モデルにアイディアを得て作成されたバリアントです。 • Silk: DinseyGGX BRDF Model に基づいたファブリックのバリアント です。 |
Surface Type | マテリアルが透明度をサポートするかを指定します。Transparent Surface Type のマテリアルは、Opaque (不透明) な Surface Type のマテリアルよりも、リソースに負荷がかかります。選択するオプションに応じて、HDRP はさらにプロパティーを表示します。オプションは以下の通りです。 • Opaque: • Transparent: クリアなプラスチックやガラスなどのような、光が突き通ることができる半透明のマテリアルをシミュレートします。 機能に関する詳細および各 Surface Type が表示するプロパティ―のリストは、サーフェスタイプに関するドキュメント を参照してください。 |
- Rendering Pass | HDRP がマテリアルをプロセスするレンダリングパスを指定します。 • Before Refraction: 屈折パスの前にゲームオブジェクトを描画します。つまり、HDRP は屈折をプロセスするときにマテリアルを含みます。このオプションを展開するためには、Surface Type ドロップダウンから Transparent を選択します。 • Default: Surface Type に応じて、デフォルトの不透明、または透明レンダリングパスでゲームオブジェクトを描画します。 • Low Resolution: Default パスの後で、半分の解像度でゲームオブジェクトを描画します。 • After post-process: Unlit マテリアル のみに使われます。すべてのポストプロセスエフェクト後にゲームオブジェクトを描画します。 |
- Blending Mode | HDRP がマテリアルの各ピクセルのカラーと背景ピクセルをブレンドするために使う方法を特定します。オプションは以下の通りです。 • Alpha: マテリアルのアルファ値を使ってオブジェクトの透明度を変更します。0 は完全透明です。1 は完全に不透明ですが、マテリアルは透明レンダーパス中にレンダリングされます。これは雲など、完全に可視化したいものの、時間とともにフェードさせたい景観に役立ちます。 • Additive: マテリアルの RGB 値を背景色に追加します。マテリアルのアルファチャンネルが強度を調整します。0 の値は何も追加せず、1 の値はマテリアルのカラーを 100% 背景色に追加します。 • Premultiply: すでにマテリアルの RGB 値とアルファチャンネルを乗算したものと想定します。画像をフィルタリングする、または異なるレイヤーを構成する際に Alpha ブレンドよりも良い結果が得られます。 このプロパティーは Surface Type を Transparent に設定したときのみに表示されます。 |
- Receive Fog | フォグが透明な表面に影響を与えるかを示します。無効にすると、シーンでフォグを計算する際に HDRP はマテリアルを考慮しません。 |
- Depth Test | HDRP が深度テストに使う比較関数を特定します。 |
- Depth Write | HDRP が、マテリアルを使うゲームオブジェクトの深度値を書き込むかを示します。 |
- Cull Mode | マテリアルを使うゲームオブジェクトに除去するフェースを特定します。オプション: • Front: メッシュのフロントフェースを除去します。 • Back: メッシュのバックフェースを除去します。 このプロパティは、Double Sided を無効にしたときのみに表示されます。 |
- Sorting Priority | これを使うと、重ねられた透明なサーフェスのレンダリング順序を変更できます。詳細と使用例については、マテリアルソートに関するドキュメント を参照してください。 このプロパティーは、Surface Type を Transparent に設定したときのみに表示されます。 |
- Back Then Front Rendering |
HDRP がマテリアルを 2 つの別のドローコールでレンダリングするかを示します。HDRP は最初のドローコールで裏面をレンダリングし、2 番目の呼び出しで正面をレンダリングします。 このプロパティーは、Surface Type を Transparent に設定したときのみに表示されます。 |
- Transparent Depth Prepass | HDRP が並び替えを向上させるために透明なサーフェスからポリゴンを深度バッファに追加するかを示します。HDRP はライティングパスの前にこの操作を実行し、GPU のパフォーマンスを向上させます。 |
- Transparent Depth Postpass | HDRP がポストプロセスが使う深度バッファにポリゴンを追加するかを示します。HDRP はライティングパスの前にこの操作を実行します。モーションブラー または フィールドの深度 など、深度情報を使うポストプロセスエフェクトを利用する際に、この機能を有効にすると便利です。 |
- Transparent Writes Motion Vectors | HDRP がマテリアルを使う透明なゲームオブジェクトにモーションベクトルを描画するかを示します。これにより HDRP は透明なオブジェクトに対し、モーションブラーのようなエフェクトを処理できます。モーションベクトルに関する詳細は、モーションベクトルに関するドキュメンテーション を参照してください。 このプロパティーは Surface Type を Transparent に設定したときのみに表示されます。 |
- - Preserve Specular Lighting |
アルファブレンディングによってスペキュラーハイライトの強度を減らすかどうかを示します。これはガラスや水を照らす太陽光線のような、透明なサーフェスのスペキュラ―要素を保存します。 このプロパティーは、Surface Type を Transparent に設定したときのみに表示されます。 |
Alpha Clipping |
マテリアルが Cutout シェーダー のように作動するかを示します。 機能に関する詳細およびこの機能が持つプロパティーのリストは、Alpha-Clipping に関するドキュメント を参照してください。 |
- Use Shadow Threshold |
HDRP がアルファクリッピングに別のしきい値を使うかを示します。 このプロパティーは Alpha Clipping を有効にしたときのみに表示されます。 |
- Alpha to Mask |
Alpha-to-coverage をオンにするかどうかを示します。プロジェクトで MSAA を使う場合は、Alpha-to-coverage がマルチサンプルカバレッジマスクをピクセルシェーダーの結果アルファ値に比例してマスクします。これは通常、アンチエイリアスを用いた植生とその他のアルファテストされたシェーダーに使われます。 このプロパティーは、Alpha Clipping が有効なときのみに表示されます。 |
Double Sided Mode | HDRP がメッシュジオメトリでポリゴンの面をどのようにレンダリングするかを示します。オプションは下記から選択できます。 • Disabled: ポリゴンの片面のみをレンダリングします。 • Enabled: ポリゴンの両面をレンダリングします。このモードでは、裏面の法線が表面と同じになります。 • 反転法線: ポリゴンの両面をレンダリングします。このモードでは、裏面の法線は、正面法線の 180°になります。これはマテリアルにも適用され、ジオメトリの両側が同じような外観になります。 • Mirrored Normals: ポリゴンの両面をレンダリングします。このモードでは、裏面の法線は正面の法線を反転します。これはマテリアルにも適用され、裏面では反転します。これは例えば葉っぱなど、ジオメトリの両側で同じ形状を維持したい場合に便利です。 この機能に関する詳細は、両面 を参照してください。 |
Fragment Normal Space | マテリアルが使う法線マップ空間を特定します。 • TangentSpace: 接線空間 の法線を定義します。メッシュ上でテクスチャをタイリングする際に使います。 • ObjectSpace: オブジェクト空間 の法線を定義します。Terrain (地形) のような平面マッピングのゲームオブジェクトに使います。 • WorldSpace: ワールド空間の法線を定義します。 |
Receive Decals | HDRP がマテリアルの表面にデカールを描画できるかを示します。 |
Receive SSR/SSGI | スクリーンスペースリフレクションパスをプロセスする際に、HDRP がマテリアルを含むかを示します。HDRP はスクリーンスペースのグローバルイルミネーションを計算する際にもマテリアルを考慮します。 このプロパティは、Surface Type を Opaque に設定したときのみに表示されます。 |
Receive SSR Transparent | スクリーンスペースリフレクションパスを処理する際に、HDRP がマテリアルを含むかを示します。 このプロパティーは、Surface Type を Transparent に設定したときのみに表示されます。 |
Geometric Specular AA | マテリアルで HDRP がジオメトリックのアンチエイリアスを行うかを示します。曲がったジオメトリの表面のスムースネス値を修正し、スペキュラ―アーティファクトを除去します。 機能に関する詳細およびこの機能でアクセス可能なプロパティーのリストは、ジオメトリックスペキュラ―アンチエイリアスに関するドキュメント を参照してください。 |
Depth Offset | HDRP がディスプレイスメントによって深度バッファを修正するかを示します。これにより、深度バッファ (コンタクトシャドウ など) を使うエフェクトは、ピクセルディスプレイスメントのディテールをキャプチャすることができます。 |
Subsurface Scattering | Material がサブサーフェススキャタリングをサポートするかを示します。Material の特定の領域でサブサーフェススキャタリングを無効にするには、Subsurface Mask を使います。 |
- Transmission |
HDRP が厚みマップを使ってマテリアルの半透明さをシミュレートするかを示します。サブサーフェススキャタリングおよび透過の設定は、Diffusion Profile から行います。詳細は、サブサーフェススキャタリング のドキュメントを参照してください。 このプロパティーは、Material Type ドロップダウンから Subsurface Scattering を選択したときのみに表示されます。 |
Advanced Options
プロパティー | 説明 |
---|---|
Specular Occlusion Mode | HDRP がスペキュラーオクルージョンを計算するために使うモードです。オプションは下記から選択できます。 • Off: スペキュラーオクルージョンを無効にします。 • From AO: アンビエントオクルージョンマップと Camera のビューベクトルから、スペキュラーオクルージョンを計算します。 • From AO and Bent Normal: アンビエントオクルージョンマップ、ベント法線マップ、および Camera のビューベクトルからスペキュラーオクルージョンを計算します。 • Custom: 独自のスペキュラーオクルージョン値を指定できます。 |
Override Baked GI | このマテリアルがシーン内のグローバルイルミネーション (GI) を無視して、カスタム GI 値を代わりに使うかを示します。この設定を有効にすると、マテリアルに対して GI をコントロールする Fragment コンテキストに、ベイクした GI ブロックを 2 つ加えます。この設定を無効にすると、マテリアルはシーンの GI を使います。 |
Support Lod Crossfade | メッシュが 1 つの LOD レベルから別のレベルへ移動する際に、HDRP がディザリング処理をするかを示します。 |
Add Precomputed Velocity | Alembic ファイルに保存された事前計算された速度情報を使うかを示します。 |
制限
エリア ライト は現在、Fabric または Hair マテリアルをサポートしていません。つまり、以下のマテリアルを照らしたり影を作ったりしません。