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


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

       const app = new PIXI.Application({ transparent: true });
            document.body.appendChild(app.view);
    
            // Create background image
            const background = PIXI.Sprite.from('/moban/bg_grass.jpg');
            background.width = app.screen.width;
            background.height = app.screen.height;
            app.stage.addChild(background);
    
            // Stop application wait for load to finish
            app.stop();
    
            app.loader.add('shader', '/moban/shader.frag')
                .load(onLoaded);
    
            let filter;
    
            // Handle the load completed
            function onLoaded(loader, res) {
                // Create the new filter, arguments: (vertexShader, framentSource)
                filter = new PIXI.Filter(null, res.shader.data, {
                    customUniform: 0.0,
                });
    
                // === WARNING ===
                // specify uniforms in filter constructor
                // or set them BEFORE first use
                // filter.uniforms.customUniform = 0.0
    
                // Add the filter
                background.filters = [filter];
    
                // Resume application update
                app.start();
            }
             var i=0;
            // Animate the filter
            app.ticker.add((delta) => {
                i+=0.03;
                if(i>=1.9) {
                   i=1.9;
                }
                filter.uniforms.customUniform = i;
            });
    precision mediump float;
    
    varying vec2 vTextureCoord;
    varying vec4 vColor;
    
    uniform sampler2D uSampler;
    uniform float customUniform;
    
    
    float w = 0.2;
    void main(void)
    {
        
         vec2 uv = vTextureCoord;
        
        float g = 1.5;
        vec4 gamma = vec4(g, g, g, 1.0);
        
        vec4 color0 = pow(texture2D(uSampler, uv), gamma);
        vec4 color1 = vec4(0.,0.,0.,0.);
        
        float duration = 2.0;
        
        float t = mod(float(customUniform), duration) /  duration;
        
        float correction = mix(w, -w, t);
         //从左到右需要时间递增
        float choose = smoothstep(t  + w, t - w, uv.x + correction); // clamped ramp
        //从上到下需要时间递增
        // float choose = smoothstep(t  + w, t - w, uv.y + correction); // clamped ramp
        //从下到上 需要时间递减
        // float choose = smoothstep(t  - w, t + w, uv.y + correction); // clamped ramp     
        
        gl_FragColor = mix(color1, color0, choose); // lerp
    
    
    }

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

  • 相关阅读:
    Dictionary-Guided Editing Networks for Paraphrase Generation解读
    CGMH:Constrained Sentence Generation by Metropolis-Hastings Sampling解读
    Text Infilling解读
    K-MEANS算法
    SVM-支持向量机算法
    003-文本分析
    002-贝叶斯拼写纠正实例
    001-贝叶斯算法简介
    【矩阵的乘积/复合变换】- 图解线性代数 05
    【行列式】- 图解线性代数 04
  • 原文地址:https://www.cnblogs.com/newmiracle/p/11895790.html
Copyright © 2020-2023  润新知