我尝试使用立方体贴图显示全景图,其中前6个低质量图像被加载并显示在立方体贴图上。这很容易使用
完成var urls = [
'path/to/low-q-pos-x.png',
'path/to/low-q-neg-x.png',
'path/to/low-q-pos-y.png',
'path/to/low-q-neg-y.png',
'path/to/low-q-pos-z.png',
'path/to/low-q-neg-z.png'
],
cubemap = THREE.ImageUtils.loadTextureCube(urls);
接下来,加载更高质量的6张图像。
我在这里尝试的是,只要加载更高质量的图像,它就应该替换质量较低的图像,因此逐个应用更高质量的图像。每次使用loadTextureCube
是一个选项,但有更直接的方法来替换立方体面吗?
答案 0 :(得分:1)
您想要更改天空盒图像。
加载新的CubeTexture
。
var newTexture = new THREE.CubeTextureLoader().load( urls, onLoadCallback );
然后,在你的回调中,为你的天空盒分配新的纹理。
var oldTexture = skybox.material.uniforms.tCube.value;
skybox.material.uniforms.tCube.value = null;
oldTexture.dispose(); // important!
skybox.material.uniforms.tCube.value = newTexture;
在控制台中输入renderer.info
以确保正确处理旧纹理。
three.js r.76