【问题标题】:Fourier transformation to apply Gaussian Blur unity应用高斯模糊统一的傅里叶变换
【发布时间】:2015-12-03 00:13:10
【问题描述】:

我想模糊整个屏幕。 我的第一次尝试是使用自定义着色器和内核卷积。但这当然会导致大量丢帧。 我的第二次尝试是使用傅立叶变换。因此,我的计划是使用“OnRenderImage”函数从 RenderTexture 源获取图像,然后进行转换然后保存回来。

void OnRenderImage (RenderTexture source, RenderTexture destination){}

但这意味着,据我所知,将图像从显卡内存复制到 RAM,应用转换,然后将其复制回来。

这真的是最好的方法还是我应该尝试其他方法。

最好的祝愿和感谢

【问题讨论】:

    标签: unity3d shader


    【解决方案1】:

    Unity 在标准资产包中内置了模糊效果,这可能是最好的方法: http://docs.unity3d.com/Manual/script-BlurOptimized.html

    要使用它,只需导入效果标准资产包,并将模糊脚本添加到您的相机。

    在幕后,它实际上将使用OnRenderImage,但它确实意味着将图像从图形内存复制到 RAM,应用转换然后将其复制回来。

    RenderTexture 对象表示位于显卡内存中的纹理。您不会将像素复制到 RAM 以对其进行操作。相反,它的操作是通过基于着色器的过滤器在 GPU 中完成的,即Graphics.Blit(source, destination, someEffectMaterial);

    查看有关后处理效果的更多信息: http://docs.unity3d.com/Manual/comp-ImageEffects.html

    【讨论】:

      猜你喜欢
      • 2014-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多