OpenGLShader实例分析(7)雪花飘落效果-创新互联

研究了一个雪花飘落效果,感觉挺不错的,分享给大家,效果如下:

站在用户的角度思考问题,与客户深入沟通,找到运河网站设计与运河网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、网站设计、企业官网、英文网站、手机端网站、网站推广、申请域名虚拟主机、企业邮箱。业务覆盖运河地区。

代码如下:

Shader "shadertoy/Flakes" { // https://www.shadertoy.com/view/4d2Xzc
 Properties{
 iMouse ("Mouse Pos", Vector) = (100,100,0,0)
 iChannel0("iChannel0", 2D) = "white" {} 
 iChannelResolution0 ("iChannelResolution0", Vector) = (100,100,0,0)
 }
 
 CGINCLUDE 
 #include "UnityCG.cginc" 
 #pragma target 3.0 
 #pragma glsl
 
 #define vec2 float2
 #define vec3 float3
 #define vec4 float4
 #define mat2 float2x2
 #define iGlobalTime _Time.y
 #define mod fmod
 #define mix lerp
 #define atan atan2
 #define fract frac 
 #define texture2D tex2D
 // 屏幕的尺寸
 #define iResolution _ScreenParams
 // 屏幕中的坐标,以pixel为单位
 #define gl_FragCoord ((_iParam.srcPos.xy/_iParam.srcPos.w)*_ScreenParams.xy) 
 
 #define PI2 6.28318530718
 #define pi 3.14159265358979
 #define halfpi (pi * 0.5)
 #define oneoverpi (1.0 / pi)
 
 fixed4 iMouse;
 sampler2D iChannel0;
 fixed4 iChannelResolution0;
 
 struct v2f { 
  float4 pos : SV_POSITION; 
  float4 srcPos : TEXCOORD0; 
 };  
 
 // precision highp float;
 v2f vert(appdata_base v){ 
  v2f o;
  o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
  o.srcPos = ComputeScreenPos(o.pos); 
  return o; 
 } 
 
 vec4 main(v2f _iParam);
 
 fixed4 frag(v2f _iParam) : COLOR0 { 
 return main(_iParam);
 } 
 
 
 vec4 main(v2f _iParam) {
 vec2 p = gl_FragCoord.xy/iResolution.xy;
 vec3 col = vec3(0,0,0);
 float dd = 150;
 for( int i=0; i                
网站栏目:OpenGLShader实例分析(7)雪花飘落效果-创新互联
URL地址:http://azwzsj.com/article/ghdgj.html