[Gamemaker] 简单模糊库 - Kawase

Author Avatar
空気浮遊 2023年01月13日
  • 在其它设备中阅读本文章

没有文档就简单记录一下 Kawase Blur 的用法。

简介

项目地址:https://github.com/JujuAdams/Kawase

替代高斯模糊的 Kawase 算法。以有优势的效率实现差不多的效果。

用法

安装库。

创建一个 Kawase 数组。第三个参数是最大迭代次数,应该会影响结果的质量。

kawaseArr = kawase_create(w, h, max_iterations);

获取这个数组的 surface 。

surf = kawase_get_surface(kawaseArr);

在上面画画。

surface_set_target(surf);
   ...
surface_reset_target();

让它模糊。

kawase_blur(kawaseArr);

把这个 surf 再画出来就行。

draw_surface(surf, x, y);

用 kawase_destroy(kawaseArr) 来清理 kawase 数组占用的内存(里面包含了数个 surface)。

已知 BUG

设定的宽度和高度不能太大。否则可能会触发 surface 相关的 bug。

最后

我在 DyNode 的项目里用了这个库。效果和效率都不错。

可以说 JujuAdams 开发的库是我留在 GM 的唯一理由了吧...