码迷,mamicode.com
首页 > 其他好文 > 详细

Texture Combiner

时间:2014-07-23 12:51:36      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   os   

Texture Combiner

  After the basic vertex lighting has been calculated, textures are applied. In ShaderLab this is done using SetTexture command.

  SetTexture commands have no effect when fragment programs are used; as in that case pixel operations are completely described in the shader.

  bubuko.com,布布扣

  Texturing is the place to do old-style combiner effects. You can have multiple SetTexture commands inside a pass - all textures are applied in sequence, like layers in a painting program. SetTexture commands must be placed at the end of a Pass.

[三种命令]

1、combine命令

  bubuko.com,布布扣

2、constantColor命令

  ConstantColor color

Defines a constant color that can be used in the combine command.

 3、matrix命令

  matrix [MatrixPropertyName]Transforms texture coordinates used in this command with the given matrix.

[Separate Alpha & Color computation]

  bubuko.com,布布扣

[Specular highlight]

  By default the primary color is the sum of the diffuse, ambient and specular colors (as defined in the Lighting calculation). If you specify SeparateSpecular On in the pass options, the specular color will be added in after the combiner calculation, rather than before. This is the default behavior of the built-in VertexLit shader.

[Examples]

1、Alpha Blending Two Textures

  This small examples takes two textures. First it sets the first combiner to just take the _MainTex, then is uses the alpha channel of _BlendTex to fade in the RGB colors of _BlendTex。  

bubuko.com,布布扣
Shader "Examples/2 Alpha Blended Textures" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _BlendTex ("Alpha Blended (RGBA) ", 2D) = "white" {}
    }
    SubShader {
        Pass {
            // Apply base texture
            SetTexture [_MainTex] {
                combine texture
            }
            // Blend in the alpha texture using the lerp operator
            SetTexture [_BlendTex] {
                combine texture lerp (texture) previous
            }
        }
    }
} 
View Code

2、Alpha Controlled Self-illumination

  This shader uses the alpha component of the _MainTex to decide where to apply lighting. It does this by applying the texture to two stages; In the first stage, the alpha value of the texture is used to blend between the vertex color and solid white. In the second stage, the RGB values of the texture are multiplied in.

bubuko.com,布布扣
Shader "Examples/Self-Illumination" {
    Properties {
        _MainTex ("Base (RGB) Self-Illumination (A)", 2D) = "white" {}
    }
    SubShader {
        Pass {
            // Set up basic white vertex lighting
            Material {
                Diffuse (1,1,1,1)
                Ambient (1,1,1,1)
            }
            Lighting On

            // Use texture alpha to blend up to white (= full illumination)
            SetTexture [_MainTex] {
                constantColor (1,1,1,1)
                combine constant lerp(texture) previous
            }
            // Multiply in texture
            SetTexture [_MainTex] {
                combine previous * texture
            }
        }
    }
} 
View Code

参考:file://localhost/Applications/Unity/Unity.app/Contents/Documentation/Documentation/Components/SL-SetTexture.html

 

 

Texture Combiner,布布扣,bubuko.com

Texture Combiner

标签:des   style   blog   http   color   os   

原文地址:http://www.cnblogs.com/tekkaman/p/3862586.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!