- Home /
Specular map to decide reflection
Hi!
Im a programmer who got the task to create a shader. This shader should act like the builtin Transparent/Cutout/Bumped specular but with one difference. It should take a specular map and use that as Alpha/Transparency/Whatever it's called (that decide how much he light should reflect)
I can't for the love of my life seem to find anything anywhere. The closest i've got is the source code for the (original builtin) shader itself:
Shader "Transparent/Cutout/Bumped Specular"
{
Properties
{
_Color ("Main Color", Color) = (1,1,1,1)
_SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 0)
_Shininess ("Shininess", Range (0.01, 1)) = 0.078125
_MainTex ("Base (RGB) TransGloss (A)", 2D) = "white" {}
_BumpMap ("Normalmap", 2D) = "bump" {}
_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
}
SubShader
{
Tags {"Queue"="AlphaTest" "IgnoreProjector"="True" "RenderType"="TransparentCutout"}
LOD 400
CGPROGRAM
#pragma surface surf BlinnPhong alphatest:_Cutoff
sampler2D _MainTex;
sampler2D _BumpMap;
fixed4 _Color;
half _Shininess;
struct Input
{
float2 uv_MainTex;
float2 uv_BumpMap;
};
void surf (Input IN, inout SurfaceOutput o)
{
fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
o.Albedo = tex.rgb * _Color.rgb;
o.Gloss = tex.a;
o.Alpha = tex.a * _Color.a;
o.Specular = _Shininess;
o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
}
ENDCG
}
FallBack "Transparent/Cutout/VertexLit"
}
you're going to struggle with shaders if you do not know what alpha is called.
if a moderator can find some duplicate "begin with shaders" questions perhaps this question could be closed
It's not a question about "im new to shaders and want to create soething simple", i'm just wondering if i can modify this code so that it takes a picure for the alpha, rather then the alpha-channel on the normal map.
If you get my question? :3