照明機能を高めるために照明シェーダ、前記ない頂点シェーダ及びフラグメントシェーダ、前とせずに異なる色の表面。
私は、書面による要求をした効果を点灯する二つのマップ
二つのマップは、補間を行います。
シェーダ" カスタム/ SurfaceShader " { プロパティ { _Color(" カラー"、カラー)=(1、1、1、1 ) _MainTex(" アルベド(RGB)"、2D)= " 白" {} _SecondAlbedo(「第アルベド( RGB) "2D)= " 白" {} _AlbedoLerp(" アルベドlerp 」、範囲(0、1))=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 } フォールバック" 拡散" }