デコシノニッキ

ホロレンジャーの戦いの記録

独習ShaderGraph その1 ミニマルSurfaceShaderと比べる

前回の続きです
dhero.hatenablog.com

今回はこちらをなぞっていきます
nn-hokuson.hatenablog.com

最小限のシェーダ

Shader "Custom/sample" {
    SubShader {
        Tags { "RenderType"="Opaque" }
        LOD 200
        
        CGPROGRAM
        #pragma surface surf Standard fullforwardshadows
        #pragma target 3.0

        struct Input {
            float2 uv_MainTex; //使わないんだけど、空っぽだとsurfに入力を渡せない
        };

        void surf (Input IN, inout SurfaceOutputStandard o) {
            o.Albedo = fixed4(1.0f, 1.0f, 1.0f, 1); //outputのAlbedoに色を指定している
        }
        ENDCG
    }
    FallBack "Diffuse"
}

Unityのサーフェイスシェーダにおいて、surfシェーダの位置づけは次のようになっています。Vertexシェーダから出力された値(Input構造体)を入力に取り、オブジェクトの表面色(SurfaceOutputStandard)を出力します。

【Unityシェーダ入門】20行から始めるUnityミニマルシェーダ - おもちゃラボ

Surfがないので再現できないが、こういうことだろうか… f:id:haikage1755:20180111212156p:plain:w250

今回のミニマルコードの例でいえば、surfを使うにあたって空のInputを渡せないので、とりあえずUVは入れているが、surfの中では入力は使わず中身ではLightingに渡すoutputの色情報のみ与えている…とのこと
f:id:haikage1755:20180111212516p:plain:w250

surfベースで始めたのよくなかったかな…

[デコシノニッキ]は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。」