Question by
Cthulhu28 · Jan 19, 2017 at 04:35 PM ·
shadershadersshader programmingshader writingdirty
How to write a shader like this? [Screenshots]
Interested in how to implement the dirt on the model.
Now I have only this:
Shader "Custom/DirtyShader" {
Properties {
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_Glossiness ("Smoothness", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.0
_BumpMap("Normalmap", 2D) = "bump" {}
_DirtMap("Dirt (Normalmap), Mask (Alpha)", 2D) = "white" {}
_Dirtiness("Dirtiness", Range(0,0.9)) = 0
_BumpHeight("Bump Height", Range(0,1)) = 1
_DirtColor("Dirt Color", Color) = (0.39,0.23,0,0)
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
// Physically based Standard lighting model, and enable shadows on all light types
#pragma surface surf Standard fullforwardshadows
// Use shader model 3.0 target, to get nicer looking lighting
#pragma target 3.0
sampler2D _MainTex;
sampler2D _DirtMap;
struct Input {
float2 uv_MainTex;
float2 uv_DirtMap;
};
half _Glossiness;
half _Metallic;
float _Dirtiness;
fixed4 _Color;
fixed4 _DirtColor;
void surf (Input IN, inout SurfaceOutputStandard o) {
// Albedo comes from a texture tinted by color
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
fixed4 dec = tex2D(_DirtMap, IN.uv_DirtMap) * _DirtColor;
o.Albedo = c.rgb;
// Metallic and smoothness come from slider variables
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Alpha = c.a;
clip(o.Alpha - _Dirtiness);
}
ENDCG
}
FallBack "Diffuse"
}
Thanks for any help.
gd4.jpg
(241.2 kB)
screenshot-1.png
(35.2 kB)
Comment
Your answer
Follow this Question
Related Questions
Converted ShaderToy shader showing up black 1 Answer
Add fog to vertex shader 0 Answers
Metallic material decomposing light in rainbow spectre? 0 Answers
_Time in Image Effects 0 Answers
my 2D light shader works wrong 0 Answers