Unity上对于图像的处理,假设单纯使用代码。那么非常遗憾,程序基本会跑死,毕竟是直接对像素的操作,读取写入都是比較耗费CPU和内存的。
所以。这次由于项目须要想实现类似哈哈镜的效果。想来想去,还是认为用unity的Shader比較好,毕竟不须要CPU做什么,仅仅用GPU就能够了。
话说GPU也是非常强大的。
以下简单说一下Shader(事实上我也是新手,学习的话,參考http://blog.csdn.net/poem_qianmo/article/details/40723789
)这是位大牛,我的一些基础知识是在里面学习的。
这次我是来分享几个Shader的,对于详细的内容原理什么的,我就不讲了。也讲不来,仅仅能大致说一下。我也在学习。
1、哈哈镜效果(放大)
以下是解释,将就着看一下
编译无误的话。我们看一下在Unity中的效果
新建一个Plane,导入一张图片。然后拖到Plane上面,在选择我们刚才创建的Shader
能够看到,以下的三个參数就是我们创建的在Propertes里面。随便挑以下參数。以下是效果
好吧,糟蹋了美女。。
。
算法是我从Java里面改过来的,细节就不要问我了。我是代码搬运工。。
2、哈哈镜缩小模式
我直接上代码咯,由于基本没有变什么
看看效果(事实上第二个还蛮可爱的)
3、再来个对称的
看效果
额,这妹子即使对称了。看着还是挺好看(花痴ing)附上原图
临时就这么多吧,还有其它特效,以后慢慢更新