云渲染雜談
近年來,三維地理信息系統(tǒng)的發(fā)展,有了相當(dāng)大的變化,從功能上,還是或展現(xiàn)的效果上,有一些三維地理信息系統(tǒng),都應(yīng)稱之為三維展示系統(tǒng)了,像一些基于OpenGL的系統(tǒng)、Unreal Engine的系統(tǒng)、Unity3D的系統(tǒng),更多的功能是偏重于三維場景、三維模型的特效,如雨雪、夜景、燈光等等,在三維應(yīng)用的功能上,并沒有太大的變換,只是場景變的更加吸引人了,動(dòng)畫的效果炫酷了。
游戲引擎
Unreal Engine 4、Unity3D技術(shù),本身是開發(fā)游戲的引擎,轉(zhuǎn)而做三維地理信息系統(tǒng),需要將游戲中的概念轉(zhuǎn)換到地理信息中,其中包括幾方面的轉(zhuǎn)換:
1、地圖數(shù)據(jù)的處理:地圖數(shù)據(jù)包括影像、模型、矢量等,在游戲的虛擬場景,是通過三維制作軟件進(jìn)行渲染制作,在地理信息中,需要將影像數(shù)據(jù)處理成符合游戲引擎的格式,三維模型數(shù)據(jù)批量擺放到系統(tǒng),現(xiàn)有的海量傾斜模型數(shù)據(jù)處理成合適格式,等等一系列進(jìn)行轉(zhuǎn)換,這需要開發(fā)對(duì)應(yīng)的工具,適用游戲引擎的讀取、轉(zhuǎn)換;
2、地理坐標(biāo)的轉(zhuǎn)換:地圖一般采用經(jīng)緯度的坐標(biāo)形式,游戲的虛擬場景一般是自建一個(gè)坐標(biāo)系統(tǒng)即可,所以在使用游戲引擎制作地理信息系統(tǒng)的時(shí)候,經(jīng)緯度坐標(biāo)和本身的坐標(biāo)轉(zhuǎn)換也是一個(gè)需要開發(fā)的過程,同時(shí),還要考慮將地圖數(shù)據(jù)放置正確的經(jīng)緯度位置;
3、動(dòng)態(tài)標(biāo)繪數(shù)據(jù):基本的點(diǎn)、線、面在游戲引擎中也能夠進(jìn)行支持,需要標(biāo)繪的形狀,需要開發(fā)算法,實(shí)現(xiàn)在游戲引擎進(jìn)行顯示。
當(dāng)然,為什么要用游戲引擎呢,打游戲的都能清楚,游戲引擎內(nèi)置了多種特效、粒子、動(dòng)畫效果等等,方便直接拿來進(jìn)行使用,不需要使用OpenGL進(jìn)行底層編寫。
云渲染
基于游戲引擎開發(fā)的三維地理信息系統(tǒng),一般都是開發(fā)成桌面端(CS)的應(yīng)用程序,一是需要滿足大場景的地圖渲染,二是保證顯示的特效,畢竟按照目前的瀏覽器,基于webgl的技術(shù),還達(dá)不到桌面端游戲引擎的渲染效果,流暢程度。云渲染,給了web端開發(fā)的一個(gè)解決方案,云渲染是通過在服務(wù)器上渲染三維場景,以視頻流的形式,傳遞到客戶端的瀏覽器上進(jìn)行顯示,并給客戶端提供了js-sdk,在瀏覽器上使用js和服務(wù)器端進(jìn)行通信,從而達(dá)到在瀏覽器上拖動(dòng)、點(diǎn)擊等操作,服務(wù)器端實(shí)時(shí)渲染出場景,再反饋到瀏覽器端進(jìn)行觀看。從上所知,云渲染需要服務(wù)器有良好的性能,能夠進(jìn)行三維實(shí)時(shí)的渲染,這和傳統(tǒng)GIS只是服務(wù)器端發(fā)布數(shù)據(jù)是不同的;云渲染需要保證網(wǎng)絡(luò)帶寬,視頻流的傳輸流暢度,需要足夠的帶寬,否則會(huì)出現(xiàn)卡頓的情況;瀏覽器端實(shí)現(xiàn)的功能,只會(huì)限于服務(wù)器上系統(tǒng)具有的功能,因?yàn)楣δ苁强拷o服務(wù)器傳遞信息,返回的實(shí)時(shí)視頻展示;系統(tǒng)中的地圖標(biāo)繪展示數(shù)據(jù),一般也需要放在服務(wù)器上,客戶端放置的話,也需要服務(wù)器端通過網(wǎng)絡(luò)地址進(jìn)行訪問。