Blend 2 Textures

From Unify Community Wiki
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

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 - Blend 2 Textures, Simply Lit.shader

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
		}
	}
}
 
}
Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Tools