8.4 聚光灯
优质
小牛编辑
138浏览
2023-12-01
从官网上的定义:
A point light that can cast shadow in one direction.
可以看出,聚光灯是一种特殊的点光源,它能够朝着一个方向投射光线。聚光灯投射出的是类似圆锥形的光线,这与我们现实中看到的聚光灯是一致的。
其构造函数为:
THREE.SpotLight(hex, intensity, distance, angle, exponent)
相比点光源,多了angle
和exponent
两个参数。angle
是聚光灯的张角,缺省值是Math.PI / 3
,最大值是Math.PI / 2
;exponent
是光强在偏离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;
不妨试着让该物体运动起来看下效果吧!