Blend 2 Textures

From Unify Community Wiki
Revision as of 19:08, 26 October 2010 by Jessy (Talk | contribs)

Jump to: navigation, search

Author: Jessy

Contents

Description

These shaders blend between two textures based on a 0-1 value that you control. The first version is extra-fast because it does not use lighting, and the second uses the same basic ambient + diffuse calculation that I used in my Simply Lit shader.

Usage

Drag a different texture onto each of the material's variable slots, and use the Blend control to mix them to taste.

Take note that the lit version requires two passes on the GPU used in the oldest iOS devices.


Click here for a zip file that includes these shaders.

ShaderLab - Blend 2 Textures.shader

<shaderlab>Shader "Blend 2 Textures" {

Properties { _Blend ("Blend", Range (0, 1) ) = 0.5 _MainTex ("Texture 1", 2D) = "" _Texture2 ("Texture 2", 2D) = "" }

SubShader { Pass { SetTexture[_MainTex] SetTexture[_Texture2] { ConstantColor (0,0,0, [_Blend]) Combine texture Lerp(constant) previous } } }

}</shaderlab>

ShaderLab - Blend 2 Textures, Simply Lit.shader

<shaderlab>Shader "Blend 2 Textures, Simply Lit" {

Properties { _Color ("Color", Color) = (1,1,1) _Blend ("Blend", Range (0,1)) = 0.5 _MainTex ("Texture 1", 2D) = "" _Texture2 ("Texture 2", 2D) = "" }

Category { Material { Ambient[_Color] Diffuse[_Color] }

// iPhone 3GS and later SubShader {Pass { Lighting On SetTexture[_MainTex] SetTexture[_Texture2] { ConstantColor (0,0,0, [_Blend]) Combine texture Lerp(constant) previous } SetTexture[_] {Combine previous * primary Double} }}

// pre-3GS devices, including the September 2009 8GB iPod touch SubShader { Pass { SetTexture[_MainTex] SetTexture[_Texture2] { ConstantColor (0,0,0, [_Blend]) Combine texture Lerp(constant) previous } } Pass { Lighting On Blend DstColor SrcColor } } }

}</shaderlab>

Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox