aboutsummaryrefslogtreecommitdiff
path: root/game/addons/zylann.hterrain/tools/bump2normal_tex.gdshader
blob: b0c97da1f693a3f9ee854ada87d4b95dd0ba1245 (plain) (blame)
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
shader_type canvas_item;

#include "res://addons/zylann.hterrain/shaders/include/heightmap.gdshaderinc"

vec4 pack_normal(vec3 n) {
   return vec4((0.5 * (n + 1.0)).xzy, 1.0);
}

float get_height(sampler2D tex, vec2 uv) {
   return sample_heightmap(tex, uv);
}

void fragment() {
   vec2 uv = UV;
   vec2 ps = TEXTURE_PIXEL_SIZE;
   float left = get_height(TEXTURE, uv + vec2(-ps.x, 0));
   float right = get_height(TEXTURE, uv + vec2(ps.x, 0));
   float back = get_height(TEXTURE, uv + vec2(0, -ps.y));
   float fore = get_height(TEXTURE, uv + vec2(0, ps.y));
   vec3 n = normalize(vec3(left - right, 2.0, fore - back));
   COLOR = pack_normal(n);
   // DEBUG
   //COLOR.r = fract(TIME * 100.0);
}