# 【内置变量】

1.UNITY_MATRIX_M:模型矩阵(Model matrix),用于将物体从模型空间转换到世界空间。

2.UNITY_MATRIX_V:视图矩阵(View matrix),用于将物体从世界空间转换到观察空间。

3.UNITY_MATRIX_P:投影矩阵(Projection matrix),用于将物体从观察空间转换到裁剪空间。

4.UNITY_MATRIX_MV:模型视图矩阵(Model view matrix),用于将物体从模型空间转换到观察空间。

5.UNITY_MATRIX_VP:视图投影矩阵(View projection matrix),用于将物体从世界空间转换到裁剪空间。

6.UNITY_MATRIX_MVP:模型视图投影矩阵(Model view projection matrix),用于将物体从模型空间转换到裁剪空间。

7._WorldSpaceLightPos0:世界空间的光源位置。

8._WorldSpaceLightDir0:世界空间的光线方向。

9._LightColor0:光源的颜色。

10._Time:游戏运行的时间。

11._ProjectionParams:投影相关参数。

12._ScreenParams:屏幕相关参数,如分辨率、宽高比等。

13._MainTex:主纹理。

14._RenderTex:渲染目标纹理。

15._CullMode:剔除模式,指定模型的剔除方式。

16._Color:物体的颜色。

17._AlphaClipThreshold:alpha剪裁的阈值。

18._Object2World:物体到世界空间的矩阵。

19._World2Object:世界到物体空间的矩阵。

20._Object2Clip:物体到裁剪空间的矩阵。

21._ScreenToWorld:屏幕到世界空间的矩阵。

22._WorldToScreen:世界到屏幕空间的矩阵。

23._ScreenParams:屏幕相关参数,包括屏幕宽度、高度等。

24._SinTime:时间的正弦值。

25._CosTime:时间的余弦值。

26._LightColor0:光源0的颜色。

27._LightColor1:光源1的颜色。

28._LightColor2:光源2的颜色。

29._LightColor3:光源3的颜色。

30._FogColor:雾的颜色。

31._FogParams:雾的参数,包括起始距离、衰减距离等。

32._AmbientSkyColor:环境光的颜色。

33._AmbientEquatorColor:环境光的赤道色。

34._AmbientGroundColor:环境光的地面色。

35._AmbientLightColor:环境光的总颜色。

36._CameraWS:相机的世界空间位置。

37._CameraProjection:相机的投影矩阵。

38._CameraInvProjection:相机投影矩阵的逆矩阵。

39._CameraDepthTexture:相机的深度纹理。

40._SunDirection:太阳的方向。

41.unity_SpecCube0:反射探针CudeMap

// 方向光 或者点光源
#if defined (DIRECTIONAL)
half3 light_dir = normalize(_WorldSpaceLightPos0.xyz);
#elif defined (POINT)
half3 light_dir = normalize(_WorldSpaceLightPos0.xyz - i.pos_world);
half distance = length(_WorldSpaceLightPos0.xyz - i.pos_world);
half range = 1.0 / unity_WorldToLight[0][0];
float attenuation = saturate((range - distance)/range);
#endif

//环境色
half3 = ambient_color = UNITY_LIGHTMODEL_AMBIENT.rgb;
// 使用反射探针
half4 env_color = UNITY_SAMPLE_TEXCUBE(unity_SpecCube0,reflect_dir);
half3 env_hdr_color = DecodeHDR(env_color,unity_SpecCube0_HDR);