Version: Unity 6.0 (6000.0)
言語 : 日本語
HLSL pragma require コマンドリファレンス
Color

ビルトインのシェーダー変数リファレンス

Unity のビルトインインクルードファイルには、現在のオブジェクトの変換などのシェーダーのグローバル変数が含まれています。これらは他の変数と同様にシェーダープログラムで使用しますが、関連するインクルードファイルをインクルードしていれば、宣言する必要はありません。

インクルードファイルの詳細については、ビルトインのインクルードファイルを参照してください。

変形

これらのマトリックスはすべて、float4x4 タイプであり、列優先です。

名前
UNITY_MATRIX_MVP 現在のモデル * ビュー * 射影行列
UNITY_MATRIX_MV 現在のモデル * ビュー行列
UNITY_MATRIX_V 現在のビュー行列
UNITY_MATRIX_P 現在の射影行列
UNITY_MATRIX_VP 現在のビュー * 射影行列
UNITY_MATRIX_T_MV モデル * ビュー行列の変換
UNITY_MATRIX_IT_MV モデル * ビュー行列の逆変換
unity_ObjectToWorld 現在のモデル行列
unity_WorldToObject 現在のワールド行列の逆変換

カメラと画面

これらの変数は、レンダリング中のカメラに対応します。例えば、シャドウマップのレンダリング中であれば、シャドウマップの投影に使用されている “バーチャルカメラ” ではなく、カメラコンポーネントの値を参照します。

名前 タイプ
WorldSpaceCameraPos ||float3 | カメラのワールド空間位置。 | |ProjectionParams float4 x は 1.0 (または、反転した射影行列でレンダリングしている場合は –1.0)、y はカメラのニアクリップ面、z はカメラのファークリップ面、w は 1/FarPlane。
ScreenParams ||float4 | x はカメラのターゲットテクスチャの幅 (ピクセル単位)、y はカメラのターゲットテクスチャの高さ (ピクセル単位)、 z は 1.0 + 1.0/幅、w は 1.0 + 1.0/高さ。| |ZBufferParams float4 Z バッファ値 をリニア化するために使用。
x   UNITY_REVERSED_Z が 1 に設定されている場合は 1-far/near または -1+far/nearUNITY_REVERSED_Z の詳細については、プラットフォーム機能に基づく分岐
y   far/near、または UNITY_REVERSED_Z が 1 に設定されている場合は 1 を参照してください。UNITY_REVERSED_Z の詳細については、プラットフォーム機能に基づく枝を参照
z   x/far
w   y/far
unity_OrthoParams float4 x は平行投影カメラの幅、y は平行投影カメラの高さ、カメラが平行投影の場合 z は使用されず、w は 1.0。また、透視の場合は 0.0。
unity_CameraProjection float4x4 カメラの射影行列。
unity_CameraInvProjection float4x4 カメラの射影行列の逆。
unity_CameraWorldClipPlanes[6] float4 カメラ錘台面のワールド空間上の方程式。左、右、下、near、far の順番。

Time(期間)

時間は秒単位で計測され、プロジェクトの Time 設定にある Time 乗数でスケールされます。スケールされていない時間にアクセスするためのビルトイン変数はありません。

名前 タイプ
Time | float4 | ステージのロードからの時間 (t/20, t, t\2, t\3)。シェーダー内でアニメーション化を行うために使用します。 | | SinTime float4 時間の正弦: (t/8, t/4, t/2, t)
_CosTime float4 時間の余弦: (t/8, t/4, t/2, t)
unity_DeltaTime float4 デルタ時間: (dt, 1/dt, smoothDt, 1/smoothDt)

ライティング

ライトのパラメーターは、使用されるレンダリングパスとシェーダー内で使用される LightMode Pass タグに基づいて、異なる方法でシェーダーに渡されます。

フォワードレンダリング (ForwardBase およびForwardAdd のパスの種類):

