gpt4 book ai didi

javascript - 在 Three.js 中旋转天空盒

转载 作者:行者123 更新时间:2023-11-29 19:19:12 25 4
gpt4 key购买 nike

我有一个使用以下方法创建的天空盒:

skybox_path = 'images/skybox_images/';
skybox_name = 'Stars_2';

var urls = [
skybox_path + skybox_name + '_right1.png',
skybox_path + skybox_name + '_left2.png',
skybox_path + skybox_name + '_top3.png',
skybox_path + skybox_name + '_bottom4.png',
skybox_path + skybox_name + '_front5.png',
skybox_path + skybox_name + '_back6.png'
];

var cubemap = THREE.ImageUtils.loadTextureCube(urls); // load textures
cubemap.format = THREE.RGBFormat;

var shader = THREE.ShaderLib['cube']; // init cube shader from built-in lib
shader.uniforms['tCube'].value = cubemap; // apply textures to shader

// create shader material
var skyBoxMaterial = new THREE.ShaderMaterial( {
fragmentShader: shader.fragmentShader,
vertexShader: shader.vertexShader,
uniforms: shader.uniforms,
depthWrite: false,
side: THREE.BackSide
});


// create skybox mesh
var skybox = new THREE.Mesh(
new THREE.CubeGeometry(1000, 1000, 1000),
skyBoxMaterial
);

scene.add(skybox);

这很好用,但是我现在希望在动画循环中旋转天空盒。

如果我使用:

skybox.rotation.x += 0.01;

在渲染循环中,天空盒旋转,但纹理不旋转。我得到了一个非常有趣和有洞察力的立方体移动效果,但纹理保持固定,但这不是我想要的效果,我希望纹理随立方体移动。

最佳答案

我找到了解决方案,如果我们想在没有异常透视效果的情况下为其方向设置动画,则需要更改我在问题中发布的创建天空盒的方法。

创建一个可以旋转的天空盒的方法如下:

    var urls = [
skybox_path + skybox_name + '_right1.png',
skybox_path + skybox_name + '_left2.png',
skybox_path + skybox_name + '_top3.png',
skybox_path + skybox_name + '_bottom4.png',
skybox_path + skybox_name + '_front5.png',
skybox_path + skybox_name + '_back6.png'
];

var materialArray = [];
for (var i = 0; i < 6; i++)
materialArray.push( new THREE.MeshBasicMaterial({
map: THREE.ImageUtils.loadTexture( urls[i] ),
side: THREE.BackSide
}));

var skyGeometry = new THREE.CubeGeometry( 5000, 5000, 5000 );
var skyMaterial = new THREE.MeshFaceMaterial( materialArray );
var skybox = new THREE.Mesh( skyGeometry, skyMaterial );

这解决了我的问题。

关于javascript - 在 Three.js 中旋转天空盒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33787382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com