【问题标题】:Turning off antialiasing in Löve2D在 Löve2D 中关闭抗锯齿
【发布时间】:2010-11-19 07:21:27
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 对于任何希望通过love.graphics.line(..)love.graphics.circle(..) 等渲染基本几何图形而不进行平滑处理的人,您需要在这些之前调用love.graphics.setLineStyle('rough')。这让我难过了好一阵子..

标签: graphics lua love2d


【解决方案1】:

如果你关闭抗锯齿,你只会得到锯齿,因此得名!你为什么要在非整数位置绘图,你希望它对那些小数部分做什么? (将它们四舍五入到最接近的值?截断它们?如果它们是负数怎么办?)

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 我会考虑将此答案(或其他答案之一)标记为正确答案,以便访问该问题的人更容易看到它:)
      猜你喜欢
      • 2021-11-29
      • 1970-01-01
      • 2014-02-18
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 2011-07-05
      相关资源
      最近更新 更多