【Unity】シェーダープログラミング

  • |
【Unity】シェーダープログラミング
   

Unityを使っていると、シェーダーについてよく耳にします。
ただ、話を聞くとシェーダーはとても難しいとのこと。
今回は、このシェーダーがどのようなものかを勉強してみました。

サーフェイスシェーダー

シェーダーの中でも比較的簡単なのが「 サーフェイスシェーダー」です。

Shader "Custom/MyShader" {
SubShader {
	Tags { "RenderType"="Opaque" }

	CGPROGRAM
	#pragma surface surf Lambert
	struct Input{
		 float4 color:COLOR;
	};

	void surf (Input IN, inout SurfaceOutput o) {
		// Albedo comes from a texture tinted by color
		o.Albedo = half3(1.0,0.5,0.4);
	}
	ENDCG
}
FallBack "Diffuse"
}

Cg言語を使うという宣言
CGPROGRAM
//
//
//
ENDCG
[_c]

サーフェスシェーダ宣言を行う。

// サーフェイスシェーダーのメイン関数は[surf]と宣言
// Lambert はライディングの方式
#pragma surface surf Lambert

//Diffuse(拡散光)の色を設定している。
o.Albedo = half3(1.0,0.5,0.4);

プロパティ

UnityのInspector上で管理ができる変数を指定できます。
これは、上記の例でいうとSubShaderの上に記載をします。

色を指定する場合
Properties{
   _Color("Hoge Color",Color) = (1.0,1.0,1.0)
}
Shader1225  1

テクスチャを指定する場合
Properties{
   _Texture("Texture",2D) = "white"{}
}
Shader1225 01  1

透明度をつける場合
_Alpha("Alpha",Range(0,1)) = 1
Shader3  1
Unity 5 実践シェーダプログラミング入門 [改訂第一版]Unity 5 実践シェーダプログラミング入門 [改訂第一版]
高橋 潤

売り上げランキング : 2490

Amazonで詳しく見る

Related Posts Plugin for WordPress, Blogger...