雾效:将雾的颜色与物体的颜色混合,跟物体距离相机的距离有关
语法:
1.Fog {Fog Commands}
2.Mode Off | Global | Linear | Exp | Exp2(雾的模式,缺省值是Global)
3.Color ColorValue(雾的颜色)
4.Density FloatValue(雾的浓度,影响Exp/Exp2)
5.Range FloatValue, FloatValue(雾的开始和结束距离,影响Linear )
注意如果使用了片段着色器的话,着色器中的雾设定仍然是有效的。另外可以通过菜单中Edit->Render Settings可以打开渲染设置。
雾效与"要渲染的物体与相机的距离"有关,"要渲染的物体与相机的距离"越小,雾效越低。
示例shader:
Shader "Custom/NewShader" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _From("From", Float) = 0 _To("To", Float) = 10 _Density("Density", Float) = 10 _Color ("Color", Color) = (1,1,1,0) } SubShader { Tags { "RenderType"="Opaque" } LOD 200 Fog { Mode Linear Color[_Color] Range [_From],[_To] Density [_Density]} //Fog { Mode Exp Color[_Color] Range [_From],[_To] Density [_Density]} //Fog { Mode Exp2 Color[_Color] Range [_From],[_To] Density [_Density]} CGPROGRAM #pragma surface surf Lambert sampler2D _MainTex; struct Input { float2 uv_MainTex; }; void surf (Input IN, inout SurfaceOutput o) { half4 c = tex2D (_MainTex, IN.uv_MainTex); o.Albedo = c.rgb; o.Alpha = c.a; } ENDCG } FallBack "Diffuse" }
雾效不仅仅只是一种画面效果,更与游戏优化有关,引用一句话就是:
开启雾效通常用于优化性能,雾可以让远处的物体淡出而不进行绘制。请注意,仅开启雾效是不足以优化性能的,你还需要调整相机的远剪裁面,使远处的物体不被绘制。最好先调整雾效得到正确的视觉效果,然后调小相机的远裁剪面,使得几何体在雾变淡前被裁减掉。