Description
A skybox shader that blends between two sets of skybox textures. Think day and night cycle!
This shader requires a graphics card that has at least three texture blending stages (GeForce3 and up, Radeon and up). Otherwise it will fallback to the standard Skybox shader (i.e. display the first skybox texture set).
Usage
Just like standard skybox: assign the textures; and the Blend slider controls the blending.
If you want to build or animate the skybox from script, use skyboxmaterial.SetFloat("_Blend", yourBlend) to change the blending; can also use SetTexture material functions to setup or change the textures.
ShaderLab - SkyboxBlended.shader
Invalid language.
You need to specify a language like this: <source lang="html4strict">...</source>
Supported languages for syntax highlighting:
[Expand]
Shader "RenderFX/Skybox Blended" { Properties { _Tint ("Tint Color", Color) = (.5, .5, .5, .5) _Blend ("Blend", Range(0.0,1.0)) = 0.5 _FrontTex ("Front (+Z)", 2D) = "white" {} _BackTex ("Back (-Z)", 2D) = "white" {} _LeftTex ("Left (+X)", 2D) = "white" {} _RightTex ("Right (-X)", 2D) = "white" {} _UpTex ("Up (+Y)", 2D) = "white" {} _DownTex ("Down (-Y)", 2D) = "white" {} _FrontTex2("2 Front (+Z)", 2D) = "white" {} _BackTex2("2 Back (-Z)", 2D) = "white" {} _LeftTex2("2 Left (+X)", 2D) = "white" {} _RightTex2("2 Right (-X)", 2D) = "white" {} _UpTex2("2 Up (+Y)", 2D) = "white" {} _DownTex2("2 Down (-Y)", 2D) = "white" {} } SubShader { Tags { "Queue" = "Background" } Cull Off Fog { Mode Off } Lighting Off Color [_Tint] Pass { SetTexture [_FrontTex] { combine texture } SetTexture [_FrontTex2] { constantColor (0,0,0,[_Blend]) combine texture lerp(constant) previous } SetTexture [_FrontTex2] { combine previous +- primary, previous * primary } } Pass { SetTexture [_BackTex] { combine texture } SetTexture [_BackTex2] { constantColor (0,0,0,[_Blend]) combine texture lerp(constant) previous } SetTexture [_BackTex2] { combine previous +- primary, previous * primary } } Pass { SetTexture [_LeftTex] { combine texture } SetTexture [_LeftTex2] { constantColor (0,0,0,[_Blend]) combine texture lerp(constant) previous } SetTexture [_LeftTex2] { combine previous +- primary, previous * primary } } Pass { SetTexture [_RightTex] { combine texture } SetTexture [_RightTex2] { constantColor (0,0,0,[_Blend]) combine texture lerp(constant) previous } SetTexture [_RightTex2] { combine previous +- primary, previous * primary } } Pass { SetTexture [_UpTex] { combine texture } SetTexture [_UpTex2] { constantColor (0,0,0,[_Blend]) combine texture lerp(constant) previous } SetTexture [_UpTex2] { combine previous +- primary, previous * primary } } Pass { SetTexture [_DownTex] { combine texture } SetTexture [_DownTex2] { constantColor (0,0,0,[_Blend]) combine texture lerp(constant) previous } SetTexture [_DownTex2] { combine previous +- primary, previous * primary } } } Fallback "RenderFX/Skybox", 1 }
ShaderLab - SkyboxBlendedFog.shader
Similar to the above shader, with the addition of a horizon fog texture channel. Can add a nice atmosphere to your scene! Author: Aubrey Falconer
Invalid language.
You need to specify a language like this: <source lang="html4strict">...</source>
Supported languages for syntax highlighting:
[Expand]
Shader "RenderFX/Skybox Blended Fog" { Properties { _Tint ("Tint Color", Color) = (.5, .5, .5, .5) _FogTint ("Fog Tint", Color) = (.5, .5, .5, .5) _FrontTex ("Front (+Z)", 2D) = "white" {} _BackTex ("Back (-Z)", 2D) = "white" {} _LeftTex ("Left (+X)", 2D) = "white" {} _RightTex ("Right (-X)", 2D) = "white" {} _UpTex ("Up (+Y)", 2D) = "white" {} _DownTex ("Down (-Y)", 2D) = "white" {} _FrontTex2("2 Front (+Z)", 2D) = "white" {} _BackTex2("2 Back (-Z)", 2D) = "white" {} _LeftTex2("2 Left (+X)", 2D) = "white" {} _RightTex2("2 Right (-X)", 2D) = "white" {} _UpTex2("2 Up (+Y)", 2D) = "white" {} _DownTex2("2 Down (-Y)", 2D) = "white" {} _FogSide("Side FogMask", 2D) = "white" {} _FogBottom("Bottom FogMask", 2D) = "white" {} } SubShader { Tags { "Queue" = "Background" } Cull Off Fog { Mode Off } Lighting Off Color [_Tint] Pass { SetTexture [_FrontTex] { combine texture } SetTexture [_FrontTex2] { constantColor[_Tint] combine texture lerp(constant) previous } SetTexture [_FogSide] { constantColor[_FogTint] combine constant lerp (texture) previous } } Pass { SetTexture [_BackTex] { combine texture } SetTexture [_BackTex2] { constantColor[_Tint] combine texture lerp(constant) previous } SetTexture [_FogSide] { constantColor[_FogTint] combine constant lerp (texture) previous } } Pass { SetTexture [_LeftTex] { combine texture } SetTexture [_LeftTex2] { constantColor[_Tint] combine texture lerp(constant) previous } SetTexture [_FogSide] { constantColor[_FogTint] combine constant lerp (texture) previous } } Pass { SetTexture [_RightTex] { combine texture } SetTexture [_RightTex2] { constantColor[_Tint] combine texture lerp(constant) previous } SetTexture [_FogSide] { constantColor[_FogTint] combine constant lerp (texture) previous } } Pass { SetTexture [_UpTex] { combine texture } SetTexture [_UpTex2] { constantColor[_Tint] combine texture lerp(constant) previous } } Pass { SetTexture [_DownTex] { combine texture } SetTexture [_DownTex2] { constantColor[_Tint] combine texture lerp(constant) previous } SetTexture [_FogBottom] { constantColor[_FogTint] combine constant lerp (texture) previous } } } Fallback "RenderFX/Skybox", 1 }