手抄Threejs源码之Scene

//引入Object3D
import {Object3D} from '../core/Object3D.js';
//定义Scene对象,用于容纳对象、相机、渲染器
class Scene extends Object3D{
//无参构造函数
constructor(){
//调用父对象构造函数
super();
//声明当前类型为Scene
this.type='Scene';
//背景
this.background=null;
//环境
this.environment=null;
//雾,好比滤镜
this.fog=null;
//强制皮肤,当不为空时,场景中所有物体应用此皮肤
this.overrideMaterial=null;
//每一帧是否自动更新场景和场景中物体的矩阵
this.autoUpdate=true;
}
//当recursive 为true 时,子对象也也会被复制。
copy(source,recursive){
//父对象复制
super.copy(source,recursive);
//背景复制
if(source.background !== null) this.background=source.background.clone();
//环境复制
if(source.environment!==null) this.environment=source.environment.clone();
//雾气复制
if(source.fog !==null) this.fog=source.fog.clone();
//强制皮肤复制
this.overrideMaterial!==null) this.overrideMaterial = source.overrideMaterial.clone();
//自动刷新开关
this.autoUpdate=source.autoUpdate;
//矩阵自动刷新开关
this.matrixAutoUpdate=source.matrixAutoUpdate;
//返回当前对象
return this;
}
toJSON(meta){
//调用父对象toJSON方法
const data = super.toJSON(meta);
if(this.fog) data.object.fog=this.fog.toJSON();
return data;
}



}
Scene.prototype.isScene=true;
export {scene};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值