THREE.CubeTextureLoader 1px边缘错误

问题描述 投票:7回答:1

我使用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的错误。

enter image description here

为什么要变身?

P.S。如果我使用地图为每侧加载纹理都很好!

new THREE.MeshBasicMaterial({
    map: new THREE.ImageUtils.loadTexture(arr[i]),
    side: THREE.BackSide,
    transparent: true,
    opacity: 0
});
javascript three.js panoramas
1个回答
0
投票

@@ WestLangley在他的评论中有很好的观点。除了这些之外,我想指出的是,人为地创建巨型盒子的方法还存在一些缺点,因为它仍然会变形,并且容易在边界上进行Z角战斗。

[Three.js的现代版本中更好的替代方法是将CubeTexturecubeTextureLoader.load分配给scene.background

© www.soinside.com 2019 - 2024. All rights reserved.