Unityのシェーダの勉強を始めました。
まず、シェーダを書くにはSublime TextでShaderLangageというパッケージを入れるとSyntaxHighlightされて書きやすいです。
さて、最初に勉強するシェーダのコードはほとんどがおまじないだとわかりました。
例えば以下のコード。
Shader "Custom/MyShader" { SubShader{ // おまじない Tags{ // おまじない "RenderType" = "Opaque" // おまじない } CGPROGRAM // おまじない #pragma surface surf Lambert // おまじない struct Input { // おまじない float4 color : COLOR; // おまじない }; void surf(Input IN, inout SurfaceOutput o) { // おまじない o.Albedo = half3(1.0, 0.5, 0.4); } ENDCG // おまじない } }
つまり、以下のようになります。
Shader "Custom/MyShader" { o.Albedo = half3(1.0, 0.5, 0.4); }
halfというのはデータの型で、以下のページに一覧が載っています。
以下引用です:
高精度: float
float は最高精度の浮動小数点値で、通常のプログラミング言語の float と同じように一般な 32 ビットです。
ワールド空間位置、テクスチャ座標、複雑な関数を含むスカラー計算 (三角法、累乗法など) には、 たいてい 32 ビットの float が使用されます。
中精度: half
half は中精度の浮動小数点値で、一般に 16 ビットです (–60000 から +60000 の範囲で、小数点以下約 3 桁)。
Half は、ショートベクトル、方向、オブジェクト空間位置、HDR カラー に使用されます。
低精度: fixed
fixed は低精度で、固定小数点数です。一般的に 11 ビットで、–2.0 から +2.0 の範囲で、1/256 精度です。
固定精度は、標準カラー (一般的に標準テクスチャに保管されるので) とそれらの単純な制御に使用されます。
おお、これなら俺でもわかる。とにかくも一歩前進。