名前 タイプ
LightColor0 (UnityLightingCommon.cginc で宣言されています) | fixed4 | ライトの色 | | WorldSpaceLightPos0 float4 ディレクショナルライト: (ワールド空間の向き、0)。その他のライト: (ワールド空間の位置、1)。
unity_WorldToLight (AutoLight.cginc で宣言されています) float4x4 ワールドとライトの行列。クッキーと減衰テクスチャをサンプリングするのに使用されます。
unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0 float4 (ForwardBase パスのみ) 重要でない最初の 4 つのポイントライトのワールド空間位置。
unity_4LightAtten0 float4 (ForwardBase パスのみ) 重要でない最初の 4 つのポイントライトの Attenuation ファクター。
unity_LightColor half4[4] (ForwardBase パスのみ) 重要でない最初の 4 つのポイントライトの色
unity_WorldToShadow float4x4[4] ワールドとシャドウの行列。スポットライトには 1 つの行列、ディレクショナルライトのカスケードには最大 4 つの行列。

ライティングパスシェーダー内で使用されるディファードシェーディング (すべて UnityDeferredLibrary.cginc 内で宣言されます)

名前 タイプ
_LightColor float4 ライトの色
unity_WorldToLight float4x4 ワールドとライトの行列。クッキーと減衰テクスチャをサンプリングするのに使用されます。
unity_WorldToShadow float4x4[4] ワールドとシャドウの行列。スポットライトには 1 つの行列、ディレクショナルライトのカスケードには最高 4 つの行列。

球面調和係数 (アンビエントおよびライトプローブによって使用される) は、ForwardBase および Deferred のパスタイプに対して設定されます。それらは 3 次元の球面調和関数を含み、ワールド空間の法線ベクトルによって評価されます (UnityCG.cgincShadeSH9 を参照)。変数はすべて、half4 型であり、unity_SHAr や類似した名前が設定されています。

頂点ライティングレンダリング (Vertex パスタイプ):

1 つの Vertex パスタイプに、最大 8 つのライトを設定できます。常に最も明るいものから順にソートされます。そのため、2 つのライトから同時に影響を受けるオブジェクトをレンダリングする場合は、配列の最初の 2 つのエントリーを取得するだけで行えます。オブジェクトに影響するライトが 8つより少ない場合は、残りのライトの色を黒に設定します。

名前 タイプ
unity_LightColor half4[8] ライトの色
unity_LightPosition float4[8] ビュー空間ライト位置。ディレクショナルライトは (-direction,0)、ポイント/スポットライト は (position,1)
unity_LightAtten half4[8] ライトの減衰ファクター。x は cos(spotAngle/2)、または、スポットライト以外は –1。y は 1/cos(spotAngle/4)、または、スポットライト以外は 1。z は 2次減衰。w はライト範囲の平方。
unity_SpotDirection float4[8] ビュー空間スポットライト位置。スポットライト以外は (0,0,1,0)

Lightmaps

名前 タイプ
unity_Lightmap Texture2D ライトマップの情報を含みます。
unity_LightmapST float4[8] UV 情報を、ライトマップテクスチャをサンプリングするための正しい範囲にスケールし変換します。

フォグとアンビエント

名前 タイプ
unity_AmbientSky fixed4 グラデーションのアンビエントライトの場合のスカイアンビエントライトのカラー
unity_AmbientEquator fixed4 グラデーションのアンビエントライトの場合の赤道のアンビエントライトのカラー
unity_AmbientGround fixed4 グラデーションのアンビエントライトの場合の地面のアンビエントライトのカラー
unity_IndirectSpecColor fixed4 スカイボックスを使用する場合、これはスカイボックスの平均色で、Unity はアンビエントプローブ球面的調和データDC コンポーネントを使用して計算します。それ以外の場合は黒になります。
UNITY_LIGHTMODEL_AMBIENT fixed4 アンビエントライトのカラー (グラデーションのアンビエントライトの場合のスカイカラー)。古い変数。
unity_FogColor fixed4 フォグカラー
unity_FogParams float4 フォグ計算のためのパラメーター: (density / sqrt(ln(2)), density / ln(2), –1/(end-start), end/(end-start))。x は Exp2 fog モード用、y は Exp モード用、zw は Linear モード用。

##各種

名前 タイプ
unity_LODFade float4 LOD グループを使用する場合の LOD フェード。x はフェード (0..1)、y は 16 レベルに数値化されたフェード、zw は不使用。
_TextureSampleAdd float4 UI 専用に Unity によって自動的に設定されます。使用するテクスチャが Alpha8 型 (値は (1,1,1,0) に設定) か、そうでないか (値は (0,0,0,0) に設定) に基づきます。
HLSL pragma require コマンドリファレンス
Color