当前位置: 首页 > 文档资料 > Three.js 入门指南 >

8.4 聚光灯

优质
小牛编辑
143浏览
2023-12-01

从官网上的定义:

A point light that can cast shadow in one direction.

可以看出,聚光灯是一种特殊的点光源,它能够朝着一个方向投射光线。聚光灯投射出的是类似圆锥形的光线,这与我们现实中看到的聚光灯是一致的。

其构造函数为:

THREE.SpotLight(hex, intensity, distance, angle, exponent)

相比点光源,多了angleexponent两个参数。angle是聚光灯的张角,缺省值是Math.PI / 3,最大值是Math.PI / 2exponent是光强在偏离target的衰减指数(target需要在之后定义,缺省值为(0, 0, 0)),缺省值是10

在调用构造函数之后,除了设置光源本身的位置,一般还需要设置target

light.position.set(x1, y1, z1);
light.target.position.set(x2, y2, z2);

除了设置light.target.position的方法外,如果想让聚光灯跟着某一物体移动(就像真的聚光灯!),可以target指定为该物体:

var cube = new THREE.Mesh(new THREE.CubeGeometry(1, 1, 1),
                    new THREE.MeshLambertMaterial({color: 0x00ff00}));

var light = new THREE.SpotLight(0xffff00, 1, 100, Math.PI / 6, 25);
light.target = cube;

不妨试着让该物体运动起来看下效果吧!

例8.4.1