three.js源碼翻譯-LightShadow.js
說明
該類爲three.js中的陰影基類,three.js中的陰影是通過一個攝像機投影出陰影在加到場景中的,在四種光源中有兩種是有陰影的分別是方向光和point/spot光源,他們分別採用正交投影和透視投影。
源碼位置及翻譯
源碼位置
src/light/LightShadow.js
源碼翻譯
/**
* 光照陰影的基類,
*
* @param {Camera} camera 用來生成場景的深度圖的攝像機
*/
function LightShadow( camera ) {
this.camera = camera;
//設置陰影貼圖的偏差
this.bias = 0;
//設置模糊值
this.radius = 1;
//陰影貼圖的尺寸
this.mapSize = new Vector2( 512, 512 );
//生成的深度渲染圖
this.map = null;
//陰影的相機空間
this.matrix = new Matrix4();
}
Object.assign( LightShadow.prototype, {
//複製方法
copy: function ( source ) {
this.camera = source.camera.clone();
this.bias = source.bias;
this.radius = source.radius;
this.mapSize.copy( source.mapSize );
return this;
},
clone: function () {
return new this.constructor().copy( this );
},
//變成json的方法
toJSON: function () {
var object = {};
if ( this.bias !== 0 ) object.bias = this.bias;
if ( this.radius !== 1 ) object.radius = this.radius;
if ( this.mapSize.x !== 512 || this.mapSize.y !== 512 ) object.mapSize = this.mapSize.toArray();
object.camera = this.camera.toJSON( false ).object;
delete object.camera.matrix;
return object;
}
} );