【问题标题】:Improve screen blurring performance(Corona SDK)提升画面虚化性能(Corona SDK)
【发布时间】:2013-11-06 13:05:45
【问题描述】:

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

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

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

【问题讨论】:

    标签: java android ios coronasdk


    【解决方案1】:

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

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

    【讨论】:

    • 我试图模糊整个屏幕,所以我必须将图像保存到当前可见的屏幕区域,这是动态的,无法准备
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      好的,解决方法如下:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-09
        • 2016-04-05
        • 1970-01-01
        相关资源
        最近更新 更多