three 天空球_three.js添加场景背景和天空盒(skybox)代码示例

这篇博客介绍了如何在three.js中添加天空球作为场景背景,通过导入three.js库并创建WebGLRenderer、PerspectiveCamera、Scene,然后设置光源和立方体实例,最终实现天空盒效果。代码示例展示了创建3D立方体并让它们旋转的步骤,为场景增加了视觉深度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTML

导入代码模板:

import * as THREE from '//techbrood.com/threejs/build/three.module.js';

function main() {

const canvas = document.querySelector('#c');

const renderer = new THREE.WebGLRenderer({

canvas,

alpha: true

});

const fov = 75;

const aspect = 2; // the canvas default

const near = 0.1;

const far = 5;

const camera = new THREE.PerspectiveCamera(fov, aspect, near, far);

camera.position.z = 2;

const scene = new THREE.Scene();

{

const color = 0xFFFFFF;

const intensity = 1;

const light = new THREE.DirectionalLight(color, intensity);

light.position.set(-1, 2, 4);

scene.add(light);

}

const boxWidth = 1;

const boxHeight = 1;

const boxDepth = 1;

const geometry = new THREE.BoxGeometry(boxWidth, boxHeight, boxDepth);

function makeInstance(geometry, color, x) {

const material = new THREE.MeshPhongMaterial({color});

const cube = new THREE.Mesh(geometry, material);

scene.add(cube);

cube.position.x = x;

return cube;

}

const cubes = [

makeInstance(geometry, 0x44aa88, 0),

makeInstance(geometry, 0x8844aa, -2),

makeInstance(geometry, 0xaa8844, 2),

];

function resizeRendererToDisplaySize(renderer) {

const canvas = renderer.domElement;

const width = canvas.clientWidth;

const height = canvas.clientHeight;

const needResize = canvas.width !== width || canvas.height !== height;

if (needResize) {

renderer.setSize(width, height, false);

}

return needResize;

}

function render(time) {

time *= 0.001;

if (resizeRendererToDisplaySize(renderer)) {

const canvas = renderer.domElement;

camera.aspect = canvas.clientWidth / canvas.clientHeight;

camera.updateProjectionMatrix();

}

cubes.forEach((cube, ndx) => {

const speed = 1 + ndx * .1;

const rot = time * speed;

cube.rotation.x = rot;

cube.rotation.y = rot;

});

renderer.render(scene, camera);

requestAnimationFrame(render);

}

requestAnimationFrame(render);

}

main();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值