国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Three.js實現(xiàn)3D機房效果

2024-05-06 15:43:42
字體:
供稿:網(wǎng)友

3D機房系統(tǒng)是最近用戶的需求,通過相關了解最后使用Three.js,也發(fā)現(xiàn)最近有東西可以寫出來分享:

webGL可以讓我們在canvas上實現(xiàn)3D效果。而three.js是一款webGL框架,由于其易用性被廣泛應用 Three.js是通過對WebGL接口的封裝與簡化而形成的一個易用的圖形庫

分步實現(xiàn)3D效果

初始化3D模型參數(shù) 開始搭建場景 初始化渲染器 初始化攝像機 創(chuàng)建場景 燈光布置 創(chuàng)建網(wǎng)格線 循環(huán)渲染界面 創(chuàng)建鼠標控制器 添加對象到場景中

一 . 初始化3D模型參數(shù)

//參數(shù)處理 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;

對于一些需要使用的參數(shù),開始加載進行初始化操作。

二 . 開始搭建場景

搭建場景包含一些具體的初始化操作 一些初始化方法(之后才對具體方法加以說明):

var that = this; room3dObj = that; that.initThree(that.id); //初始化渲染器 that.initCamera(); //初始化攝像機 that.initScene();//創(chuàng)建場景 that.initHelpGrid();//創(chuàng)建網(wǎng)格 that.initLight();//燈光布置 //添加3D對象 $.each(that.objList, function (index,obj) { that.InitAddObject(obj);//添加對象到場景中 }); that.initMouseCtrl();//創(chuàng)建鼠標控制器 that.animation();//循環(huán)渲染界面

三 . 初始化渲染器

渲染器 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; //事件 that.renderer.domElement.addEventListener(‘mousedown',that.onDocumentMouseDown, false); that.renderer.domElement.addEventListener(‘mousemove',that.onDocumentMouseMove, false);

四 . 初始化攝像機

采用PerspectiveCamera 相機:

var that = this;  that.camera = new THREE.PerspectiveCamera(45, that.width / that.height, 1, 100000);  that.camera.name = 'mainCamera';  that.camera.position.x =0;  that.camera.position.y =2000;  that.camera.position.z =1800;  that.camera.up.x = 0;  that.camera.up.y =1;  that.camera.up.z =0;  that.camera.lookAt({ x: 100, y: 0, z: 100 });  that.objects.push(that.camera);  that.dragList.push(that.camera);  that.clickList.push(that.camera);            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 青浦区| 涿州市| 吉水县| 满洲里市| 微山县| 呼和浩特市| 乐陵市| 亚东县| 霸州市| 仁化县| 招远市| 宁河县| 四平市| 海盐县| 高要市| 黄石市| 丽水市| 师宗县| 张掖市| 敦煌市| 朔州市| 牙克石市| 邵东县| 常宁市| 右玉县| 佳木斯市| 伊金霍洛旗| 怀集县| 桦南县| 乌海市| 吉水县| 咸丰县| 杭州市| 定南县| 崇义县| 鄂伦春自治旗| 武川县| 吉隆县| 浦江县| 耒阳市| 隆德县|