Я пытаюсь применить THREE.ImageUtils.loadTextureCube()
с помощью камеры реального времени к вращающемуся кубу.
До сих пор мне удавалось применить простую текстуру, используя мое видео, к MeshLambertMaterial
:
var geometry = new THREE.CubeGeometry(100, 100, 100, 10, 10, 10);
videoTexture = new THREE.Texture( Video ); // var "Video" is my <video> element
var material = new THREE.MeshLambertMaterial({ map: videoTexture });
Cube = new THREE.Mesh(geometry, material);
Scene.add( Cube );
Это нормально, и вы можете увидеть результат на странице http://jmpp.fr/three-camera.
Теперь я хотел бы использовать этот видеопоток, чтобы получить текстуру матового металла, поэтому я попытался создать материал другого типа:
var videoSource = decodeURIComponent(Video.src);
var environment = THREE.ImageUtils.loadTextureCube([videoSource, // left
videoSource, // right
videoSource, // top
videoSource, // bottom
videoSource, // front
videoSource]); // back
var material = new THREE.MeshPhongMaterial({ envMap: environment });
... но выдает следующую ошибку:
blob:http://localhost/dad58cd1-1557-41dd-beed-dbfea4c340db 404 (Not Found)
Я предполагаю, что loadTextureCube() пытается получить 6 параметров массива в виде изображения, но вместо этого, похоже, не ценит videoSource.
Я начинаю с трех и задаюсь вопросом, есть ли способ сделать это?
Спасибо, джмпп