-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathterrain_shader.tres
63 lines (52 loc) · 1.74 KB
/
terrain_shader.tres
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
[gd_resource type="ShaderMaterial" load_steps=2 format=2]
[sub_resource type="Shader" id=1]
code = "shader_type spatial;
render_mode blend_mix,depth_draw_opaque,cull_back,diffuse_burley,specular_schlick_ggx;
uniform vec4 albedo : hint_color;
uniform sampler2D texture_albedo : hint_albedo;
uniform float specular;
uniform float metallic;
uniform float roughness : hint_range(0,1);
uniform float point_size : hint_range(0,128);
uniform vec3 uv1_scale;
uniform vec3 uv1_offset;
uniform vec3 uv2_scale;
uniform vec3 uv2_offset;
uniform vec4 sand_color : hint_color = vec4(0.9, 0.9, 0.6, 1.0);
uniform vec4 grass_color : hint_color = vec4(0.5, 1.0, 0.5, 1.0);
varying flat vec3 out_color;
vec3 lerpColor(vec4 a, vec4 b, float t) {
float rr = a.r + (b.r - a.r) * t;
float gg = a.g + (b.g - a.g) * t;
float bb = a.b + (b.b - a.b) * t;
return vec3(rr, gg, bb);
}
void vertex() {
UV=UV*uv1_scale.xy+uv1_offset.xy;
out_color = sand_color.rgb;
if (VERTEX.y > 0.0) {
out_color = lerpColor(sand_color, grass_color, clamp((VERTEX.y) / 4.0, 0.0, 1.0));
}
}
void fragment() {
vec2 base_uv = UV;
vec4 albedo_tex = texture(texture_albedo,base_uv);
ALBEDO = out_color * albedo_tex.rgb;
METALLIC = metallic;
ROUGHNESS = roughness;
SPECULAR = specular;
}
"
[resource]
shader = SubResource( 1 )
shader_param/albedo = Color( 0.439216, 0.588235, 0.109804, 1 )
shader_param/specular = 0.5
shader_param/metallic = 0.0
shader_param/roughness = 0.625
shader_param/point_size = 1.0
shader_param/uv1_scale = Vector3( 1, 1, 1 )
shader_param/uv1_offset = Vector3( 0, 0, 0 )
shader_param/uv2_scale = Vector3( 1, 1, 1 )
shader_param/uv2_offset = Vector3( 0, 0, 0 )
shader_param/sand_color = Color( 0.9, 0.9, 0.6, 1 )
shader_param/grass_color = Color( 0.133333, 0.545098, 0.133333, 1 )