Three.js实现实现3D机房效果机房效果
3D机房系统是最近用户的需求,通过相关了解最后使用Three.js,也发现最近有东西可以写出来分享:
webGL可以让我们在canvas上实现3D效果。而three.js是一款webGL框架,由于其易用性被广泛应用
Three.js是通过对WebGL接口的封装与简化而形成的一个易用的图形库
分步实现3D效果
初始化3D模型参数
开始搭建场景
初始化渲染器
初始化摄像机
创建场景
灯光布置
创建网格线
循环渲染界面
创建鼠标控制器
添加对象到场景中
一一 . 初始化初始化3D模型参数模型参数
//参数处理
this.option = new Object();
this.option.antialias = option.antialias || true;
this.option.clearCoolr = option.clearCoolr || 0x1b7ace;
this.option.showHelpGrid = option.showHelpGrid || false;
//对象
this.id = id;
this.width = width();
this.height = height();
this.renderer = null;//渲染器
this.scene = null;//场景
this.camera = null;//摄像机
this.selected=null;
this.objects = [];
this.mouseClick = new THREE.Vector2();
this.raycaster = new THREE.Raycaster();
this.controls = null;//鼠标控制器
this.trsnaformControls = null;//鼠标控制器
this.dragcontrols = null;
this.objList = json.objects;//对象列表
this.eventList = json.events;//事件对象列表
this.dragList = [];
this.objectStatusList = {};
this.clickList = [];
var that = this;
对于一些需要使用的参数,开始加载进行初始化操作。
二二 . 开始搭建场景开始搭建场景
搭建场景包含一些具体的初始化操作 一些初始化方法(之后才对具体方法加以说明):
var that = this;
room3dObj = that;
that.initThree(that.id); //初始化渲染器
that.initCamera(); //初始化摄像机
that.initScene();//创建场景
that.initHelpGrid();//创建网格
that.initLight();//灯光布置
//添加3D对象
$.each(that.objList, function (index,obj) {
that.InitAddObject(obj);//添加对象到场景中
});
that.initMouseCtrl();//创建鼠标控制器
that.animation();//循环渲染界面
三三 . 初始化渲染器初始化渲染器
渲染器 WebGLRenderer 定义语法:
var that = this;
that.renderer = new THREE.WebGLRenderer({ alpha: true, antialias: that.option.antialias });
that.renderer.setSize(that.width, that.height);
$(“#” + that.id).append(that.renderer.domElement);
that.renderer.setClearColor(that.option.clearCoolr, 1.0);
that.renderer.shadowMap.enabled = true;
that.renderer.shadowMapSoft = true;
评论0