Three.js 三大基石:渲染器、场景与相机

66 阅读1分钟

Three.js 三大基石:渲染器、场景与相机

Three.js 是构建WebGL应用的强大框架,其核心由三大组件构成:渲染器(Renderer)、场景(Scene)和相机(Camera)。

1. 渲染器(Renderer)

渲染器是将3D场景绘制到2D屏幕的核心组件。WebGLRenderer是最常用的渲染器:

// 创建WebGL渲染器
const renderer = new THREE.WebGLRenderer
();
renderer.setSize(window.innerWidthwindow.innerHeight);
document.body.appendChild(renderer.
domElement);

关键功能:

  • 初始化WebGL上下文
  • 设置渲染尺寸
  • 将canvas元素添加到DOM
  • 执行渲染循环

2. 场景(Scene)

场景是3D对象的容器,构成完整的3D世界:

// 创建场景
const scene = new THREE.Scene();
scene.background = new THREE.Color
(0x000000); // 设置背景色

// 添加物体
const geometry = new THREE.BoxGeometry
();
const material = new THREE.
MeshBasicMaterial({ color: 0x00ff00 });
const cube = new THREE.Mesh(geometry, 
material);
scene.add(cube);

场景管理:

  • 3D对象层级结构
  • 光照环境
  • 雾效等全局效果

3. 相机(Camera)

相机决定从什么角度观察场景。常用透视相机(PerspectiveCamera):

// 创建透视相机
const camera = new THREE.
PerspectiveCamera(
  75// 视野角度(FOV)
  window.innerWidth / window.
  innerHeight, // 宽高比
  0.1// 近裁剪面
  1000 // 远裁剪面
);
camera.position.z = 5// 设置相机位置

相机类型:

  • 透视相机(3D效果)
  • 正交相机(2D效果)
  • 阵列相机(多视角)

三者协作

function animate() {
  requestAnimationFrame(animate);
  cube.rotation.x += 0.01;
  cube.rotation.y += 0.01;
  renderer.render(scene, camera); // 关
  键渲染调用
}
animate();

完整示例代码可参考three.js官方文档或示例库中的基础示例。