999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

BIM模型網(wǎng)頁端可視化研究

2020-03-11 02:49:12王海濤劉美艷菊朱
水利規(guī)劃與設(shè)計 2020年3期
關(guān)鍵詞:模型

王海濤,劉美艷,郭 菊朱 峰

(1.江蘇省水利勘測設(shè)計研究院有限公司,江蘇 揚州 225009;2.安徽省招標(biāo)集團股份有限公司,安徽 合肥 230000)

隨著互聯(lián)網(wǎng)的快速發(fā)展,各行各業(yè)的資源都得到不同程度的共享,網(wǎng)絡(luò)信息化[1]逐漸成為各行業(yè)工作者的第一選擇。以網(wǎng)絡(luò)為途徑,特別是在近年用戶體驗需求和3D虛擬現(xiàn)實技術(shù)興起的條件下,對三維模型網(wǎng)頁端顯示的研究有了十分巨大的發(fā)展,呈現(xiàn)出將靜態(tài)的、不能交互的模型展示轉(zhuǎn)向動態(tài)呈現(xiàn)、實時交互的發(fā)展趨勢[2]。作為水利工作者為了使一些水電站能夠擁有一個良好的模型展示與用戶交互平臺,讓管理人員方便地瀏覽電站模型的空間三維效果,使電站資源得到更大程度的開發(fā)利用,所以有必要建立平臺使大壩模型展示在網(wǎng)頁端。

近年基于Web3D[3]技術(shù)所建立的空間模型[4]已經(jīng)被各行各業(yè)廣泛使用,VRML[5](Virtual Reality Modeling Language)技術(shù)需要在瀏覽器端安裝專門的渲染插件才能實現(xiàn)三維模型瀏覽器端的展示,且編程接口復(fù)雜。如今流行的軟件如Unity3D[6]等都需要安裝相應(yīng)的渲染插件,插件的下載安裝程序復(fù)雜繁瑣,且存在瀏覽器兼容問題[7],而WebGL技術(shù)隨著互聯(lián)網(wǎng)的發(fā)展已經(jīng)成為很多行業(yè)的選擇[8]。本文基于大壩空間模型、three.js空間動態(tài)展示技術(shù),建立起一個能直觀、逼真地再現(xiàn)并且允許用戶交互的水利工程虛擬可視化系統(tǒng),為水利工程的管理提供一個新的技術(shù)平臺。

1 WebGL技術(shù)及實現(xiàn)方式

1.1 WebGL技術(shù)簡介

WebGL借助于HTML5(Hyper Text Markup Language)的Canvas元素進行渲染,可以在網(wǎng)頁上創(chuàng)建三維復(fù)雜場景與模型[9],同時WebGL可以為HTML5 Canvas提供硬件3D加速渲染。Canvas元素是HTML5中最常用的元素,用于創(chuàng)建圖形和動畫,它在一定范圍內(nèi)減少了插件的使用,提高了瀏覽器運行效率[10]。

至今,基于WebGL的API已經(jīng)開發(fā)出很多框架,主要包括:Three.js、GLGE、C3DL等。使用流程大多相通,使用時都需對三維世界的基本元素進行定義。

1.2 WebGL實現(xiàn)方式

本文采用Three.js框架進行水利大壩模型在Web瀏覽器端的三維可視化展示,共有三部分組件:場景(scene)對應(yīng)實體空間,起容納作用;相機(camera)對應(yīng)視線,起觀察瀏覽作用;渲染器(renderer)起到為不同對象渲染外觀作用。三個組件將模型渲染到網(wǎng)頁中[11]如圖1所示。

圖1 Three.js基本結(jié)構(gòu)模塊

1.2.1場景創(chuàng)建

場景對應(yīng)的是現(xiàn)實世界的空間環(huán)境,起到容納的作用,所有的物體、相機、燈光等都需要放置在場景內(nèi)部,相關(guān)代碼如下:

scene=new THREE.Scene();

1.2.2相機設(shè)置

相機主要有正交相機(OrthographicCamera)和透視相機(PerspectiveCamera),其目的是將三維空間里的物體模型映射到二維平面中,正投影中物體模型的大小與視點的距離無關(guān),透視投影中物體模型的大小與視點的距離會呈現(xiàn)出近大遠小現(xiàn)象。相關(guān)代碼如下:

camera=new THREE.PerspectiveCamera(60,window.innerWidth/window.innerHeight,1,1000);

camera.position.set(20,40,20);

1.2.3光源設(shè)置

光源對應(yīng)的是現(xiàn)實世界的各類光,如環(huán)境光、平行光、點光、半球光等,為了使物體在場景中顯示的更加真實以及模擬不同環(huán)境下物體顯示效果。代碼如下:

var ambientLight = new THREE.AmbientLight(0xeeeeee,0.8);

scene.add(ambientLight);

1.2.4渲染器設(shè)置

