室內空間最直觀的定義是被牆面、地板面和屋頂面圍合而成的有界空間。與室外空間相比,[ThingJS平臺]的室內空間的三維可視化要求更加精細,若是不能很好地表達容易對用戶形成誤導!javascript
與室外空間相比,室內空間的層次結構較爲明顯,各樓層間主要是經過樓梯、電梯等這些通道進行鏈接,除建築自己結構外還有門窗、欄杆、樓梯等要素,要注意這些人工要素的功能性表達。尤爲是室內空間通道的特殊性,製做室內模型的時候要注意空間劃分,包括單樓層通道,例如門、走廊,以及鏈接樓層間的垂直通道,包括步梯、扶梯、直梯,其中步梯通常爲建築結構的一部分,而扶梯和直梯屬於機械設施。java
如何對室內空間進行劃分呢?整個建築是室內空間的主體,建築是由外部輪廓和各樓層組成的,如圖所示。web
外輪廓
建築的外部輪廓也是整個室內空間的外部輪廓,它是室內空間與外部空間的分界線,即建築輪廓之內爲整個室內空間。人們若想由室外空間到達室內空間就必須經過輪廓上固定的通道。因爲對土地資源的節約利用,大型建築大多包括地下和地上兩部,所以,建築的外部輪廓也是由地上和地下兩部分組成。建築的外部輪廓主要包括:輪廓主體和輪廓通道。app
輪廓的主體主要包括:牆面、地板面、屋頂面三部分,這三部分組合在一塊兒將組合成一個閉合的室內空間。 框架
輪廓通道
輪廓通道是鏈接「封閉空間」與外部的「出入口」,根據其功能能夠將其分爲兩類,一是用於人員、車輛通行的通道,如門、室內停車場入口等;二是用於採光、通風、排水的通道,如窗戶、排氣通道等。第一類通道須要在地圖上進行表達,第二類通道需根據其特色、重要性以及實際需求選擇表達。ide
三維室內場景基本都帶了默認的層級切換腳本,讓相機視角進入建築內,所以出入口不只是建築可視化的一部分,也是獲取建築內信息的一個虛擬通道。webgl
```javascript
var app = new THING.App({
url: 'https://www.thingjs.com/static/models/storehouse' // 場景地址
});url
app.on('load', function (ev) {
// 場景加載完成後 進入園區層級
app.level.change(ev.campus);
});spa
// 監聽建築層級的 EnterLevel 事件
app.on(THING.EventType.EnterLevel, ".Building", function (ev) {
// 當前進入的層級對象
var current = ev.current;
// 上一層級對象
var preObject = ev.previous;
// 若是當前層級對象的父親是上一層級對象(即正向進入)
if (current.parent === preObject) {
console.log("從 " + preObject.type + " 進入了 " + current.type);
}
else {
console.log("進入 " + current.type + "(從 " + preObject.type + " 退出)");
}
});
// 監聽建築層級的 LeaveLevel 事件
app.on(THING.EventType.LeaveLevel, ".Building", function (ev) {
// 要進入的層級對象
var current = ev.current;
// 上一層級對象(退出的層級)
var preObject = ev.previous;
if (current.parent === preObject) {
console.log("退出 " + preObject.type + " 進入 " + current.type);
}
else {
console.log("退出 " + preObject.type + " ,返回 " + current.type);
}
})
```
室內空間
建築的樓層是室內空間的主體,其結構相對複雜,同一建築不一樣樓層間的結構也存在很大的差別,它是人們活動的主要區域,好比展廳和辦公區域是不一樣的類型。從空間劃分來看,樓層能夠分爲空間單元、障礙物、室內通道、物體,其中空間單元由牆體、櫃檯、貨架等障礙物分割出來,相對獨立;障礙物由牆體、圍欄組成。室內通道有走廊、門、大廳等水平通道,以及樓梯、直梯、扶梯等垂直通道,物體以可移動實物爲主,如室內擺放的花盆、桌椅、設備。
模型製做解析
該項目要求製做一棟辦公樓的室內模型,樓內共10層,包括9層地上辦公區和1層地下停車場,其中第二層是一個展廳,風格華麗。爲了加強逼真感,與管理人員進行協調後,對室內進行了較爲全面的照片採集工做,基於CAD建築設計圖和照片來製做室內模型,室外的建築裏面也會按照建築設計圖,與室內模型一同製做。具體分爲5個步驟:
*1. 基礎數據整理*
首先將建築設計圖中的各個平面圖、立面圖、剖面圖分離出來單獨保存,圖面上只保存建築、軸線等主要的信息。而後,將各個圖導入CampusBuilder客戶端,根據空間關係拼合到對應的位置。爲了方便製做,默認按照正南正北的方向擺放。爲了方便使用,每張設計圖都應打組,分別保存在相應的圖層之中凍結。製做時只顯示須要的圖紙圖層便可。
2. 室內結構建模
項目指定分層展現效果,因此製做時使用實體牆,對樓梯、電梯井、管道井等都進行建模。使用照片上的真實紋理對模型進行貼圖,效果逼真。
如二層展廳主要經過照片貼圖的方式對室內效果進行表現,在CampusBuilder內直接拖拽照片貼圖,設置相關貼圖參數,比3dsMAX中使用材質球和燈光渲染效果更爲直接和高效。
二樓展廳的總體模型展現:
*3. 室內陳設物品建模*
根據實拍照片,對室內陳設物品進行建模,包括辦公設備、辦公用品、綠植等,ThingJS平臺支持3D模型擴展,避免重複建模。這裏對室內物品信息管理沒有應用需求,因此將其與各層建築結構附加,按層展現。
有不少室內的三維建模在ThingJS平臺完成,經常使用的可視化套件組合有**CampusBuilder+ThingJS平臺+ThingDepot(3D模型庫)**,在CampusBuilder使用貼圖功能,就可以實現逼真的建築物、設備,ThingDepot提供已搭建好的模型,節省了建模時間,隨後搭建好的模型接入ThingJS平臺,實現燈光等渲染效果。
[ThingJS]是一款基於webgl的3D框架,比three.js更爲頂層!可以實現室內的交互、POI的顯示、樓層選擇及表達方式的切換,支持跨平臺多終端的應用,平臺自動設置場景光照效果,讓3D開發更加輕鬆,喜歡的點個贊再走哦~