temporary enshittification of the rendering
This commit is contained in:
parent
0c1332afb3
commit
24cda32e81
@ -56,6 +56,27 @@ function sprite:draw()
|
|||||||
function(map)
|
function(map)
|
||||||
local ppm = Tree.level.camera.pixelsPerMeter
|
local ppm = Tree.level.camera.pixelsPerMeter
|
||||||
local position = map.displayedPosition + Vec3 { 0.5, 0.5 }
|
local position = map.displayedPosition + Vec3 { 0.5, 0.5 }
|
||||||
|
|
||||||
|
Tree.level.camera:detach()
|
||||||
|
|
||||||
|
love.graphics.push()
|
||||||
|
love.graphics.scale(ppm)
|
||||||
|
love.graphics.setCanvas(Tree.level.render.shadowLayer)
|
||||||
|
love.graphics.setColor(0, 0, 0, 0.5)
|
||||||
|
love.graphics.translate(position.x, position.y)
|
||||||
|
love.graphics.ellipse("fill", 0, 0, 0.2, 0.2 * math.cos(math.pi / 4))
|
||||||
|
|
||||||
|
love.graphics.rotate(math.pi / 4)
|
||||||
|
|
||||||
|
self.animationTable[self.state]:draw(Tree.assets.files.sprites.character[self.state],
|
||||||
|
0,
|
||||||
|
0, nil, 1 / ppm * self.side, 1.2 / ppm, 38, 47)
|
||||||
|
love.graphics.pop()
|
||||||
|
|
||||||
|
Tree.level.camera:attach()
|
||||||
|
|
||||||
|
love.graphics.setCanvas(Tree.level.render.spriteLayer)
|
||||||
|
love.graphics.setColor(1, 1, 1)
|
||||||
if Tree.level.selector.id == self.owner.id then
|
if Tree.level.selector.id == self.owner.id then
|
||||||
local texW, texH = Tree.assets.files.sprites.character[self.state]:getWidth(),
|
local texW, texH = Tree.assets.files.sprites.character[self.state]:getWidth(),
|
||||||
Tree.assets.files.sprites.character[self.state]:getHeight()
|
Tree.assets.files.sprites.character[self.state]:getHeight()
|
||||||
@ -64,21 +85,6 @@ function sprite:draw()
|
|||||||
shader:send("time", love.timer:getTime())
|
shader:send("time", love.timer:getTime())
|
||||||
love.graphics.setShader(shader)
|
love.graphics.setShader(shader)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
love.graphics.setCanvas(Tree.level.render.shadowLayer)
|
|
||||||
love.graphics.setColor(0, 0, 0, 0.5)
|
|
||||||
love.graphics.ellipse("fill", position.x, position.y, 0.2, 0.2 * math.cos(math.pi / 4))
|
|
||||||
local mesh = makeGradientMesh(0.4, 1.5, { 0, 0, 0, 0.5 }, { 0, 0, 0, 0 })
|
|
||||||
love.graphics.push()
|
|
||||||
love.graphics.translate(position.x, position.y)
|
|
||||||
love.graphics.rotate(love.timer.getTime())
|
|
||||||
love.graphics.translate(-0.2, 0)
|
|
||||||
love.graphics.draw(mesh)
|
|
||||||
love.graphics.pop()
|
|
||||||
|
|
||||||
love.graphics.setCanvas(Tree.level.render.spriteLayer)
|
|
||||||
love.graphics.setColor(1, 1, 1)
|
|
||||||
self.animationTable[self.state]:draw(Tree.assets.files.sprites.character[self.state],
|
self.animationTable[self.state]:draw(Tree.assets.files.sprites.character[self.state],
|
||||||
position.x,
|
position.x,
|
||||||
position.y, nil, 1 / ppm * self.side, 1 / ppm, 38, 47)
|
position.y, nil, 1 / ppm * self.side, 1 / ppm, 38, 47)
|
||||||
|
|||||||
@ -48,6 +48,8 @@ function level:draw()
|
|||||||
self.characterGrid.yOrderQueue:pop():draw()
|
self.characterGrid.yOrderQueue:pop():draw()
|
||||||
end
|
end
|
||||||
self.camera:detach()
|
self.camera:detach()
|
||||||
|
--self.render.shadowLayer:newImageData():encode("png", "shadowLayer.png")
|
||||||
|
-- os.exit(0)
|
||||||
|
|
||||||
self.render:draw()
|
self.render:draw()
|
||||||
end
|
end
|
||||||
|
|||||||
@ -19,33 +19,45 @@ end
|
|||||||
|
|
||||||
local function applyBlur(input, radius)
|
local function applyBlur(input, radius)
|
||||||
local blurShader = Tree.assets.files.shaders.blur
|
local blurShader = Tree.assets.files.shaders.blur
|
||||||
local tmp = love.graphics.newCanvas(1280, 720)
|
local tmp1 = love.graphics.newCanvas(1280, 720)
|
||||||
|
local tmp2 = love.graphics.newCanvas(1280, 720)
|
||||||
|
|
||||||
-- Горизонтальный проход
|
-- Горизонтальный проход
|
||||||
blurShader:send("direction", { 1.0, 0.0 })
|
blurShader:send("direction", { 1.0, 0.0 })
|
||||||
blurShader:send("radius", radius)
|
blurShader:send("radius", radius)
|
||||||
|
|
||||||
tmp:renderTo(function()
|
tmp1:renderTo(function()
|
||||||
love.graphics.setShader(blurShader)
|
love.graphics.setShader(blurShader)
|
||||||
love.graphics.draw(input)
|
love.graphics.draw(input)
|
||||||
love.graphics.setShader()
|
love.graphics.setShader()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Вертикальный проход
|
-- Вертикальный проход
|
||||||
love.graphics.setShader(blurShader)
|
tmp2:renderTo(
|
||||||
blurShader:send("direction", { 0.0, 1.0 })
|
function()
|
||||||
love.graphics.draw(tmp)
|
love.graphics.setShader(blurShader)
|
||||||
love.graphics.setShader()
|
blurShader:send("direction", { 0.0, 1.0 })
|
||||||
|
love.graphics.draw(tmp1)
|
||||||
|
love.graphics.setShader()
|
||||||
|
end
|
||||||
|
)
|
||||||
|
return tmp2
|
||||||
end
|
end
|
||||||
|
|
||||||
function render:draw()
|
function render:draw()
|
||||||
-- пол -> тени -> спрайты -> оверлей
|
-- пол -> тени -> спрайты -> оверлей
|
||||||
love.graphics.draw(self.floorLayer)
|
love.graphics.draw(self.floorLayer)
|
||||||
|
love.graphics.push()
|
||||||
|
|
||||||
applyBlur(self.shadowLayer, 10)
|
local blurred = applyBlur(self.shadowLayer, 2)
|
||||||
-- love.graphics.draw(self.shadowLayer)
|
local wc, hc = love.graphics.getWidth() / 2, love.graphics.getHeight() / 2
|
||||||
love.graphics.setShader()
|
love.graphics.translate(wc, hc)
|
||||||
|
|
||||||
|
love.graphics.scale(Tree.level.camera.scale, Tree.level.camera.scale)
|
||||||
|
love.graphics.translate(-Tree.level.camera.position.x * Tree.level.camera.pixelsPerMeter,
|
||||||
|
-Tree.level.camera.position.y * Tree.level.camera.pixelsPerMeter)
|
||||||
|
love.graphics.draw(blurred)
|
||||||
|
love.graphics.pop()
|
||||||
love.graphics.draw(self.spriteLayer)
|
love.graphics.draw(self.spriteLayer)
|
||||||
|
|
||||||
love.graphics.draw(self.overlayLayer)
|
love.graphics.draw(self.overlayLayer)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user