pixijs shader fade 从左到有右淡入     从下到上淡入效果

  1. const app = new PIXI.Application({ transparent: true });
  2. document.body.appendChild(app.view);
  3.  
  4. // Create background image
  5. const background = PIXI.Sprite.from('/moban/bg_grass.jpg');
  6. background.width = app.screen.width;
  7. background.height = app.screen.height;
  8. app.stage.addChild(background);
  9.  
  10. // Stop application wait for load to finish
  11. app.stop();
  12.  
  13. app.loader.add('shader', '/moban/shader.frag')
  14. .load(onLoaded);
  15.  
  16. let filter;
  17.  
  18. // Handle the load completed
  19. function onLoaded(loader, res) {
  20. // Create the new filter, arguments: (vertexShader, framentSource)
  21. filter = new PIXI.Filter(null, res.shader.data, {
  22. customUniform: 0.0,
  23. });
  24.  
  25. // === WARNING ===
  26. // specify uniforms in filter constructor
  27. // or set them BEFORE first use
  28. // filter.uniforms.customUniform = 0.0
  29.  
  30. // Add the filter
  31. background.filters = [filter];
  32.  
  33. // Resume application update
  34. app.start();
  35. }
  36. var i=;
  37. // Animate the filter
  38. app.ticker.add((delta) => {
  39. i+=0.03;
  40. if(i>=1.9) {
  41. i=1.9;
  42. }
  43. filter.uniforms.customUniform = i;
  44. });
  1. precision mediump float;
  2.  
  3. varying vec2 vTextureCoord;
  4. varying vec4 vColor;
  5.  
  6. uniform sampler2D uSampler;
  7. uniform float customUniform;
  8.  
  9. float w = 0.2;
  10. void main(void)
  11. {
  12.  
  13. vec2 uv = vTextureCoord;
  14.  
  15. float g = 1.5;
  16. vec4 gamma = vec4(g, g, g, 1.0);
  17.  
  18. vec4 color0 = pow(texture2D(uSampler, uv), gamma);
  19. vec4 color1 = vec4(.,.,.,.);
  20.  
  21. float duration = 2.0;
  22.  
  23. float t = mod(float(customUniform), duration) / duration;
  24.  
  25. float correction = mix(w, -w, t);
  26. //从左到右需要时间递增
  27. float choose = smoothstep(t + w, t - w, uv.x + correction); // clamped ramp
  28. //从上到下需要时间递增
  29. // float choose = smoothstep(t + w, t - w, uv.y + correction); // clamped ramp
  30. //从下到上 需要时间递减
  31. // float choose = smoothstep(t - w, t + w, uv.y + correction); // clamped ramp
  32.  
  33. gl_FragColor = mix(color1, color0, choose); // lerp
  34.  
  35. }

上面代码 算法  也可以学习下

pixijs shader fade 从左到有右淡入 从下到上淡入效果的更多相关文章

  1. [iOS]技巧集锦:UITableView自定义Cell中的控件无法完全对齐Cell的左边界和右边界

    这是个很诡异的问题,由于一些特殊需求,我的TableView的Cell的背景色是透明,其中的控件会有背景色,第一个控件和最后一个控件我都用IB自动设了约束,对齐Cell的左边界和右边界,但是自动约束很 ...

  2. c++左值和右值

    c++编程中如果出现把一个函数的返回值.强行转化后的对象 作为函数的参数传进去时,编译器会报错的情况.这时候就该注意了,你需要把该函数的参数类型前加上const修饰. 原因在于c++的左值和右值有所区 ...

  3. Oracle 左连接、右连接、全外连接、(+)号作用

    分类: Oracle Oracle  外连接 (1)左外连接 (左边的表不加限制)       (2)右外连接(右边的表不加限制)       (3)全外连接(左右两表都不加限制) 外连接(Outer ...

  4. 【转】C#中如何实现左截取和右截取字符串

    使用C#语法编写程序时,我们需要截取一个字符串左边或右边的若干个字符,该如何操作呢?在VB中可以使用left或right函数实现,C#中没有提供这样的函数呢?答案是没有.但是,C#中提供Substri ...

  5. c++ 左值 和 右值

    什么是lvalue, 什么是rvalue? lvalue: 具有存储性质的对象,即lvalue对象,是指要实际占用内存空间.有内存地址的那些实体对象,例如:变量(variables).函数.函数指针等 ...

  6. C++中的左值与右值(二)

    以前以为自己把左值和右值已经弄清楚了,果然发现自己还是太年轻了,下面的这些东西是自己通过在网上拾人牙慧,加上自己的理解写的. 1. 2. 怎么区分左值和右值:知乎大神@顾露的回答. 3. 我们不能直接 ...

  7. SQL Server中的连接查询【内连接,左连接,右连接,。。。】

    在查询多个表时,我们经常会用“连接查询”.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 什么是连接查询呢? 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据 ...

  8. sql左连接,右连接,内连接

    1.sql查询时什么叫左连接和右连接    左连接和右连接都是外部连接,也就是区别于内部连接,它对不满足连接条件的行并不是象内部连接一样将数据完全过滤掉,而是保留一部分数据,行数不会减少.    左或 ...

  9. pageControl设置不居中显示,居左或居右

    UIPageControl控件,默认是居中显示的,如下图: 在很多的APP中,会看到pageControl是居左或居右显示的,如下图:   如何控制pageControl的位置显示呢? 设置为居右的代 ...

随机推荐

  1. dnf & yum

    CentOS8 配置软件源 在 CentOS8 中.使用了基于DNF技术(YUM v4)的 YUM 工具. YUM v4 与之前在 CentOS7 上使用的 YUM v3 相比具有以下优点: 提高性能 ...

  2. element-ui 中Switch的用法

    在element-ui中,如果你想知道Switch是开还是关,使用事件 @change="getchange(value2)" 它会输出true或者false.true代表的是开, ...

  3. [C]副作用和序列点

    概述 副作用: <C语言核心技术>对副作用的描述: 表达式内包含了一串的常量.标识符.运算符(指示的运算方式).表达式的目的可以是获得结果值,或者得到运算的副作用(side effect) ...

  4. js 运算的内置函数

    // 一.Math.round()作用:四舍五入返回整数.(返回参数+0.5后,向下取整) // Math.round(5.57) //返回6 // Math.round(2.4) //返回2 // ...

  5. javascript es6 Promise 异步同步的写法(史上最简单的教程了)

    1 来个简单的例子 var p = new Promise(function(resolve, reject){ //做一些异步操作 setTimeout(function(){ console.lo ...

  6. BootStrap 关于input与btn的点击focus取消特效相关css

    取消btn按钮点击出现的外边框: .btn:focus, /*清除btn按钮点击出现的边框*/.btn:active:focus,.btn.active:focus,.btn.focus,.btn:a ...

  7. Redis 数据类型及应用场景

    一. redis 特点 所有数据存储在内存中,高速读写 提供丰富多样的数据类型:string. hash. set. sorted set.bitmap.hyperloglog 提供了 AOF 和 R ...

  8. sqlmap总结

    转自:http://www.zerokeeper.com/web-security/sqlmap-usage-summary.html 0x01 需要了解 当给 sqlmap 这么一个 url 的时候 ...

  9. ENDIAN的由来及BIG-EDIAN 和LITTLE-ENDIAN(转)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/kingmax54212008/arti ...

  10. TP5 查询mysql数据库时的find_in_set用法

    $where['class_id'] = ['in', '$cid_all']; $where['id'] = ['in', $all_user_id];//或这样子 $where['title'] ...