在 Löve2D 中使用四边形关闭抗锯齿
Posted
技术标签:
【中文标题】在 Löve2D 中使用四边形关闭抗锯齿【英文标题】:Turning off antialiasing on zoom with quad in Löve2D 【发布时间】:2021-11-29 13:39:17 【问题描述】:我正在使用Löve2D 编写一个小游戏。 Löve2D 是 Lua 的开源游戏引擎。我遇到的问题是,当您在 integer 位置绘制时,某些抗锯齿过滤器会自动应用于您的精灵。
love.graphics.draw( texture, quad, x, y, r, sx, sy)
我的计划是:
-
将一个小图像切成 9 以适应 Quad。
放大它以适应 UI。
制作可变 UI。
我的头像是:full image
放大:5px green rectangle in 15px rounded rectangle
我的测试代码是:
function love.load()
sprite = love.graphics.newImage('image.png')
centerbox = love.graphics.newQuad(5, 5, 5, 5, sprite:getDimensions()
end
function love.draw()
love.graphics.draw(sprite, centerbox, 0, 0, 0, 30, 30)
我只想显示那个蓝色: x=5px, y=5px, w=5px, h=5px
结果: That's not fun 5是整数,30是整数,0是整数。
我的用户界面是: That's not cool
我怎样才能只获得我想要的像素? 我已经读过Turning off antialiasing in Löve2D。
【问题讨论】:
关闭filtering就足够了吗?或者你需要一个过滤器,但没有出血?无论如何,如果您使用四边形,则应使用边距,如 Koyaanisqatsi 发布的链接中所述。让事情变得更容易。 【参考方案1】:你必须阅读...https://love2d.org/wiki/Quad ...尤其是黄色的警报框。
【讨论】:
以上是关于在 Löve2D 中使用四边形关闭抗锯齿的主要内容,如果未能解决你的问题,请参考以下文章
在OpenGL中绘制到半透明帧缓冲区时如何抗锯齿? [复制]