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

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

サーフェイスシェーダー

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

[c] 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" } [/c]

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

サーフェスシェーダ宣言を行う。 [c] // サーフェイスシェーダーのメイン関数は[surf]と宣言 // Lambert はライディングの方式

pragma surface surf Lambert

[/c]

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

プロパティ

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

色を指定する場合 [c] Properties{ _Color("Hoge Color",Color) = (1.0,1.0,1.0) } [/c]

Shader1225  1

テクスチャを指定する場合 [c] Properties{ _Texture("Texture",2D) = "white"{} } [/c]

Shader1225 01  1

透明度をつける場合 [c] _Alpha("Alpha",Range(0,1)) = 1 [/c]

Shader3  1
Unity 5 実践シェーダプログラミング入門 [改訂第一版]Unity 5 実践シェーダプログラミング入門 [改訂第一版]
高橋 潤

売り上げランキング : 2490

Amazonで詳しく見る