在Löve2D中关闭抗锯齿功能

时间:2009-08-13 13:26:55

标签: graphics lua love2d

我正在使用Löve2D来编写一个小游戏。 Löve2D是Lua的开源游戏引擎。我遇到的问题是,当你在非整数位置绘制精灵时,会自动将一些抗锯齿滤镜应用于你的精灵。

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

因此,当x或y不是圆形时(例如,x = 100.24),精灵会显得模糊。当精灵大小不均匀时会发生同样的情况,因为(x,y)指向精灵的中心。例如,一个31x30大的精灵会再次出现模糊,因为它的像素被绘制成非整数位置。

由于我正在使用像素艺术,我想要一直避免这种情况,否则艺术会被这种效果所破坏。到目前为止,我使用的解决方法是通过调用math.floor()来强制使用代码,并通过向paint程序添加一行或一列透明像素来强制所有精灵具有偶数大小,从而强制坐标为圆形,如果需要的话。

是否有一些命令可以在程序启动时停用我可以调用的抗锯齿功能?

3 个答案:

答案 0 :(得分:4)

如果您关闭抗锯齿,您将获得别名,因此得名!你为什么要在不完整的位置上画画,你想对那些小部分做些什么呢? (将它们四舍五入到最接近的值?截断它们?如果它们是负数怎么办?)

就个人而言,我会单独保留低级图形并更改代码以使用x和y的访问器来执行所需的舍入或截断。这可以保证您的像素艺术最终在整数边界上绘制,同时保持您在以后可能需要的抗锯齿。

答案 1 :(得分:3)

另一种可能的解决方法是使用math.floor()将整数作为一种廉价的解决方法。

答案 2 :(得分:2)

如果有人有兴趣,我一直在其他地方询问并发现我要求的内容已被要求作为功能:http://love2d.org/forum/tracker.php?p=2&t=7

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