提高屏幕模糊性能(电晕SDK)



我的游戏是使用 Corona 编写的,正在为 iOS 和 Android 编译我通过以下方式创建了屏幕模糊效果:

  • 在iOS和Android中添加了两个本机函数,它们接收文件路径作为参数,并将模糊效果应用于图像并将其保存回去
  • 在电晕中,首先我使用display.save(...)将我的主屏幕组保存到图像中
  • 调用本机函数来模糊图像
  • 显示模糊的图像

一切正常,但我在 Android 中遇到了性能问题:两个操作保存和模糊需要很长时间。我的想法是持久性取决于图像大小,但我不知道如何使用 display.save() 保存特定大小的图像

也许您可以做的是在最初加载游戏时模糊所有可用的图像?这样您就不必在执行过程中在旅途中模糊?始终保持图像的正常版本+模糊版本。

更好的是,使用与游戏不同的脚本将模糊效果应用于图像并保存,在游戏中,您甚至不必在加载时模糊。

也许你可以缩放你的显示对象(xScale,yScale),使用display.captureBounds()并将模糊的图像重新缩放到原始图像。

或者将屏幕划分为网格,并将模糊应用于网格的每个部分。

好的,解决方案是通过以下方式执行此操作:

local screenCap = display.captireScreen(false)
screen:scale(.5,.5)
display.save(screenCap, "screenCap.png", system.CachesDirectory)
screenCap:removeSelf()

性能问题仅在Android设备上发生,因此可能需要先检查我们是否在Android上运行。

最新更新