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;
没有帮助。我只有第一个图像屏幕纹理,然后停止更新。在运行时,我发现->
this.scene.children[2].material.map.needsUpdate: undefined
任何情况都奇怪的建议。 最佳答案
当使用视频作为纹理的数据源时,其想法是使用THREE.VideoTexture类。这种类型的纹理将自动管理其needsUpdate
标志,以确保新的帧正确显示在平面网格上。
使用THREE.VideoTexture
要求您将video元素用作参数,而不是 Canvas 。