fix light blending

This commit is contained in:
PeaAshMeter 2026-04-13 01:47:28 +03:00
parent f3d5f82382
commit 36271b447c
2 changed files with 6 additions and 5 deletions

View File

@ -1,13 +1,13 @@
local task = require "lib.utils.task" local task = require "lib.utils.task"
--- @class LightBehavior : Behavior --- @class LightBehavior : Behavior
--- @field intensity number --- @field intensity number
--- @field color Vec3 --- @field color Vec3
--- @field seed integer --- @field seed integer
--- @field private animateColorTask? Task --- @field private animateColorTask? Task
local behavior = {} local behavior = {}
behavior.__index = behavior behavior.__index = behavior
behavior.id = "light" behavior.id = "light"
---@param values {intensity: number?, color: Vec3?, seed: integer?} ---@param values {intensity: number?, color: Vec3?, seed: integer?}
---@return LightBehavior ---@return LightBehavior
@ -32,6 +32,7 @@ function behavior:draw()
local positioned = self.owner:has(Tree.behaviors.positioned) local positioned = self.owner:has(Tree.behaviors.positioned)
if not positioned then return end if not positioned then return end
love.graphics.setBlendMode("add", "premultiplied")
Tree.level.camera:attach() Tree.level.camera:attach()
love.graphics.setCanvas(Tree.level.render.textures.lightLayer) love.graphics.setCanvas(Tree.level.render.textures.lightLayer)
local shader = Tree.assets.files.shaders.light local shader = Tree.assets.files.shaders.light

View File

@ -33,7 +33,7 @@ local function new(type, template)
camera = (require "lib.level.camera").new(), camera = (require "lib.level.camera").new(),
turnOrder = (require "lib.level.turn_order").new(), turnOrder = (require "lib.level.turn_order").new(),
render = (require "lib.level.render").new {}, render = (require "lib.level.render").new {},
weather = (require "lib.level.weather").new { ambientLight = Vec3 { 0.36, 0.42, 0.6 }, skyLight = Vec3 {} } weather = (require "lib.level.weather").new { ambientLight = Vec3 { 0.5, 0.5, 0.5 }, skyLight = Vec3 { 0.85, 0.55, 0.40 } }
}, level) }, level)
end end