I’m trying to make a custom shader to do some coloring and later transparency based on the rim (fake fresnel effects).
Thus far I have this:
Shader "Custom/Fresnel" {
Properties {
_EdgeColor ("Edge Color", Color) = (1.0, 0.0, 1.0, 0.0)
_Color ("Color", Color) = (0.0, 1.0, 0.0, 0.0)
}
SubShader {
Tags { "RenderType" = "Opaque" }
CGPROGRAM
#pragma surface surf Lambert
#pragma target 3.0
samplerColor _EdgeColor;
samplerColor _Color;
struct Input {
float3 viewDir;
};
void surf (Input IN, inout SurfaceOutput o) {
half rim = dot(normalize(IN.viewDir), o.Normal);
o.Albedo = _EdgeColor * rim + _Color * (1.0 - rim);
}
ENDCG
}
Fallback "Diffuse"
}
The problem is I get the following errors:
Material doesn't have a color property '_EdgeColor'
UnityEditor.DockArea:OnGUI()
Material doesn't have a color property '_Color'
UnityEditor.DockArea:OnGUI()
I’ve made a new material, and set its shader to my custom shader, and two color pickers show up, one for each. Do I need to write a custom lighting model or something?
Thanks!
I found that compiler errors wouldn't show in the console for this. But if I selected the shader and looked in the properties panel, it would show compiler errors. So that's something to be aware of.
– Sardtok