unity改变图片像素大小_类动森像素画反向转换 (xBR)
起因
前陣子沉迷動森,DIY 樣式的畫風真的超萌(゚д゚)ノ,恰巧在推上看到有個小姐姐在討論這個像素畫轉換的算法,就想在 Unity 里整整。
最后實現的鏡頭特效效果如下圖。
像素縮放算法
常見的像素縮放算法對比圖如下,摘自維基:
可以看到動森的 DIY pattern 的像素轉換效果和 xBR 系 (xBR4x)最相似。
相關原理就不贅述了,作者大大有教程,感興趣可以看看(不好意思我只是個么得求知欲的搬運工。
cg 源代碼在 github 上都有公開。這里我選擇了 xBR4x 進行搬運工作。
注意事項
cg 文件轉 shaderlab 文件只需要在 unity 著色器文件模板里復制粘貼加上 cg 代碼即可,幾乎無改動,但是需要手動加上 properties 等 shaderlab 文件必需內容。
注意 cg 文件中用到的包含文件也需要添加到 unity 項目中。
要取得最佳效果,所有圖片的 Filter Mode 需設置成 Point。
分辨率會受 camera 距離圖片距離、場景大小、像素畫大小影響,需要根據實際情況調試。
暫只支持 camera 后期渲染,不支持直接添加材質到 Gameobject,描邊有擴大化的問題。
工程文件
llapuras / XbrShader
https://github.com/llapuras/XbrShader
參考
pixel art scaling comparison· 內有大圖,可預覽幾種常用像素轉換算法的具體效果
https://www.unindented.org/blog/pixel-art-scaling-comparison-part-2/
相當齊全的 cg shader repo· 理論上這里的 shader 都能搬進 unity 里用
https://github.com/libretro/common-shaders
某試圖將 xbr 的 cg 轉 unity 的前人的帖子· 幫了大忙!
https://forum.unity.com/threads/how-to-copy-paste-a-cg-shader-found-on-the-internet-in-unity.334772/#post-2181555
image resizer· 一個圖片轉換工具,轉換算法相當齊全,就是版本太老,有報錯但是勉強能用
https://code.google.com/archive/p/2dimagefilter/downloads
總結
以上是生活随笔為你收集整理的unity改变图片像素大小_类动森像素画反向转换 (xBR)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用wxPython内嵌浏览器
- 下一篇: c语言程序设计的反思,C语言程序设计教学