Javascript 如何使用视频作为置换贴图修改PIXI.js中的置换贴图参数?

Javascript 如何使用视频作为置换贴图修改PIXI.js中的置换贴图参数?,javascript,pixi.js,Javascript,Pixi.js,[更新]: PIXI.js上没有明确的记录,但我已经设法弄明白了这一点;我必须编辑置换过滤器比例。见下文: app.renderer.view.style.transform = 'scale(1.1)'; displacementSprite.scale.x = 2; displacementSprite.scale.y = 2; displacementFilter.scale.x = 200; displacementFilter.scale.y =

[更新]:

PIXI.js上没有明确的记录,但我已经设法弄明白了这一点;我必须编辑置换过滤器比例。见下文:

    app.renderer.view.style.transform = 'scale(1.1)';
    displacementSprite.scale.x = 2;
    displacementSprite.scale.y = 2;
    displacementFilter.scale.x = 200;
    displacementFilter.scale.y = 200;
我还必须放大基础图像的比例,以掩盖由于更高水平的位移而导致的边缘失真

我仍然在寻找一种循环位移的方法。不过,如果有任何帮助,我将不胜感激


我正试图对我的网站的一个部分进行编码,其中页面背景是一个静态的.jpg图像,该图像将被我的轮廓的灰度视频所取代(见下面的示例),但我在处理置换权重时遇到了问题

但是,我很难找到任何类型的资源或教程来编写这样的代码-我已经设法让它与PIXI.js一起工作,但就操作置换权重等参数而言,这似乎非常有限(我似乎只能编辑置换图像的比例)

这是我在浏览器中看到的

这是Touchdesigner(未编码)模型

正如您所看到的,我在浏览器中能够重新创建的置换权重比我在Touchdesigner中能够实现的要弱得多

我的问题如下:

    app.renderer.view.style.transform = 'scale(1.1)';
    displacementSprite.scale.x = 2;
    displacementSprite.scale.y = 2;
    displacementFilter.scale.x = 200;
    displacementFilter.scale.y = 200;
  • 如何调整置换权重以增加过滤效果
  • 如何使此代码灵活地适用于不同的浏览器/设备
  • 如何制作置换视频循环

    <script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/5.1.3/pixi.min.js"></script>
    
    <script>
    
    var app;
    function initPixi() {
      app = new PIXI.Application({width: window.innerWidth, height: window.innerHeight});
      document.body.appendChild(app.view);
    
      var image = new PIXI.Sprite.from("bliss.jpg");
      image.width = window.innerWidth;
      image.height = window.innerHeight;
      app.stage.addChild(image);
    
    
    
    
      displacementSprite = new PIXI.Sprite.from("blurred2.mp4");
      displacementFilter = new PIXI.filters.DisplacementFilter(displacementSprite);
    
      app.stage.addChild(displacementSprite);
      app.stage.filters = [displacementFilter];
    
      app.renderer.view.style.transform = 'scale(1.01)';
      displacementSprite.scale.x = 2;
      displacementSprite.scale.y = 2;
    
      animate() 
    }
    
    
    initPixi();
    
    
    var-app;
    函数initPixi(){
    app=new PIXI.Application({width:window.innerWidth,height:window.innerHeight});
    document.body.appendChild(app.view);
    var image=new PIXI.Sprite.from(“bliss.jpg”);
    image.width=window.innerWidth;
    image.height=window.innerHeight;
    app.stage.addChild(图片);
    displacementSprite=新的PIXI.Sprite.from(“blurred2.mp4”);
    置换过滤器=新的PIXI.filters.置换过滤器(置换精灵);
    app.stage.addChild(置换精灵);
    app.stage.filters=[displacementFilter];
    app.renderer.view.style.transform='scale(1.01)';
    置换sprite.scale.x=2;
    置换sprite.scale.y=2;
    制作动画()
    }
    initPixi();