光源学习

点光源PointLight

点光源就像生活中的白炽灯,光线沿着发光核心向外发散,同一平面的不同位置与光线入射角是不同的,光照强度一样的情况下,光线的反射强度自然不同。

点光源是一种单点发光,照射全部方向的光源,例如生活中的照明弹就属于点光源,

由于点光源是向所有方向发射光线,因此不会产生阴影,

它有颜色color,强度intensity,距离distance,位置position,是否可见visible等几个属性,

PointLight光源

distance属性决定的是光线可以照射多远,值为0时,表示光线的亮度不会随着距离的增加而递减

var pointColor = "#ccffcc";
   var pointLight = new THREE.PointLight(pointColor);
   pointLight.distance = 100;//距离,决定了光线可以照射多远
   pointLight.intensity = 1;//强度
   scene.add(pointLight);

SpotLight

聚光灯光源有一种锥形的效果,例如日常生活中的手电筒,灯笼等,该光源具有下面的属性

var pointColor = "#ffffff";
var spotLight = new THREE.SpotLight(pointColor);
spotLight.position.set(-40, 60, -10);
spotLight.castShadow = true;
spotLight.shadowCameraNear = 2;
spotLight.shadowCameraFar = 200;
spotLight.shadowCameraFov = 30;


spotLight.target = plane;        
/*设置聚光灯光源的target属性,为3D空间的一个点,target属性的值为Object3D
    var target = new THREE.Object3D();
    target.position = new THREE.Vector3(5, 0, 0);
    spotLight.target = target;
*/
spotLight.distance = 0;
spotLight.angle = 0.4;


scene.add(spotLight);