Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Shader "Custom/piGlowShader"
- {
- Properties
- {
- _Color ("_Color:" , Color) = (1,1,1,1)
- _Specular ("_Specular:" , Color) = (1,1,1,1)
- _Shininess ("_Shininess:" , float) = 0.5
- _Glow ("_Glow:" , float) = 0.0
- }
- SubShader
- {
- Pass
- {
- Name "FORWARD"
- Tags { "RenderType"="Opaque" "LightMode"="ForwardBase"}
- Lighting On
- // - - - - - - -
- CGPROGRAM
- #pragma vertex vertex_shader
- #pragma fragment fragment_shader
- #pragma fragmentoption ARB_precision_hint_fastest
- #pragma multi_compile_fwdbase
- #include "HLSLSupport.cginc"
- #include "UnityCG.cginc"
- #include "Lighting.cginc"
- #include "AutoLight.cginc"
- // important to pass the properties here
- float4 _Color;
- float4 _Specular;
- float _Shininess;
- float _Glow;
- struct v2f
- {
- float4 position : POSITION;
- float4 color : COLOR;
- };
- // Lighting Function
- inline half3 LightingLambertVS (half3 normal, half3 lightDir)
- {
- half diff = max ( 0, dot( normal, lightDir ) );
- return _LightColor0.rgb * (diff * 2);
- }
- v2f vertex_shader ( appdata_base i)
- {
- v2f o;
- o.position = mul(UNITY_MATRIX_MVP, i.vertex);
- // - - - AMBIENT - - -
- o.color = UNITY_LIGHTMODEL_AMBIENT * _Color;
- // - - - DIFFUSE - - -
- float3 worldN = mul((float3x3)_Object2World, i.normal);
- float LdotN = saturate( dot ( _WorldSpaceLightPos0, worldN ) );
- o.color += LdotN * _Color * _LightColor0;
- // - - - SPECULAR - - -
- float3 L = normalize( ObjSpaceLightDir( i.vertex ) );
- float3 V = normalize( ObjSpaceViewDir( i.vertex ) );
- float3 H = normalize( L + V );
- float NdotH = saturate( dot (i.normal, H) );
- float4 spec = _Specular * _LightColor0 * pow( NdotH, _Shininess * 128 );
- o.color += spec;
- // - - - GLOW - - -
- float4 glow = _Glow * LdotN * _LightColor0;
- o.color += glow;
- // - - - - -
- return o;
- }
- float4 fragment_shader( v2f i ) : COLOR
- {
- return i.color;
- }
- ENDCG
- // - - - - - - -
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement