THREE.js:改变Cubemap中只有一张脸的图像?

时间:2016-03-19 08:49:57

标签: javascript three.js

我尝试使用立方体贴图显示全景图,其中前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是一个选项,但有更直接的方法来替换立方体面吗?

1 个答案:

答案 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