我正在尝试将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。
我从三个开始,想知道是否有办法做到这一点?
谢谢,jmpp