【发布时间】:2016-05-23 16:45:55
【问题描述】:
我使用 THREE.CubeTextureLoader 创建全景立方体:
pano = [
'scenes/4/2048/px.jpg', 'scenes/4/2048/nx.jpg',
'scenes/4/2048/py.jpg', 'scenes/4/2048/ny.jpg',
'scenes/4/2048/pz.jpg', 'scenes/4/2048/nz.jpg',
];
newCubeTexture = cubeTextureLoader.load(pano);
geometry = new THREE.BoxGeometry(20000, 20000, 20000);
material = new THREE.MeshBasicMaterial({
envMap: newCubeTexture,
side: THREE.BackSide,
color: 0xffffff,
transparent: true,
opacity: 0
});
mesh = new THREE.Mesh(geometry, material);
但是当纹理加载时,我在边缘看到 1px 错误。
为什么会这样?
附:如果我使用地图为每一面加载纹理都很好!
new THREE.MeshBasicMaterial({
map: new THREE.ImageUtils.loadTexture(arr[i]),
side: THREE.BackSide,
transparent: true,
opacity: 0
});
【问题讨论】:
-
envMap用于反射,而不是用于您使用它的目的。在three.js示例中搜索skybox,查看stackoverflow.com/questions/16310880/… -
问题仅在 envMap 中?我可以使用 cubeTextureLoader 来获取地图属性并解决问题吗?
-
看看天空盒是如何在threejs.org/examples/webgl_materials_cubemap.html中使用
THREE.ShaderLib[ "cube" ];实现的。
标签: javascript three.js panoramas