【问题标题】:THREE.CubeTextureLoader 1px edges bug三.CubeTextureLoader 1px 边缘错误
【发布时间】: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
});

【问题讨论】:

标签: javascript three.js panoramas


【解决方案1】:

@WestLangley 在他的 cmets 中表现出色。除此之外,我想指出的是,人工创建一个巨型盒子的方法也有一些弱点,它仍然是扭曲的,并且在边界上容易受到 z-fighting 的影响。

在three.js 的现代版本中,一个更好的选择是将CubeTexturecubeTextureLoader.load 分配给scene.background

【讨论】:

    猜你喜欢
    • 2015-09-09
    • 2011-08-28
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    相关资源
    最近更新 更多