unity自发光透明shader
这本来是一个glass的shader,但是我发现也可以用到自发光+透明,这两个脚本都是unity文档里面的。呵呵~~~
- Shader "Custom/AlphaSelfIllum" {
- Properties {
- _Color ("Main Color", Color) = (1,1,1,0)
- _SpecColor ("Spec Color", Color) = (1,1,1,1)
- _Emission ("Emmisive Color", Color) = (0,0,0,0)
- _Shininess ("Shininess", Range (0.01, 1)) = 0.7
- _MainTex ("Base (RGB)", 2D) = "white" { }
- }
- SubShader {
- // We use the material in many passes by defining them in the subshader.
- // Anything defined here becomes default values for all contained passes.
- Material {
- Diffuse [_Color]
- Ambient [_Color]
- Shininess [_Shininess]
- Specular [_SpecColor]
- Emission [_Emission]
- }
- Lighting On
- SeparateSpecular On
- // Set up alpha blending
- Blend SrcAlpha OneMinusSrcAlpha
- // Render the back facing parts of the object.
- // If the object is convex, these will always be further away
- // than the front-faces.
- //控制前面透明度
- //Pass {
- // Cull Front
- // SetTexture [_MainTex] {
- // Combine Primary * Texture
- // }
- //}
- // Render the parts of the object facing us.
- // If the object is convex, these will be closer than the
- // back-faces.
- //控制后面透明度
- Pass {
- Cull Back
- SetTexture [_MainTex] {
- Combine Primary * Texture
- }
- }
- }
- }
Shader "Custom/AlphaSelfIllum" {
Properties {
_Color ("Main Color", Color) = (1,1,1,0)
_SpecColor ("Spec Color", Color) = (1,1,1,1)
_Emission ("Emmisive Color", Color) = (0,0,0,0)
_Shininess ("Shininess", Range (0.01, 1)) = 0.7
_MainTex ("Base (RGB)", 2D) = "white" { }
}
SubShader {
// We use the material in many passes by defining them in the subshader.
// Anything defined here becomes default values for all contained passes.
Material {
Diffuse [_Color]
Ambient [_Color]
Shininess [_Shininess]
Specular [_SpecColor]
Emission [_Emission]
}
Lighting On
SeparateSpecular On
// Set up alpha blending
Blend SrcAlpha OneMinusSrcAlpha
// Render the back facing parts of the object.
// If the object is convex, these will always be further away
// than the front-faces.
//控制前面透明度
//Pass {
// Cull Front
// SetTexture [_MainTex] {
// Combine Primary * Texture
// }
//}
// Render the parts of the object facing us.
// If the object is convex, these will be closer than the
// back-faces.
//控制后面透明度
Pass {
Cull Back
SetTexture [_MainTex] {
Combine Primary * Texture
}
}
}
}
- Shader "Custom/Fog" {
- Properties {
- _MainTex ("Texture", 2D) = "white" {}
- _FogColor ("Fog Color", Color) = (0.3, 0.4, 0.7, 1.0)
- }
- SubShader {
- Tags { "RenderType" = "Opaque" }
- CGPROGRAM
- #pragma surface surf Lambert finalcolor:mycolor vertex:myvert
- struct Input {
- float2 uv_MainTex;
- half fog;
- };
- void myvert (inout appdata_full v, out Input data)
- {
- float4 hpos = mul (UNITY_MATRIX_MVP, v.vertex);
- data.fog = min (1, dot (hpos.xy, hpos.xy) * 0.1);
- }
- fixed4 _FogColor;
- void mycolor (Input IN, SurfaceOutput o, inout fixed4 color)
- {
- fixed3 fogColor = _FogColor.rgb;
- #ifdef UNITY_PASS_FORWARDADD
- fogColor = 0;
- #endif
- color.rgb = lerp (color.rgb, fogColor, IN.fog);
- }
- sampler2D _MainTex;
- void surf (Input IN, inout SurfaceOutput o) {
- o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
- }
- ENDCG
- }
- Fallback "Diffuse"
- }