強火で進め

このブログではプログラム関連の記事を中心に書いてます。

「Unity iOS ShaderLab - Tutorial 3-1 (Combiners) 」の動画で紹介されているシェーダ

【シェーダ その1】指定した色で描画するシェーダ。

Shader "ShaderLab Tutorials/Combiner" {
	Properties {
		_Color ("Color", Color) = (0, 0, 1)
		_MainTex ("Texture", 2D) = ""
	}
	SubShader {
		Pass {
			Color [_Color]
			//SetTexture[_MainTex] 
		}
	}
}

【シェーダ その2】テクスチャで描画するシェーダ。

Shader "ShaderLab Tutorials/Combiner" {
	Properties {
		_Color ("Color", Color) = (0, 0, 1)
		_MainTex ("Texture", 2D) = ""
	}
	SubShader {
		Pass {
			Color [_Color]
			SetTexture[_MainTex] 
		}
	}
}

【シェーダ その3】UV座標を使わない形(TexGen)でテクスチャで描画するシェーダ。

Shader "ShaderLab Tutorials/Combiner" {
	Properties {
		_Color ("Color", Color) = (0, 0, 1)
		_MainTex ("Texture", 2D) = "" {TexGen ObjectLinear}
	}
	SubShader {
		Pass {
			Color [_Color]
			SetTexture[_MainTex] 
		}
	}
}

[TexGen ObjectLinear] についてはこちらを参照。

Unity - ShaderLab syntax: Properties
http://docs.unity3d.com/Documentation/Components/SL-Properties.html

【シェーダ その4】「テクスチャの色 * テクスチャの色」で描画するシェーダ。暗めのテクスチャの場合、元の色より暗く成ります。「{Combine src1 +- src2}」の様に * の代わりに +- を使用した場合、 src1 に src2 の値を加えた後に0.5を引いた値で描画されます。

Shader "ShaderLab Tutorials/Combiner" {
	Properties {
		_Color ("Color", Color) = (0, 0, 1)
		_MainTex ("Texture", 2D) = ""
	}
	SubShader {
		Pass {
			Color [_Color]
			SetTexture[_MainTex] {Combine texture * texture}
		}
	}
}

「Combine」についてはこちらを参照。

Unity - ShaderLab syntax: Texture Combiners
http://docs.unity3d.com/Documentation/Components/SL-SetTexture.html

【シェーダ その5】「テクスチャの色」と「プライマリカラー」を掛けあわせた値で描画するシェーダ。

Shader "ShaderLab Tutorials/Combiner" {
	Properties {
		_Color ("Color", Color) = (0, 0, 1)
		_MainTex ("Texture", 2D) = ""
	}
	SubShader {
		Pass {
			Color [_Color]
			SetTexture[_MainTex] {Combine texture *  primary}
		}
	}
}