summaryrefslogtreecommitdiffhomepage
path: root/shaders/lightmap.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2023-06-10 13:20:04 +0200
committerStanislaw Halik <sthalik@misaki.pl>2023-06-10 13:20:04 +0200
commit2204f113710319ae6d735e3d511dd1d75d42a07d (patch)
treed21bb92cddf4c511239a773efc54f9aa94935b2b /shaders/lightmap.cpp
parent587d492a03275e95d518850d2e44949b73e1980e (diff)
wip
Diffstat (limited to 'shaders/lightmap.cpp')
-rw-r--r--shaders/lightmap.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/shaders/lightmap.cpp b/shaders/lightmap.cpp
index a599cfc9..3a2d339a 100644
--- a/shaders/lightmap.cpp
+++ b/shaders/lightmap.cpp
@@ -109,8 +109,8 @@ void lightmap_shader::add_light(Vector2i neighbor_offset, const light_s& light)
constexpr auto tile_size = TILE_SIZE2.sum()/2;
constexpr auto scale = 2/chunk_size;
- auto dist = std::fmax(0.f, light.dist * tile_size);
- auto dist_clip = dist * tile_size;
+ auto dist = std::fmax(0.f, light.dist/* * tile_size*/);
+ auto dist_clip = dist/* * tile_size*/;
auto center = light.center + chunk_offset + Vector2(neighbor_offset)*chunk_size;
auto center_clip = Vector2{center} * scale; // clip coordinate
constexpr auto image_size_factor = Vector2(image_size) / Vector2(chunk_size);
@@ -126,7 +126,10 @@ void lightmap_shader::add_light(Vector2i neighbor_offset, const light_s& light)
_count++;
- setUniform(ColorIntensityUniform, Vector4{Vector3{light.color}, dist});
+ float alpha = light.color.a() / 255.f;
+ auto color = Vector3{light.color.rgb()} / 255.f;
+
+ setUniform(ColorIntensityUniform, Vector4{Vector3{color} * alpha, dist});
setUniform(CenterUniform, center_fragcoord);
setUniform(FalloffUniform, (uint32_t)light.falloff);
setUniform(SizeUniform, chunk_size);
@@ -136,7 +139,7 @@ lightmap_shader::~lightmap_shader() = default;
void lightmap_shader::clear()
{
- framebuffer.fb.clearColor(0, Color4{1.f, 0.f, 1.f, 1.f});
+ framebuffer.fb.clearColor(0, Vector4ui{0});
//framebuffer.fb.clearDepth(0);
}