2013-08-22 3 views
3

Я пытаюсь создать простой прямоугольник с видео в формате .mp4 как текстуру. В соответствии с документацией three.js (http://threejs.org/docs/#Reference/Textures/Texture) это должно быть прямолинейным.Использование видео как текстуры с помощью Three.js

Когда я помещаю ссылку на видео, все, что я получаю, это коробка черного цвета без текстуры на ней. Я протестировал код, заменив видео на jpg-изображение, и он отлично работает. Может кто-нибудь, пожалуйста, объясните мне, что я делаю неправильно.

Я уже видел примеры, в которых воспроизводится видео, сначала привязывая его к элементу видео, а затем копируя кадры на холсте. Я хочу попробовать прямолинейный путь, как указано в документации three.js.

ответ

3

Подумайте о видео как о последовательности изображений. Поэтому, чтобы «воспроизвести» это видео на вашем 3D-объекте, вам придется передать каждый кадр этой последовательности в свой материал, а затем обновить этот материал.

Хорошее место, чтобы начать здесь: https://github.com/mrdoob/three.js/wiki/Updates

И здесь: http://stemkoski.github.io/Three.js/Video.html

+0

Да, я понимаю, и уже сделал код для работы таким образом. Однако я хотел получить видео текстуру напрямую, передав ссылку на файл mp4. Хотя я еще не видел, чтобы какой-либо пример делал это или мог заставить его работать сам, но согласно документации здесь должно быть возможно http://threejs.org/docs/#Reference/Textures/Texture. Возможно, я неверно истолковал документ, и в настоящее время это единственный способ сделать это с помощью тега видео и обновления текстуры на основе фреймов. – Gaurav

+0

Это была ошибка в документации three.js, которая заставила меня предположить, что видео можно напрямую использовать в качестве текстуры. Обсуждался на irc и, кажется, тот, который вы сказали, является единственным возможным решением в настоящее время. – Gaurav

+0

Имея в виду правило KISS (Keep It Simple Stupid), каждый пытается сохранить его код как можно более аккуратным, поэтому, если бы было более удобное решение вашей проблемы - оно уже использовалось бы в каком-то примере. –

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