Скриншота нету .
Синтаксис:
Используется glsl
Shader "SelectPartShader" {
Properties {
_RimColor ("Rim Color", Color) = (0.26,0.19,0.16,0.0)
_RimPower ("Rim Power", Range(0.5,8.0)) = 3.0
_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
_GlowBorderOffset("GlowBorderOffset", Float) = 0.5
}
SubShader {
Tags {
"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
Blend SrcAlpha OneMinusSrcAlpha // Alpha blending
//Blend One One // Additive
//Blend One OneMinusDstColor // Soft Additive
//Blend DstColor Zero // Multiplicative
//Blend DstColor SrcColor // 2x Multiplicative
LOD 200
CGPROGRAM
#pragma surface surf Lambert alpha vertex:vert
#include "UnityCG.cginc"
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
float3 customViewDir;
float3 customNormal;
};
float4 _RimColor;
float _RimPower;
float _GlowBorderOffset;
void vert (inout appdata_full v, out Input o)
{
v.vertex.xyz += v.normal * (_GlowBorderOffset*0.1);
o.customViewDir = ObjSpaceViewDir(v.vertex);
o.customNormal = v.normal;
}
void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
half rim = 1.0 - saturate(dot (normalize(IN.customViewDir), IN.customNormal));
half4 rim_color = _RimColor * pow (rim, _RimPower);
o.Albedo = c.rgb*rim_color.rgb;
o.Alpha = c.a*rim_color.a;
o.Emission = o.Albedo;
}
ENDCG
}
Fallback "Transparent/VertexLit"
}
Properties {
_RimColor ("Rim Color", Color) = (0.26,0.19,0.16,0.0)
_RimPower ("Rim Power", Range(0.5,8.0)) = 3.0
_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
_GlowBorderOffset("GlowBorderOffset", Float) = 0.5
}
SubShader {
Tags {
"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
Blend SrcAlpha OneMinusSrcAlpha // Alpha blending
//Blend One One // Additive
//Blend One OneMinusDstColor // Soft Additive
//Blend DstColor Zero // Multiplicative
//Blend DstColor SrcColor // 2x Multiplicative
LOD 200
CGPROGRAM
#pragma surface surf Lambert alpha vertex:vert
#include "UnityCG.cginc"
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
float3 customViewDir;
float3 customNormal;
};
float4 _RimColor;
float _RimPower;
float _GlowBorderOffset;
void vert (inout appdata_full v, out Input o)
{
v.vertex.xyz += v.normal * (_GlowBorderOffset*0.1);
o.customViewDir = ObjSpaceViewDir(v.vertex);
o.customNormal = v.normal;
}
void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
half rim = 1.0 - saturate(dot (normalize(IN.customViewDir), IN.customNormal));
half4 rim_color = _RimColor * pow (rim, _RimPower);
o.Albedo = c.rgb*rim_color.rgb;
o.Alpha = c.a*rim_color.a;
o.Emission = o.Albedo;
}
ENDCG
}
Fallback "Transparent/VertexLit"
}