在Three.js中,添加灯光是创建真实感场景的关键步骤。以下是如何在Three.js中添加不同类型灯光的基本步骤:
1. 创建场景(Scene)
你需要创建一个场景,所有的物体和灯光都会被添加到这个场景中。
```javascript
var scene = new THREE.Scene();
```
2. 创建相机(Camera)
然后,创建一个相机来观察场景。
```javascript
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
```
3. 创建渲染器(Renderer)
创建一个渲染器来显示场景。
```javascript
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
```
4. 添加灯光
Three.js提供了多种灯光类型,包括点光源(PointLight)、聚光灯(SpotLight)、方向光(DirectionalLight)和射灯(HemisphereLight)等。
点光源(PointLight)
```javascript
var light = new THREE.PointLight(0xffffff, 1, 100);
light.position.set(50, 50, 50);
scene.add(light);
```
聚光灯(SpotLight)
```javascript
var light = new THREE.SpotLight(0xffffff, 1, 50, Math.PI / 6);
light.position.set(50, 50, 50);
scene.add(light);
```
方向光(DirectionalLight)
```javascript
var light = new THREE.DirectionalLight(0xffffff, 1);
light.position.set(0, 0, 1);
scene.add(light);
```
射灯(HemisphereLight)
```javascript
var light = new THREE.HemisphereLight(0xffffff, 0x444444, 1);
scene.add(light);
```
5. 添加物体
在场景中添加一些物体。
```javascript
var geometry = new THREE.BoxGeometry();
var material = new THREE.MeshBasicMaterial({color: 0x00ff00