diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2023-08-21 07:52:26 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2023-08-21 07:52:59 +0200 |
commit | 4c91679a1cdbb1804f1ddd570e020269c4a59524 (patch) | |
tree | 8b8a44399c031b6299bb0aa87c7cda961b081c0f /shaders/lightmap.vert | |
parent | eb6db6477872659c4933069dfa55357ea55f2162 (diff) |
wip
Diffstat (limited to 'shaders/lightmap.vert')
-rw-r--r-- | shaders/lightmap.vert | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/shaders/lightmap.vert b/shaders/lightmap.vert index 21a4d7a9..479add5c 100644 --- a/shaders/lightmap.vert +++ b/shaders/lightmap.vert @@ -1,14 +1,29 @@ precision mediump float; -layout (location = 0) uniform vec4 color_intensity; -layout (location = 1) uniform vec2 center; -layout (location = 2) uniform uint falloff; -layout (location = 3) uniform vec2 size; -layout (location = 4) uniform uint mode; -layout (location = 5) uniform sampler2D sampler; +layout (location = 0) uniform sampler2D sampler; +layout (location = 1) uniform vec3 light_color; +layout (location = 2) uniform vec2 size; +layout (location = 3) uniform vec2 center_fragcoord; +layout (location = 4) uniform vec2 center_clip; +layout (location = 5) uniform float intensity; +layout (location = 6) uniform uint mode; +layout (location = 7) uniform uint falloff; + +layout (location = 0) flat out vec3 frag_color; +layout (location = 1) flat out float frag_intensity; layout (location = 0) in vec2 position; void main() { - gl_Position = vec4(position.x, position.y, 0, 1); + vec2 pos = position.xy; + vec2 dir = pos - center_clip; + float len = length(dir); + if (len > 1e-6) + { + vec2 dir_norm = dir * (1/len); + pos += dir_norm * position.z * 4; + } + gl_Position = vec4(pos, 0, 1); + frag_intensity = color_intensity.a; + frag_falloff = uint(position_falloff.w); } |