pixijs shader 制作百叶窗效果

Posted newmiracle宇宙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pixijs shader 制作百叶窗效果相关的知识,希望对你有一定的参考价值。

pixijs shader 制作百叶窗效果

直接贴代码了

    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;
         
            filter.uniforms.customUniform = i;
        });
    })
precision mediump float;

varying vec2 vTextureCoord;
varying vec4 vColor;

uniform sampler2D uSampler;
uniform float customUniform;



void main(void)
{
    
   float lineWidth=0.1;
   float modPart = mod(vTextureCoord.y, lineWidth);
   float solidPart = (1.0 - customUniform) * lineWidth;
      if(modPart > solidPart) {
    gl_FragColor = texture2D(uSampler, vTextureCoord);
    } else {
      gl_FragColor = vec4(0., 0., 0., 0.);
    }
    // Merge texture + Glint


}
/moban/shader.frag 代码如上




以上是关于pixijs shader 制作百叶窗效果的主要内容,如果未能解决你的问题,请参考以下文章

css百叶窗效果适用于哪一种网页上

如何使用WPF 实现百叶窗切换动画

百叶窗效果显示图像

Cg入门16:Fragment shader - 片段级光照

Cg入门19:Fragment shader - 片段级模型动态变色

Cg入门17:Fragment shader - 片段级光照(添加阴影)