ユニティサーフェスシェーダ

 

照明機能を高めるために照明シェーダ、前記ない頂点シェーダ及びフラグメントシェーダ、前とせずに異なる色の表面。

私は、書面による要求をした効果を点灯する二つのマップ

二つのマップは、補間を行います

シェーダ" カスタム/ SurfaceShader " 
{ 
    プロパティ
    { 
        _Color(" カラー"、カラー)=(1111 
        _MainTex(" アルベド(RGB)"、2D)= " " {}
         _SecondAlbedo(第アルベド( RGB) "2D)= " " {} 
        _AlbedoLerp(" アルベドlerp 、範囲(01))=0.5 
        _Glossiness(" 平滑"、範囲( 0 1))= 0.5 
        _Metallic(" メタリック"、範囲( 0 1))= 0.0 
    } 
    SubShader 
    { 
        タグ{ " RenderType " = " 不透明" } 
        LOD 200 

        CGPROGRAM 
        // 物理的基づく標準ライティングモデル、およびすべての光タイプに影を有効
        に#pragma表面サーフ標準fullforwardshadows

        // よりよい探して照明を得るために、シェーダモデル3.0ターゲットを使用して
        の#pragma 3.0ターゲット

        sampler2D _MainTexを。sampler2D _SecondAlbedo; 半分_AlbedoLerp ; 
        
        

        構造体の入力
        { 
            するfloat2 uv_MainTex。
        }。

        半分_Glossiness; 
        半分_Metallic; 
        fixed4 _Color; 

        // このシェーダのサポートをインスタンス化追加。あなたは、シェーダを使用材料の「インスタンス化を有効にする」をチェックする必要があります。
        // 参照https://docs.unity3d.com/Manual/GPUInstancing.htmlをインスタンス化の詳細については。
        //assumeuniformscalingの#pragma instancing_options 
        UNITY_INSTANCING_BUFFER_START(小道具)
             // ここではより多くのインスタンスごとのプロパティを置く
        UNITY_INSTANCING_BUFFER_END(小道具)

        のボイドサーフ(SurfaceOutputStandard 0 inoutの入力IN、)
        { 
            // アルベドは、色によって着色質感から来 
            fixed4 C = では、tex2D(_MainTexを.uv_MainTex);
            fixed4 secondAebed = tex2D(_SecondAlbedo、IN.uv_MainTex)。

            o.Albedo = lerp(C、secondAebed、_AlbedoLerp)* _Color// メタリックと滑らかさは、スライダー変数から来 
            o.Metallic =_Metallic; 
            o.Smoothness = _Glossiness。
            o.Alpha = CA; 
        } 
        ENDCG 
    } 
    フォールバック" 拡散" 
}

 

おすすめ

転載: www.cnblogs.com/Optimism/p/11348569.html