THREE.CanvasTexture needsUpdate не помогает
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;
Никаких проблем. Я получил только первую текстуру экрана изображения и перестает обновляться.
Во время выполнения я нашел ->
this.scene.children[2].material.map.needsUpdate: undefined
Странная ситуация, любое предложение.
Ответы
Mugen87 Oct 08 2020 at 08:52
При использовании видео в качестве источника данных для текстуры идея заключается в использовании класса THREE.VideoTexture . Этот тип текстуры будет автоматически управлять своим needsUpdateфлагом, чтобы новые кадры правильно отображались на вашей плоской сетке.
Использование THREE.VideoTextureтребует использования в качестве аргумента элемента видео, а не холста.