threejs学习笔记--各种光源

/*** 光照(light) ***/


//基础光源,它的颜色会添加到整个场景和所有对象的当前颜色
//在使用其他光源时同时使用AmbientLight,可以弱化阴影或添加一些颜色
//用色应该尽量保守,颜色过亮会导致画面颜色很快饱和
new THREE.AmbientLight(颜色);                          // 环境光(影响整个场景的光源)




//可以只传入颜色参数
new THREE.PointLight(颜色, 强度, 距离);                // 点光源(照射所有方向的光源)
//点光源例子
let pointColor="#ccffcc";
let pointLight =new THREE.PointLight(pointColor);
pointLight.distance = 100;
pointLight.intensity=20; //光强度的倍数,设为0则无灯光
scene.add(pointLight);



new THREE.DirectionalLight(颜色, 亮度);                // 平行光(模拟远处类似太阳的光源)





new THREE.SpotLight(颜色, 强度, 距离, 夹角, 衰减指数); // 聚光灯(具有锥形效果的光源)
//跟点光源差别不大,差别是castShadow设置为true可以有阴影
//可以只传入颜色参数
//设置target属性可以决定光源对准某个物体照射的对象(即使对象在移动,也会对准)
//如果不想对准某个物体而是指定的某一点可以创建一个空的THREE.Object3D()实例如下:
var target = new THREE.Object3D();
target.position = new THREE.Vector3(5,0,0);
SpotLight.target = target;   //设置光源的target属性





//以及比较少用的其他光源

THREE.HemisphereLight//(半球光光源)
//在室外的时候,并不是所有的光照都来自一个方向,很多来自空气的散射 地面的反射以及其他物体的反射
//单用一个方向的光源使物体看起来不自然,这种光源是比较自然的光源,不过要指定来自上方光线的颜色
//地面的颜色 以及她们的光照强度  groundColor(地面发出的光线颜色)  Color(天空发出的光线颜色)
//intensity(光照的强度)

THREE.AreaLight//(平面光光源)  //非常复杂的光源,它会对THREE.WebGlRenderer对象造成非常严重的性能损失


THREE.LensFlare//(镜头眩光)    //现实中对着太阳看会出现镜头眩光,对游戏和三维图片,是一种很好的效果,更加真实

你可能感兴趣的:(threejs)