THREE.CanvasTexture needsUpdate no help

Oct 07 2020
  • Eu tenho uma tag de vídeo e ele reproduz um vídeo simples. [trabalho]
  • Eu tenho canvas2d com a reprodução do mesmo vídeo [funciona]
  • processamento de vídeo opencvjs (tela é saída, vídeo é entrada) - também funciona
  • Eu tenho three.js com malha plana
          texture = new THREE.CanvasTexture(this.$refs.testcanvas)
          texture.needsUpdate = true;
          materialLocal = new THREE.MeshBasicMaterial({ map: texture })
          materialLocal.needsUpdate = true;
          materialLocal.map.needsUpdate = true;
          this.mainVideoMesh.material = materialLocal
          this.mainVideoMesh.material.needsUpdate = true;

Sem hepls. Acabei de obter a textura da tela da primeira imagem e parei de atualizar.

Em tempo de execução eu encontrei ->

  this.scene.children[2].material.map.needsUpdate: undefined

Situação estranha qualquer sugestão.

Respostas

Mugen87 Oct 08 2020 at 08:52

Ao usar um vídeo como fonte de dados para uma textura, a ideia é usar a classe THREE.VideoTexture . Este tipo de textura irá gerenciar automaticamente seu needsUpdatesinalizador, a fim de garantir que novos quadros sejam exibidos corretamente em sua malha plana.

Usar THREE.VideoTexturerequer que você use o elemento de vídeo como argumento, não a tela.