unity自发光透明shader
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"
- }