- Home /
Question by
Emilyanis · Feb 03, 2015 at 12:36 AM ·
shadershadersreflectionreflections
Self-Illum Fresnel Reflective Bumped Specular issue
Hi! I trying to make Self-Illum Fresnel Reflective Bumped Specular shader, but I have little problem, Unity dont want to work with my fresnel variable, I changing values in editor but nothing changes.
Shader "PC/Tank" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_ReflectColor ("Reflection Color", Color) = (1,1,1,0.5)
_ReflectPower ("Reflect Power", Range (1, 2)) = 1
_FPOW("FPOW", Float) = 5.0
_R0("R0", Float) = 0.05
_SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1)
_Shininess ("Shininess", Range (0.01, 1)) = 0.078125
_MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {}
_Cube ("Reflection Cubemap", Cube) = "_Skybox" { TexGen CubeReflect }
_Illum ("Illumin (A)", 2D) = "white" {}
_BumpMap ("Normalmap", 2D) = "bump" {}
_EmissionLM ("Emission (Lightmapper)", Float) = 0
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 400
CGPROGRAM
#pragma surface surf BlinnPhong
#pragma target 3.0
sampler2D _MainTex;
samplerCUBE _Cube;
sampler2D _BumpMap;
sampler2D _Illum;
fixed4 _Color;
fixed4 _ReflectColor;
half _Shininess;
half _ReflectPower;
float _FPOW;
float _R0;
struct Input {
float2 uv_MainTex;
float2 uv_Illum;
float2 uv_BumpMap;
float3 worldRefl;
float3 viewDir;
INTERNAL_DATA
};
void surf (Input IN, inout SurfaceOutput o) {
fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
fixed4 c = tex * _Color;
o.Albedo = c.rgb;
float3 worldRefl = WorldReflectionVector (IN, o.Normal);
fixed4 reflcol = texCUBE (_Cube, worldRefl);
reflcol *= tex.a;
half fresnel = saturate(1.0 - dot(o.Normal, normalize(IN.viewDir)));
fresnel = pow(fresnel, _FPOW);
fresnel = _R0 + (1.0 - _R0) * fresnel;
reflcol = lerp(c, reflcol, fresnel);
o.Emission = (c.rgb * tex2D(_Illum, IN.uv_Illum).a) + (reflcol.rgb * _ReflectColor.rgb * _ReflectPower);
o.Gloss = tex.a;
o.Alpha = reflcol.rgb * _ReflectColor.rgb;
o.Specular = _Shininess;
o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
}
ENDCG
}
FallBack "Self-Illumin/Specular"
}
Comment
Your answer
Follow this Question
Related Questions
Reflection shader with alpha channel 2 Answers
how to do color separation in specular reflections 1 Answer
Blend Cubemaps in reflection probe 1 Answer
Disable fresnel in standard shader 1 Answer