28 lines
805 B
Text
28 lines
805 B
Text
|
shader_type canvas_item;
|
||
|
render_mode blend_disabled;
|
||
|
|
||
|
#include "res://addons/zylann.hterrain/shaders/include/heightmap.gdshaderinc"
|
||
|
|
||
|
//uniform sampler2D u_screen_texture : hint_screen_texture;
|
||
|
uniform sampler2D u_previous_pass;
|
||
|
|
||
|
vec4 pack_normal(vec3 n) {
|
||
|
return vec4((0.5 * (n + 1.0)).xzy, 1.0);
|
||
|
}
|
||
|
|
||
|
float get_height(sampler2D tex, vec2 uv) {
|
||
|
return sample_height_from_viewport(tex, uv);
|
||
|
}
|
||
|
|
||
|
void fragment() {
|
||
|
vec2 uv = SCREEN_UV;
|
||
|
vec2 ps = SCREEN_PIXEL_SIZE;
|
||
|
float left = get_height(u_previous_pass, uv + vec2(-ps.x, 0));
|
||
|
float right = get_height(u_previous_pass, uv + vec2(ps.x, 0));
|
||
|
float back = get_height(u_previous_pass, uv + vec2(0, -ps.y));
|
||
|
float fore = get_height(u_previous_pass, uv + vec2(0, ps.y));
|
||
|
vec3 n = normalize(vec3(left - right, 2.0, fore - back));
|
||
|
COLOR = pack_normal(n);
|
||
|
}
|
||
|
|