我正致力于创建一个反映视频envmap的立方体,但我无法找到任何解决方案或示例如何做到这一点只是googeling。
我有一个多维数据集的工作示例,其envmap由jpgs here
组成我试图简单地用webm&更换jpgs。移动视频文件,但它没有缝合工作。
甚至可以这样做吗?
以下是我的代码的相关摘要:
var env_url = [
'textures/dawnmountain-xneg.png',
'textures/dawnmountain-xneg.png',
'textures/dawnmountain-xneg.png',
'textures/dawnmountain-xneg.png',
'textures/dawnmountain-xneg.png',
'textures/dawnmountain-xneg.png'
];
var enviro = new THREE.ImageUtils.loadTextureCube(env_url);
var cubeMaterial = new THREE.MeshPhongMaterial({
envMap: enviro,
shading: THREE.SmoothShading,
metal: true,
combine: THREE.MixOperation,
reflectivity: 0.70,
specular: 0x7a7a7a,
bumpMap: mapHeight,
bumpScale: 0.03,
});
答案 0 :(得分:0)
是的,它可以完成但不是那么自动,而且我认为不是没有修改three.js渲染代码。
您需要从视频更新three.js纹理。视频文件不能直接作为3D对象上的纹理使用,您只能直接使用图像。
对于普通纹理,它很简单,而且jetienne在https://github.com/jeromeetienne/threex.videotexture为它提供了一个很好的简单实用工具 - 也有演示。
虽然envMaps不支持开箱即用。