ShaderLab 枚举常量

  1.     public enum ZTest
  2.     {
  3.         Always = 0,
  4.         Less = 2,
  5.          Equal = 3,
  6.         LEqual = 4,
  7.         GEqual = 5,
  8.     }
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

Shader "NexgenDragon/FX/Particle" {
Properties {
[Enum(Additive,1,AlphaBlend,10)] _DstBlend("Desination Blend Options", Int) = 1
[Enum(Always,0,Less,2)] _ZTest("Z Test Options", Int) = 2
_MainTex ("Base (RGB)", 2D) = "white" {}
_TintColor ("Tint Color", Color) = (0.5,0.5,0.5,1)
_AlphaFactor ("Alpha Factor", Range(0, 2)) = 2
_Brightness ("Brightness", Float) = 2
}

Category {
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
Blend SrcAlpha [_DstBlend]
Cull Off
ZWrite Off
ZTest [_ZTest]
Lighting Off
SubShader {
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest

#include "UnityCG.cginc"

uniform sampler2D _MainTex;
uniform fixed4 _TintColor;
uniform fixed _AlphaFactor;
uniform half _Brightness;

struct appdata_t {
float4 vertex : POSITION;
fixed4 color : COLOR;
half2 texcoord : TEXCOORD0;
};

struct v2f {
float4 vertex : POSITION;
fixed4 color : COLOR;
half2 texcoord : TEXCOORD0;
};

half4 _MainTex_ST;

v2f vert (appdata_t v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.color = v.color;
o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);
return o;
}

fixed4 frag (v2f i) : COLOR
{
fixed4 c = i.color * _TintColor * tex2D(_MainTex, i.texcoord);
fixed3 rgb = c.rgb;
fixed a = c.a * _AlphaFactor;
rgb = rgb * _Brightness;
return fixed4(rgb.r, rgb.g, rgb.b, a);
}
ENDCG
}
}
FallBack "Diffuse"
}
}

猜你喜欢

转载自www.cnblogs.com/lilei9110/p/9439176.html