Unity Shader Example 5 (地形混合)

来源:互联网 发布:mmd改模软件 编辑:程序博客网 时间:2024/05/16 01:41
Shader "T4M-4-Textures" {Properties {_Splat0 ("Layer 1", 2D) = "white" {}_Splat1 ("Layer 2", 2D) = "white" {}_Splat2 ("Layer 3", 2D) = "white" {}_Splat3 ("Layer 4", 2D) = "white" {}_Control ("Control (RGBA)", 2D) = "white" {}//_MainTex ("Never Used", 2D) = "white" {}}                SubShader {Tags {   "SplatCount" = "4"   "RenderType" = "Opaque"}CGPROGRAM#pragma surface surf Lambert #pragma target 4.0#pragma exclude_renderers xbox360 ps3struct Input {float2 uv_Control : TEXCOORD0;float2 uv_Splat0 : TEXCOORD1;float2 uv_Splat1 : TEXCOORD2;float2 uv_Splat2 : TEXCOORD3;float2 uv_Splat3 : TEXCOORD4;}; sampler2D _Control;sampler2D _Splat0,_Splat1,_Splat2,_Splat3; void surf (Input IN, inout SurfaceOutput o) {fixed4 splat_control = tex2D (_Control, IN.uv_Control).rgba;fixed3 lay1 = tex2D (_Splat0, IN.uv_Splat0);fixed3 lay2 = tex2D (_Splat1, IN.uv_Splat1);fixed3 lay3 = tex2D (_Splat2, IN.uv_Splat2);fixed3 lay4 = tex2D (_Splat3, IN.uv_Splat3);o.Alpha = 0.0;o.Albedo.rgb = (lay1 * splat_control.r + lay2 * splat_control.g + lay3 * splat_control.b + lay4 * splat_control.a);}ENDCG }// Fallback to DiffuseFallback "Diffuse"}


主要看思路。



0 0
原创粉丝点击