Three.js 是一个基于 WebGL 的 3D 引擎,它为开发者提供了一套丰富的 API,用于创建和显示 3D 内容在网页上。以下是 Three.js 中的三大关键概念:
1. 场景(Scene)
场景是 Three.js 中的核心概念之一,它是所有 3D 对象的容器。在 Three.js 中,所有的物体、相机、灯光等都需要添加到场景中。以下是一个创建场景的简单示例:
var scene = new THREE.Scene();
2. 相机(Camera)
相机用于定义 Three.js 场景的视角。在 Three.js 中,常用的相机有透视相机(PerspectiveCamera)和正交相机(OrthographicCamera)。以下是一个创建透视相机的示例:
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;
3. 渲染器(Renderer)
渲染器用于将场景渲染到浏览器中。在 Three.js 中,常用的渲染器有 WebGLRenderer。以下是一个创建渲染器的示例:
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
三个基础步骤
要使用 Three.js 创建一个简单的 3D 场景,通常需要以下三个基础步骤:
1. 创建场景
首先,创建一个新的场景对象:
var scene = new THREE.Scene();
2. 添加物体
接下来,添加一些物体到场景中。以下是一个创建立方体的示例:
var geometry = new THREE.BoxGeometry();
var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
var cube = new THREE.Mesh(geometry, material);
scene.add(cube);
3. 渲染场景
最后,使用渲染器将场景渲染到浏览器中:
function animate() {
requestAnimationFrame(animate);
renderer.render(scene, camera);
}
animate();
实践案例:创建一个简单的旋转立方体
以下是一个简单的示例,演示如何使用 Three.js 创建一个旋转的立方体:
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
var geometry = new THREE.BoxGeometry();
var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
var cube = new THREE.Mesh(geometry, material);
scene.add(cube);
camera.position.z = 5;
function animate() {
requestAnimationFrame(animate);
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
renderer.render(scene, camera);
}
animate();
总结
通过以上介绍,我们可以了解到 Three.js 的基本概念和用法。希望本文能帮助你轻松开启元宇宙编程之旅。在接下来的学习中,你可以尝试更多高级功能和技巧,例如添加灯光、纹理、动画等,来丰富你的 3D 场景。祝你学习愉快!
