在Löve2D中关闭反锯齿。

我正在使用Löve2D来写一个小游戏。Löve2D是一个用于Lua的开源游戏引擎。

问题在于,当你在非整数位置绘制精灵时,某些抗锯齿滤镜会自动应用于它。

love.graphics.draw( sprite, x, y )

因此,当x或y不是整数时(例如,x = 100.24),精灵将呈现模糊效果。当精灵尺寸不均匀时也会出现相同的情况,因为(x,y)指向精灵的中心。例如,一个大小为31x30的精灵将再次变得模糊,因为它的像素是在非整数位置绘制的。

由于我在使用像素美术,所以我想要完全避免这种情况,否则这种效果会破坏艺术效果。到目前为止,我使用的解决方法是在代码中使用math.floor()强制坐标四舍五入,并使用绘图程序添加一行或一列透明像素,以确保所有精灵的尺寸均为偶数。

是否有一些命令可以在程序启动时停用抗锯齿效果呢?

原文链接 https://stackoverflow.com/questions/1271937

点赞
stackoverflow用户28875
stackoverflow用户28875

如果你关闭抗锯齿,你会发现出现图形走样,这就是为什么它叫这个名字的原因!你为什么要绘制非整数位置的图形,你想对这些分数部分做些什么呢?(将它们舍入到最接近的值?将它们截断?如果它们为负数呢?)

个人建议保留低级别的图形,并改变你的代码,使用访问器来处理x和y坐标,以执行你所需的舍入或截断操作。这可以保证你的像素艺术绘制在整数边界上,同时保持你可能需要的抗锯齿特性。

2009-08-13 14:18:29
stackoverflow用户2950
stackoverflow用户2950

如果有人感兴趣,我已经在其他地方询问过,并发现我正在请求的功能已经被请求了:http://love2d.org/forum/tracker.php?p=2&t=7

因此,我正在使用的当前版本的 LÖVE(0.5.0)仍然不允许禁用抗锯齿滤镜,但该功能已经在引擎的 SVN 版本中实现。

2009-08-13 17:31:47
stackoverflow用户88888888
stackoverflow用户88888888

另一种可能的解决方法是使用 math.floor() 来取整你的整数作为一种简单的解决方案。

2010-03-04 17:59:36
stackoverflow用户17783369
stackoverflow用户17783369

你可以通过在 love.load() 中添加 love.graphics.setDefaultFilter("nearest", "nearest", 1) 来关闭抗锯齿。

2022-05-01 16:39:59