Decal2UVs

From Unify Community Wiki
Revision as of 19:17, 19 October 2009 by NCarter (Talk | contribs)

Jump to: navigation, search

Author: Aras Pranckevicius

Description

Just like builtin Decal - allows you to have a base texture with another transparent texture "splatted on top". The only difference is that the additional decal texture here uses 2nd UV set (whereas in builtin shader both use the same UV set).

Works on three texture graphics cards (GeForce3/4Ti and up, Radeon and up).

ShaderLab - Decal2UVs.shader

<shaderlab>Shader " Decal (2 UV sets)" { Properties {

   _Color ("Main Color", Color) = (1,1,1,1)
   _SpecColor ("Spec Color", Color) = (1,1,1,1)
   _Emission ("Emmisive Color", Color) = (0,0,0,0)
   _Shininess ("Shininess", Range (0.01, 1)) = 0.7
   _MainTex ("Base (RGB)", 2D) = "white" {}
   _DecalTex ("Decal (RGBA)", 2D) = "black" {}

}

SubShader {

   Material {
       Diffuse [_Color]
       Ambient [_Color]
       Shininess [_Shininess]
       Specular [_SpecColor]
       Emission [_Emission]
   }
   Pass {
       BindChannels {
           Bind "Vertex", vertex
           Bind "normal", normal
           Bind "texcoord", texcoord0 // main uses 1st uv
           Bind "texcoord1", texcoord1 // decal uses 2nd uv
       }
       Lighting On
       SeperateSpecular On
       SetTexture [_MainTex] {combine texture}
       SetTexture [_DecalTex] {combine texture lerp (texture) previous}
       SetTexture [_MainTex] {combine previous * primary DOUBLE, previous * constant constantColor [_Color]}
   }

}

Fallback " VertexLit", 1

} </shaderlab>

Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox