BakedVertexColorBumpSpec2

From Unify Community Wiki
(Difference between revisions)
Jump to: navigation, search
(add comments)
(Removing all content from page)
Line 1: Line 1:
[[Category: Unity 2.x shaders]]
 
[[Category: Pixel lit shaders]]
 
  
Author: [[User:NeARAZ | Aras Pranckevicius]]
 
 
==Description==
 
Similar to builtin Lightmapped/Bumped Specular, but this uses lighting baked into vertex colors instead of a separate lightmap texture. Any additional Unity lights add on top of baked lighting.
 
 
Should work on dual texture graphics cards (NVIDIA TNT2, ATI Rage 128 and up).
 
 
==ShaderLab - BakedVertexColorBumpSpec2.shader==
 
<shaderlab>Shader "Baked Vertex Lighting/Bumped Specular" {
 
Properties {
 
    _Color ("Main Color", Color) = (1,1,1,1)
 
    _SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1)
 
    _Shininess ("Shininess", Range (0.01, 1)) = 0.078125
 
    _MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {}
 
    _BumpMap ("Bump (RGB)", 2D) = "bump" {}
 
}
 
 
SubShader {
 
    // Use standard pixel-lighting blending: first pass is opaque, further passes additive
 
    Blend AppSrcAdd AppDstAdd
 
   
 
    // This pass is always drawn.
 
    // It draws base texture multipled by per-vertex colors, multiplied by material's color
 
    Pass {
 
        Tags {"LightMode" = "Always"} // always draw this pass
 
        Lighting Off
 
        BindChannels {
 
            Bind "Vertex", vertex
 
            Bind "TexCoord", texcoord
 
            Bind "Color", color
 
        }
 
        SetTexture [_MainTex] {
 
            combine primary * texture // multiply vertex color by texture
 
        }
 
        SetTexture [_MainTex] {
 
            constantColor [_Color]
 
            combine previous * constant // ...and multiply by material's color
 
        }
 
    }
 
 
    // This pass is drawn when there are vertex-lit lights. This is just standard
 
    // lighting*texture*2 pass, that adds onto baked lighting pass
 
    Pass {
 
        Tags {"LightMode" = "Vertex"} // draw this pass when there are vertex-lit lights
 
        // setup vertex lighting
 
        Material {
 
            Diffuse [_Color]
 
            Shininess [_Shininess]
 
            Specular [_SpecColor]
 
        }
 
        Lighting On
 
        SeperateSpecular On
 
        ColorMask RGB
 
 
        SetTexture [_MainTex] { combine texture * primary DOUBLE }
 
    }
 
 
    // "Paste" all passes named "PPL" from Bumped Specular shader.
 
    // They happen to be the ones that implement per-pixel lighting.
 
    UsePass "Bumped Specular/PPL"
 
}
 
 
Fallback "VertexLit"
 
}
 
</shaderlab>
 

Revision as of 18:04, 19 October 2009

Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox