THREE.CanvasTextureneedsUpdateは役に立ちません

Oct 07 2020
  • 私はビデオタグを持っていて、彼は簡単なビデオを再生します。【作品】
  • 同じ動画を再生してcanvas2dを持っています[作品]
  • opencvjsビデオ処理(キャンバスが出力され、ビデオが入力されます)-も機能します
  • 平面メッシュのthree.jsがあります
          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;

heplsはありません。最初の画像画面のテクスチャを取得した後、更新を停止しました。

実行時に私が見つけた->

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

奇妙な状況の提案。

回答

Mugen87 Oct 08 2020 at 08:52

テクスチャのデータソースとしてビデオを使用する場合、THREE.VideoTextureクラスを使用することをお勧めします。このタイプのテクスチャはneedsUpdate、新しいフレームが平面メッシュに正しく表示されるように、フラグを自動的に管理します。

を使用THREE.VideoTextureするには、キャンバスではなく、ビデオ要素を引数として使用する必要があります。