2014-06-30 5 views
0

Попытки поставить простое видео на кубе в качестве текстуры, и результат не только ничего :)видео текстура на кубе

video = document.createElement('video'); 
video.width = 320; 
video.height = 320; 
video.autoplay = true; 
video.loop = true; 
video.src = 'video.mp4' 


var videoTexture = new THREE.Texture(video); 
videoTexture.needsupdate = true; 


    var cube = new THREE.Mesh(new THREE.BoxGeometry(10, 10, 10, 1, 1, 1), new THREE.MeshBasicMaterial({ map: videoTexture })); 
    scene.add(cube); 

Если добавить color: '#fff' вместо map: videoTexture я вижу белый квадрат, так куб добавляет, так что это что-то с видео?

ответ

0

У вас есть показания, что видео играет? Кроме того, необходимо проверить в вашей render() функции:

if (video.readyState === video.HAVE_ENOUGH_DATA) { 

    if (videoTexture) videoTexture.needsUpdate = true; 

} 

Для качества/скорости вы можете добавить их к своему определению:

videoTexture.minFilter = THREE.LinearFilter; 
videoTexture.magFilter = THREE.LinearFilter; 
videoTexture.format = THREE.RGBFormat; 
videoTexture.generateMipmaps = false; 
+0

Да, проигрывании видео. Я попробовал также обычное видео, помещенное в DOM, и получив его 'document.getElementById()', и результат был таким же. Очень странно ... – mjanisz1

+0

на самом деле 'video.readystate' помог. Моя неаккуратная ошибка кода. Спасибо! – mjanisz1

Смежные вопросы