定義好場景中的三維模型,設(shè)置好燈光并添加好相機之后,通過調(diào)用渲染函數(shù)使存在于三維空間里的模型以二維平面的形式顯現(xiàn)出來。將渲染結(jié)果綁定到

標(biāo)簽上,代碼如下:

renderer=new THREE.WebGLRenderer({antialias∶true});

renderer.localClippingEnabled = true;

document.getElementById('showModelDiv').appendChild(renderer.domElement);

2 基于WebGL的大壩模型展示系統(tǒng)創(chuàng)建

2.1 模型的建立與導(dǎo)入

2.1.1模型的創(chuàng)建

大壩三維模型中信息繁雜,最優(yōu)的處理方式是將模型及細部信息在建模軟件中建立好,導(dǎo)出成three.js能夠識別的模型文件,然后由three.js內(nèi)部實現(xiàn)網(wǎng)頁端模型的重建與顯示。本文基于三維參數(shù)化建模方法和參數(shù)化族庫創(chuàng)建方法,以revit軟件作為建模工具,建模流程如圖2所示,模型建好后導(dǎo)出成fbx格式。

圖2 建模流程圖

將模型按照建筑物類型劃分,確定出模型的各子模型,將子模型繼續(xù)拆分為構(gòu)件;運用revit的參數(shù)化建模,開發(fā)構(gòu)件模型,建立構(gòu)件庫;通過構(gòu)件裝配,生成子模型,進而建立模型模版庫,最后組裝成整體模型。

2.1.2模型的導(dǎo)入

模型的導(dǎo)入需借助加載器,這就涉及到三維模型的導(dǎo)入及處理問題[13],不同格式的模型對應(yīng)不同的加載器,常用的幾種不同的加載器見表1。

表1 加載器

本文采用Revit三維建模軟件制作三維模型,模型以.fbx格式導(dǎo)出,并對模型的位置、大小、紋理、顏色進行修改,流程如圖3所示。

圖3 模型修改流程圖

2.2 用戶交互

2.2.1界面組件控制器

引入dat.gui.js,快速創(chuàng)建界面組件的相關(guān)控制流程如圖4所示。

圖4 界面組件創(chuàng)建

代碼如下:

gui=new dat.GUI();

gui.add(params,'planeConstantX',-40,40).step(0.001).name('planeX Constant').onChange(function(value){

clipPlanes[0].constant = value;renderer.render(scene,camera); })

2.2.2模型查看控制器(controls)

引入OrbitControls.js,實現(xiàn)對模型的交互,如旋轉(zhuǎn),縮放,移動等,代碼如下:

controls = new THREE.OrbitControls(camera,renderer.domElement);

controls.update();

2.2.3模型內(nèi)部與詳細信息查看

用戶通過點擊模型的任何部位以觀察該部位的詳細信息,具體實現(xiàn)流程如圖5所示。

代碼如下:

var raycaster = new THREE.Raycaster();

var mouse = new THREE.Vector2();

function showInfo(event){

$('#infoTable tbody').empty();

raycaster.setFromCamera(mouse,camera);

for(let index = 0; index < loadedObject.length; index++){

const element = loadedObject[index];

if(element.type=='Mesh'){

var intersects = raycaster.intersectObject(element);

for(let index = 0; index < intersects.length; index++){

const element = intersects[index];

for(const key in element){

if(element.hasOwnProperty(key)){

const subElement = element[key];

var table = '';

$('#infoTable tbody').append(table);} }} }}

此外,壩體模型內(nèi)部布置有監(jiān)測儀器模型,用戶通過界面組件控制器對壩體模型進行切割以便觀察。

3 工程模型實例

3.1 創(chuàng)建模型

以江蘇某工程為例,將實際的水利工程簡化成BIM模型。由于工程是重力壩,各壩段之間相似性很高,因此可以建立基本參數(shù)化族。壩段整體為擋水壩段,無泄水壩段,因此參數(shù)化族僅需要創(chuàng)建一個。

3.1.1參數(shù)化建族

大壩模型每個壩段存在著相似,因此可以建立參數(shù)化壩段族,將大壩的高度、頂部寬度、底部寬度、壩段寬度、上下游折坡點高度、坡率、廊道的底部高程、廊道高度、廊道寬度、廊道距離上游面距離、廊道個數(shù)等參數(shù),參數(shù)化形成模板壩段,之后整體模型多次加載壩段族并確定位置坐標(biāo)即可。具體過程如圖 6所示。

除了壩段模型外,監(jiān)測儀器按照不同監(jiān)測類型分別建立相應(yīng)的族文件,按照實際布置于大壩的位置引入到模型中即可。

3.1.2整體模型組建

參數(shù)化族創(chuàng)建好后需要載入項目,組合生成整體模型,流程如下:

(1)壩體基本族庫創(chuàng)建好后,新建項目文件。

(2)根據(jù)實際水利工程的橫剖面圖在建筑立面中繪制相應(yīng)的標(biāo)高。

(3)根據(jù)平面布置圖中各建筑結(jié)構(gòu)的位置繪制相對應(yīng)的參照平面。

(4)按順序依次載入建好的模型,以繪制好的標(biāo)高和參照平面為基準(zhǔn),完成模型的定位放置,最終完成所有模型的組裝。

圖6 參數(shù)化操作流程圖

3.2 網(wǎng)頁端模型顯示

將創(chuàng)建好的模型以.fbx格式導(dǎo)出,three.js可以加載帶材質(zhì)的模型也可以加載不帶材質(zhì)的模型,這取決于用戶需求。本工程不涉及大壩材質(zhì)的詳細展示,僅用相應(yīng)顏色進行渲染,使之與實際壩體相符,操作流程如圖 7所示。

圖7 格式轉(zhuǎn)換圖

模型格式轉(zhuǎn)換完成后,開始創(chuàng)建相應(yīng)代碼將BIM模型導(dǎo)入網(wǎng)頁端并顯示。實現(xiàn)模型旋轉(zhuǎn),平移,縮放,透視,模型剖切等功能如圖 8所示。

圖8 模型展示圖

4 結(jié)語

本文基于WebGL技術(shù),采用Three.js框架實現(xiàn)了水利大壩三維模型在客戶端Web瀏覽器的可視化展示與信息查看。通過調(diào)用不同模型加載器,導(dǎo)入外部三維模型;利用Three.js自帶的場景、相機、渲染器等基本功能模塊,實現(xiàn)了大壩三維模型在網(wǎng)頁端的顯示;通過模型控制器模塊使用戶能夠輕松完成交互,實現(xiàn)模型的平移、縮放、旋轉(zhuǎn)功能;利用界面組件控制器實現(xiàn)了壩體內(nèi)部細部構(gòu)造及其詳細信息在Web瀏覽器的查詢?yōu)g覽。本文的研究成果可應(yīng)用于水利工程信息化可視平臺開發(fā),為可視平臺的三維模型展示提供一種技術(shù)手段。

