Unity模拟ShaderToy的默认Shader
2016-09-25 17:42
218 查看
前言
最近发现ShaderToy是个大神们经常出没的地方,经常看到很神奇的效果,一阵阵感慨!因为我所用的引擎是Unity3D,所以很想把上面好的效果移植到Unity中来。于是一时兴起开起了博客用于记录自己利用这种方法学习的过程与总结,同时也与大家一起分享一起进步。
ShaderToy
在ShaderToy网站上新建一个Shader时默认是这个样子的:void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 uv = fragCoord.xy / iResolution.xy; fragColor = vec4(uv,0.5+0.5*sin(iGlobalTime),1.0); }效果是这样的(这里只是其中一帧的静态图,大家可以去官网去看动态效果):
mainImage函数就是计算每个像素的彩色图像是如何生成的,这个函数在每个像素上将被调用一次。
fragCrood是指屏幕的UV坐标,fragColor就是最终的输出颜色。
Unity
接下来我们来尝试在unity中来建立一个和上面效果一样的默认Shader。由于ShaderToy上的大部分都是针对屏幕特效,所以我们在unity新建时选择Image Effect Shader。
片断着色器内容:
fixed4 frag (v2f i) : SV_Target { <span style="white-space:pre"> </span>fixed4 finalColor=fixed4(i.uv,0.5+0.5*sin(_Time.y),1); <span style="white-space:pre"> </span>return finalColor; }OK,收工。
最后
虽然这个效果一般般,也并没有可以用到的地方,但是通过这次的移植还是学到了一些知识,所以再接再励,希望自己能坚持接。相关文章推荐
- unity实现多点触控代码
- 在Unity中实现动画的正反播放代码
- Unity UGUI教程之实现滑页效果
- unity实现摄像头跟随
- 彻底理解数字图像处理中的卷积-以Sobel算子为例
- Unity3D上路_01-2D太空射击游戏
- Unity3D上路_02-第一视角射击游戏
- Unity3D上路_03-塔防游戏
- Unity3D上路_04-基础资源介绍
- Unity3D上路_05-网络相关
- Unity3D-5.3.5发布VR项目到Android
- unity 新UI草稿
- [软件资讯]Unity已支持将3D游戏导出成Flash
- ShaderLab: Pass
- Unity 武器拖尾效果
- unity常见问题之20题
- Unity3D与JavaWeb服务器传递数据和文件 ---建立Java服务器
- 反编译ARB program to GLSL shader日记
- unity动态加载资源并缓存到本地
- Unity3D动画存储插件