修改场景天空盒背景
更新时间: 2021-06-22 15:51:06
先来看下效果图~
# 原理
原理其实很简单,我就是设置了scene的background。一句话解释完了。下面看下代码:
let cubeTextureLoader = new THREE.CubeTextureLoader();
cubeTextureLoader.setPath( '/skybox/' );
let cubeTexture = cubeTextureLoader.load( [
"px.png", "nx.png",
"py.png", "ny.png",
"pz.png", "nz.png"
]);
//需要把色彩空间编码改一下,原因我上一篇说过的
cubeTexture.encoding = THREE.sRGBEncoding
scene.background = cubeTexture;
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 切换背景注意事项
切换背景其实很容易,两个步骤:
- 将原本的背景注销掉,主要是避免内存泄漏
scene.background.dispose()
1
- 将新背景替换上去
let cubeTextureLoader = new THREE.CubeTextureLoader();
cubeTextureLoader.setPath( '/skybox/' );
let cubeTexture = cubeTextureLoader.load( [
"newpx.png", "newnx.png",
"newpy.png", "newny.png",
"newpz.png", "newnz.png"
]);
//需要把色彩空间编码改一下,原因我上一篇说过的
cubeTexture.encoding = THREE.sRGBEncoding
scene.background = cubeTexture;
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
我没有把完整代码贴上来,把原理解释清楚就ok