这篇文章主要讲解了UnityShader3实现波浪效果的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
创新互联企业建站,十载网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于网站设计、成都网站设计中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。效果图:
1.首先,实现格子背景图
Shader "Custom/Curve" { Properties { _BackgroundColor ("BackgroundColor", Color) = (1, 1, 1, 1) _BackgroundColor2 ("BackgroundColor2", Color) = (0, 0, 0, 1) _Space ("Space", Range(0, 1)) = 0.2 _XOffset ("XOffset", Range(-1, 1)) = 0.15 _YOffset ("YOffset", Range(-1, 1)) = 0.05 } SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float4 vertex : SV_POSITION; float2 uv : TEXCOORD0; }; //格子背景 fixed4 _BackgroundColor; fixed4 _BackgroundColor2; fixed _Space; fixed _XOffset; fixed _YOffset; v2f vert (appdata v) { v2f o; o.vertex = mul(UNITY_MATRIX_MVP, v.vertex); o.uv = v.uv; return o; } fixed4 frag (v2f i) : SV_Target { //fmod(x, y):x/y的余数,和x有同样的符号 //step(a, x):如果x=a,返回1 //得到一个小于_Space的余数,即a的范围为[0, _Space) fixed a = fmod(i.uv.x + _XOffset, _Space); //有1/2概率返回0,有1/2概率返回1,从而形成间隔效果 a = step(0.5 * _Space, a); fixed b = fmod(i.uv.y + _YOffset, _Space); b = step(0.5 * _Space, b); return _BackgroundColor * a * b + _BackgroundColor2 * (1 - a * b); } ENDCG } } }
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。