猜你喜歡
模型
一半模型
一種去中心化的域名服務(wù)本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數(shù)模型及應(yīng)用
p150Glued在帕金森病模型中的表達及分布
函數(shù)模型及應(yīng)用
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 92精品国产自产在线观看| 在线精品欧美日韩| 日本道中文字幕久久一区| 国产熟睡乱子伦视频网站| 国产欧美又粗又猛又爽老| 72种姿势欧美久久久大黄蕉| 国产成人精品视频一区视频二区| 国产成人91精品免费网址在线| 一级香蕉人体视频| 日本成人在线不卡视频| 亚洲日韩AV无码精品| 国产视频你懂得| 国产欧美精品一区二区| 久久人体视频| 精品视频第一页| 久久久亚洲色| 国产理论最新国产精品视频| 亚洲精品久综合蜜| 亚洲国产综合自在线另类| 中文字幕亚洲精品2页| 色婷婷视频在线| 成人在线第一页| 99热这里只有精品久久免费| 国产一区二区三区在线观看视频| 精品一区二区三区视频免费观看| 国产精品嫩草影院av| 亚洲乱码在线播放| 超清无码一区二区三区| 狠狠色成人综合首页| 亚洲天堂精品视频| 欧美69视频在线| 欧美国产成人在线| 亚洲综合久久一本伊一区| 亚洲国产成人在线| 99视频国产精品| 19国产精品麻豆免费观看| 激情视频综合网| 一级毛片无毒不卡直接观看 | 99久久亚洲精品影院| 在线观看国产小视频| 色爽网免费视频| 免费Aⅴ片在线观看蜜芽Tⅴ| 欧美亚洲国产精品第一页| 波多野结衣无码视频在线观看| 丁香六月综合网| 这里只有精品在线| 福利在线一区| 国产在线观看成人91| 91伊人国产| 国产女人喷水视频| 亚洲无码熟妇人妻AV在线| 一级全黄毛片| 三上悠亚精品二区在线观看| 欧美精品一区二区三区中文字幕| 亚洲日本www| www精品久久| 欧美亚洲国产一区| 亚洲成人高清在线观看| 欧亚日韩Av| 美女内射视频WWW网站午夜 | 自拍亚洲欧美精品| 伦精品一区二区三区视频| 东京热高清无码精品| 日本免费福利视频| 99国产精品免费观看视频| 亚洲天堂成人在线观看| 国产色偷丝袜婷婷无码麻豆制服| 手机成人午夜在线视频| 亚洲精品午夜天堂网页| 九色免费视频| 在线播放真实国产乱子伦| 亚洲天堂网视频| 亚洲中文字幕在线观看| 欧美日韩国产在线观看一区二区三区| 国产成人精品一区二区不卡| 婷婷亚洲视频| 色偷偷男人的天堂亚洲av| 日韩黄色在线| 一本二本三本不卡无码| 国产日产欧美精品| 四虎国产在线观看| 国产国语一级毛片|