类动森像素画反向转换 (xBR)

作者:阿尔
2020-06-17
11 12 0

起因

前阵子沉迷动森,DIY 样式的画风真的超萌(゚д゚)ノ,恰巧在推上看到有个小姐姐在讨论这个像素画转换的算法,就想在 Unity 里整整。

最后实现的镜头特效效果如下图。像素画转非像素画

像素缩放算法

常见的像素缩放算法对比图如下,摘自维基:

像素缩放算法对比

可以看到动森的 DIY pattern 的像素转换效果和 xBR 系 (xBR4x)最相似。

相关原理就不赘述了,作者大大有教程,感兴趣可以看看(不好意思我只是个么得求知欲的搬运工。

cg 源代码在 github 上都有公开。这里我选择了 xBR4x 进行搬运工作。

注意事项

  1. cg 文件转 shaderlab 文件只需要在 unity 着色器文件模板里复制粘贴加上 cg 代码即可,几乎无改动,但是需要手动加上 properties 等 shaderlab 文件必需内容。
  2. 注意 cg 文件中用到的包含文件也需要添加到 unity 项目中。
  3. 要取得最佳效果,所有图片的 Filter Mode 需设置成 Point。
  4. 分辨率会受 camera 距离图片距离、场景大小、像素画大小影响,需要根据实际情况调试。
  5. 暂只支持 camera 后期渲染,不支持直接添加材质到 Gameobject,描边有扩大化的问题。

描边会扩大化,暂未解决

工程文件

llapuras / XbrShader

Github

参考

  1. pixel art scaling comparison· 内有大图,可预览几种常用像素转换算法的具体效果
  2. 相当齐全的 cg shader repo· 理论上这里的 shader 都能搬进 unity 里用
  3. 某试图将 xbr 的 cg 转 unity 的前人的帖子· 帮了大忙!
  4. image resizer· 一个图片转换工具,转换算法相当齐全,就是版本太老,有报错但是勉强能用

本文为用户投稿,不代表 indienova 观点。

近期点赞的会员

 分享这篇文章

阿尔 

将将毕业的魔药学徒。 

您可能还会对这些文章感兴趣

参与此文章的讨论

暂无关于此文章的评论。

您需要登录或者注册后才能发表评论

登录/注册