有兴趣的可以去官网:shadertoy官网 

流光特效代码:

// Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.  

CCEffect %{
  techniques:
  - passes:
    - vert: vs
      frag: fs
      blendState:
        targets:
        - blend: true
      rasterizerState:
        cullMode: none
      properties:
        texture: { value: white }
        alphaThreshold: { value: 0.5 }
}%


CCProgram vs %{
  precision highp float;

  #include <cc-global>
  #include <cc-local>

  in vec3 a_position;
  in vec4 a_color;
  out vec4 v_color;

  #if USE_TEXTURE
  in vec2 a_uv0;
  out vec2 v_uv0;
  #endif

  void main () {
    vec4 pos = vec4(a_position, 1);

    #if CC_USE_MODEL
    pos = cc_matViewProj * cc_matWorld * pos;
    #else
    pos = cc_matViewProj * pos;
    #endif

    #if USE_TEXTURE
    v_uv0 = a_uv0;
    #endif

    v_color = a_color;

    gl_Position = pos;
  }
}%


CCProgram fs %{
  precision highp float;
  
  #include <alpha-test>

  in vec4 v_color;

  in vec2 v_uv0;
  uniform sampler2D texture;

  #define ANGLE 60.0
  float startX = 0.0;
  float thresholdX = 0.08;
  float blur = 0.01;
  float posInterval = 0.02;
  uniform ARGS {
    vec2 iResolution;
    float time;
  }
  float colFactor(vec2 uv, float thresholdX, float blur){
      float intervalY = uv.y;
      float tempX = intervalY * cos(radians(ANGLE)) + startX;
      float intervalX = uv.x - tempX;
      // 在0.08 ~ 0.04平滑处理
      return smoothstep(thresholdX, thresholdX - blur, abs(intervalX));
  }
  void mainImage( out vec4 fragColor, in vec2 fragCoord ,vec2 res)
  {
      // Normalized pixel coordinates (from 0 to 1)
      vec2 uv = fragCoord/res.xy;
      startX = tan(time * 3.);
      // factor取值范围为0.04~0.08范围内
      float factor = colFactor(uv, thresholdX, blur);
      vec4 texColor = texture2D(texture,v_uv0);
      // 混合操作等价于 mix函数
      vec4 factorColor = factor * vec4(1.0, 1., 1., 1.0) + texColor * (1.0 - factor);
      fragColor = factorColor;
  }
  void main () {
    vec2 res = vec2(300.,300.);
    mainImage(gl_FragColor,v_uv0.xy * res.xy,res);
  }
}%

 

Logo

这里是一个专注于游戏开发的社区,我们致力于为广大游戏爱好者提供一个良好的学习和交流平台。我们的专区包含了各大流行引擎的技术博文,涵盖了从入门到进阶的各个阶段,无论你是初学者还是资深开发者,都能在这里找到适合自己的内容。除此之外,我们还会不定期举办游戏开发相关的活动,让大家更好地交流互动。加入我们,一起探索游戏开发的奥秘吧!

更多推荐