- Home /
Question by
Joshaba · Aug 24, 2018 at 02:29 PM ·
shader programmingsurface shaderdisplacement
Change custom shader color where vertex is displaced
I have a custom shader that displaces the area where a game object moves across. I want to make the displacement more noticeable by making the displaced area a darker color. I have virtually no experience with shader coding so everything is quite foreign and making this change to the code is unclear to me even after reading Unity's documentation on Surface Shaders. Here's the Shader Code.
Shader "Custom/depth" {
Properties {
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_BumpMap ("Bumpmap", 2D) = "bump" {}
_DisplaceTex ("Displace (RGB)", 2D) = "black" {}
_Displacement ("Displacement", Range(0,1)) = 0.2
_Glossiness ("Smoothness", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.5
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
// Physically based Standard lighting model, and enable shadows on all light types
#pragma surface surf Standard addshadow fullforwardshadows vertex:vert
// Use shader model 3.0 target, to get nicer looking lighting
#pragma target 3.0
sampler2D _MainTex;
sampler2D _DisplaceTex;
float _Displacement;
struct Input {
float2 uv_MainTex;
float2 uv_BumpMap;
float2 uv_Detail;
};
void vert (inout appdata_full v){
v.vertex.y += tex2Dlod(_DisplaceTex, float4(v.texcoord.xy, 0 , 0)).r * _Displacement + 0.01;
}
sampler2D _BumpMap;
half _Glossiness;
half _Metallic;
fixed4 _Color;
void surf (Input IN, inout SurfaceOutputStandard o) {
// Albedo comes from a texture tinted by color
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_MainTex));
// Metallic and smoothness come from slider variables
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}
Comment
Your answer
Follow this Question
Related Questions
Passing an array to the Vertex shader 0 Answers
Shading after vertex displacement 0 Answers
Control light intensity via shader script 0 Answers
What kind of alpha blending is suitable for cloth shader? 0 Answers