Unity’s built-in include files contain global variables for your shaders: things like current object’s transformation matrices, light parameters, current time and so on. You use them in shader programs like any other variable, but if you include the relevant include file, you don’t have to declare them.
For more information on include files, see Built-in include files.
All these matrices are float4x4
type, and are column major.
Name (名前) | 値 |
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 | 現在のワールド行列の逆変換 |
These variables will correspond to the Camera that is rendering. For example during shadowmap rendering, they will still refer to the Camera component values, and not the “virtual camera” that is used for the shadowmap projection.
Name (名前) | タイプ | 値 |
_WorldSpaceCameraPos | float3 | カメラのワールド空間位置 |
_ProjectionParams | float4 |
x は 1.0 または –1.0、反転した射影行列で現在レンダリングしている場合は負の値。y はカメラのニアクリップ面、z はカメラのファークリップ面、w は 1/ファークリップ面 です。 |
_ScreenParams | float4 |
x はカメラのターゲットテクスチャの幅(単位:ピクセル)、y はカメラのターゲットテクスチャの高さ(単位:ピクセル)、 z は 1.0 + 1.0/幅、 w は 1.0 + 1.0/高さです。 |
_ZBufferParams | float4 | Z バッファ値をリニア化するために使用します。 x は (1-far/near)、 y は (far/near)、 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 is measured in seconds, and is scaled by the Time multiplier in your Project’s Time settings. There is no built-in variable that provides access to unscaled time.
Name (名前) | タイプ | 値 |
_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 タグ によって、異なる方法でシェーダーに渡されます。
Forward Rendering (パスタイプ ForwardBase
と ForwardAdd
)
Name (名前) | タイプ | 値 |
_LightColor0 (declared in UnityLightingCommon.cginc) | fixed4 | ライトの色 |
_WorldSpaceLightPos0 | float4 | ディレクショナルライト: (ワールド空間方向のxyz, 0)、他のライト: (ワールド空間位置のxyz, 1) |
unity_WorldToLight (declared in 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 つの行列。 |
ライティングパス シェーダー内で使用される、 Deferred シェーディングと Deferred ライティング(すべて UnityDeferredLibrary.cginc) 内で宣言される)
Name (名前) | タイプ | 値 |
_LightColor | float4 | ライトの色 |
unity_WorldToLight | float4x4 | ワールドとライトの配列。クッキーと減衰テクスチャをサンプリングするのに使用されます。 |
unity_WorldToShadow | float4x4[4] | ワールドとシャドウの行列。スポットライトには 1 つの行列、ディレクショナルライトのカスケードには最高 4 つの行列。 |
球面調和関数の相互作用 (アンビエントライトとライトプローブにより使用される) は、ForwardBase
、PrePassFinal
、Deferred
いずれかのタイプのパス向けに設定されます。
それらは 3次元の球面調和関数を含み、ワールド空間の法線ベクトルによって評価されます (UnityCG.cgincの ShadeSH9
を参照)。
変数はすべて、half4 型で、unity_SHAr
や似た名前を持っています。
Vertex Lit レンダリングパス詳細 (Vertex
パスタイプ)
1つの Vertex
パスタイプに、8 ライトまで設定できます。常に、最も明るいものから順番になっています。
そのため、2つのライトから同時に影響を受けるオブジェクトをレンダリングする場合は、配列の最初の 2つを取得します。
オブジェクトに影響するライトが 8つより少ない場合は、残りのライトの色を黒に設定します。
Name (名前) | タイプ | 値 |
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) |
Name (名前) | タイプ | 値 |
unity_Lightmap | Texture2D | Contains lightmap information. |
unity_LightmapST | float4[8] | Scales and translates the UV information to the correct range to sample the lightmap texture. |
Name (名前) | タイプ | 値 |
unity_AmbientSky | fixed4 | グラデーションのアンビエントライトの場合のスカイアンビエントライトのカラー |
unity_AmbientSky | fixed4 | グラデーションのアンビエントライトの場合の赤道のアンビエントライトのカラー |
unity_AmbientGround | fixed4 | グラデーションのアンビエントライトの場合の地面のアンビエントライトのカラー |
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 モード用、z と w は Linear モード用。 |
Name (名前) | タイプ | 値 |
unity_LODFade | float4 | LOD グループ を使用する場合の LOD フェード。x は fade (0..1)、y は16 レベルに数値化された fade、z と w は不使用。 |
_TextureSampleAdd | float4 | UI 専用に Unity によって自動的に設定されます。使用するテククチャが Alpha8 型 (値は (1,1,1,0) に設定) か、そうでないか (値は (0,0,0,0) に設定) に基づきます。 |