x


Surface SpecularMap Shader color integration.

I have this SpecularMap shader that I got somewhere off the internet, it works perfectly well but I wanted to add some solid color integration to it. And The color picker is there but it does not change anything. I have no Shading experience and I won't understand if you give me shader scripting terms.

Anyway here's the script without the color picker integration:

Shader "Surface/Colored Specular" {
Properties {
  _MainTex ("Texture", 2D) = "white" {}
  _SpecMap ("SpecMap", 2D) = "white" {}
}
SubShader {
    Tags { "RenderType" = "Opaque" }
CGPROGRAM
#pragma surface surf ColoredSpecular

struct MySurfaceOutput {
    half3 Albedo;
    half3 Normal;
    half3 Emission;
    half Specular;
    half3 GlossColor;
    half Alpha;
};


inline half4 LightingColoredSpecular (MySurfaceOutput s, half3 lightDir, half3 viewDir, half atten)
{
  half3 h = normalize (lightDir + viewDir);

  half diff = max (0, dot (s.Normal, lightDir));

  float nh = max (0, dot (s.Normal, h));
  float spec = pow (nh, 32.0);
  half3 specCol = spec * s.GlossColor;

  half4 c;
  c.rgb = (s.Albedo * _LightColor0.rgb * diff + _LightColor0.rgb * specCol) * (atten * 2);
  c.a = s.Alpha;
  return c;
}

inline half4 LightingColoredSpecular_PrePass (MySurfaceOutput s, half4 light)
{
    half3 spec = light.a * s.GlossColor;

    half4 c;
    c.rgb = (s.Albedo * light.rgb + light.rgb * spec);
    c.a = s.Alpha + spec * _SpecColor.a;
    return c;
}


struct Input {
  float2 uv_MainTex;
  float2 uv_SpecMap;
};
sampler2D _MainTex;
sampler2D _SpecMap;
void surf (Input IN, inout MySurfaceOutput o)
{
  o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb * 0.3;
  half4 spec = tex2D (_SpecMap, IN.uv_SpecMap);
  o.GlossColor = spec.rgb;
  o.Specular = 32.0/128.0;
}
ENDCG
}
Fallback "Diffuse"
}

And here is the script with the color picker integration (that I got from http://answers.unity3d.com/questions/41222/looking-for-a-flat-shaderno-info-with-just-a-color-option)

Shader "Surface/Colored Specular" {
Properties {
  _Color ("Color", Color) = (1,1,1)
  _MainTex ("Texture", 2D) = "white" {}
  _SpecMap ("SpecMap", 2D) = "white" {}
}
SubShader {
    Color [_Color]
    Pass {}
    Tags { "RenderType" = "Opaque" }
CGPROGRAM
#pragma surface surf ColoredSpecular

struct MySurfaceOutput {
    half3 Albedo;
    half3 Normal;
    half3 Emission;
    half Specular;
    half3 GlossColor;
    half Alpha;
};


inline half4 LightingColoredSpecular (MySurfaceOutput s, half3 lightDir, half3 viewDir, half atten)
{
  half3 h = normalize (lightDir + viewDir);

  half diff = max (0, dot (s.Normal, lightDir));

  float nh = max (0, dot (s.Normal, h));
  float spec = pow (nh, 32.0);
  half3 specCol = spec * s.GlossColor;

  half4 c;
  c.rgb = (s.Albedo * _LightColor0.rgb * diff + _LightColor0.rgb * specCol) * (atten * 2);
  c.a = s.Alpha;
  return c;
}

inline half4 LightingColoredSpecular_PrePass (MySurfaceOutput s, half4 light)
{
    half3 spec = light.a * s.GlossColor;

    half4 c;
    c.rgb = (s.Albedo * light.rgb + light.rgb * spec);
    c.a = s.Alpha + spec * _SpecColor.a;
    return c;
}


struct Input {
  float2 uv_MainTex;
  float2 uv_SpecMap;
};
sampler2D _MainTex;
sampler2D _SpecMap;
void surf (Input IN, inout MySurfaceOutput o)
{
  o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb * 0.3;
  half4 spec = tex2D (_SpecMap, IN.uv_SpecMap);
  o.GlossColor = spec.rgb;
  o.Specular = 32.0/128.0;
}
ENDCG
}
Fallback "Diffuse"
}

I hope I'm not making too confusing putting the two scripts together here... I just dunno

Jules Fletcher

more ▼

asked Feb 14 '11 at 01:35 PM

Jules Fletcher gravatar image

Jules Fletcher
23 4 4 7

(comments are locked)
10|3000 characters needed characters left

0 answers: sort voted first
Be the first one to answer this question
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x3331
x1656
x507
x78
x56

asked: Feb 14 '11 at 01:35 PM

Seen: 1640 times

Last Updated: Feb 14 '11 at 01:35 PM