起因
前阵子沉迷动森,DIY样式的画风真的超萌(゚д゚)ノ,恰巧在推上看到有个小姐姐在讨论这个像素画转换的算法,就想在Unity里整整。
最后实现的镜头特效效果如下图。
像素缩放算法
常见的像素缩放算法对比图如下,摘自维基:
可以看到动森的DIY pattern的像素转换效果和xBR系(xBR4x)最相似。
相关原理就不赘述了,作者大大有教程,感兴趣可以看看(不好意思我只是个么得求知欲的搬运工。
cg源代码在github上都有公开。这里我选择了xBR4x进行搬运工作。
注意事项
- cg文件转shaderlab文件只需要在unity着色器文件模板里复制粘贴加上cg代码即可,几乎无改动,但是需要手动加上properties等shaderlab文件必需内容。
- 注意cg文件中用到的包含文件也需要添加到unity项目中。
- 要取得最佳效果,所有图片的Filter Mode需设置成Point。
- 分辨率会受camera距离图片距离、场景大小、像素画大小影响,需要根据实际情况调试。
- 暂只支持camera后期渲染,不支持直接添加材质到Gameobject,描边有扩大化的问题。
工程文件
llapuras / XbrShadergithub.com
参考
- pixel art scaling comparison·内有大图,可预览几种常用像素转换算法的具体效果
- 相当齐全的cg shader repo·理论上这里的shader都能搬进unity里用
- 某试图将xbr的cg转unity的前人的帖子·帮了大忙!
- image resizer·一个图片转换工具,转换算法相当齐全,就是版本太老,有报错但是勉强能用
暂无关于此日志的评论。