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

一種傾斜攝影實景三維模型單體化方法

2018-07-03 04:39:42陳良超王俊勇重慶市勘測院重慶400020
測繪通報 2018年6期
關鍵詞:模型

陳良超,詹 勇,王俊勇(重慶市勘測院,重慶 400020)

利用傾斜攝影測量技術獲取地面多視角影像開展實景三維建模是近年來快速發展的一種新興城市三維建模技術[1-4]。由于該建模方法建模速度快,所生成模型真實性強,因而得到了快速發展和廣泛的應用[5-6]。但是由于利用傾斜攝影技術進行實景三維建模得到的模型通常是近似格網分割的“表皮”模型,其結構為連續的三角面構成的表面模型,不能夠區分出建筑、小品、道路、植被等地物單體信息,因此,在進一步開展數據分類、屬性掛接等三維應用時,需要對傾斜模型進行對象化(或稱單體化)操作,實現在“表皮”模型中識別出具體的建筑、小品、道路、植被等地物對象,從而支撐相應的三維應用開展。

目前,傾斜攝影實景三維模型的單體化[7-8]方式主要有3種:一是硬切分,直接利用對象矢量線范圍將對象從傾斜模型中分割出來,形成獨立的對象;二是ID單體化,事先根據對象矢量線范圍對傾斜模型三角面進行分割,屬于同一個對象的三角面賦予相同的ID;三是動態單體化,在傾斜模型進行最終展示時,通過間接方式實現矢量范圍線內的模型高亮顯示,從而實現單體化的目的。

本文提出的單體化方法屬于動態單體化方法,根據單體化模型的底面輪廓信息,利用GPU編程技術,實現模型渲染時的動態單體化。該方法的主要特點為:用于存儲模型單體化信息的可以不是一個矢量范圍線,而是利用圖像表達的對象范圍,以圖像表示范圍的最小單元為像素,因此這種方式可以表示任意形狀的對象(如中間有空洞或分割而導致不連續的建筑、小品或其他地物)。同時,本文采用GPU編程,在三維場景渲染時,開展動態單體化,方法效率高,實時性強,通過設置不同的顯示顏色控制接口,能夠實現單體化對象的高亮顏色更改和顯隱控制。

1 技術路線

本文的技術路線如圖1所示。首先,根據要進行單體化的模型,獲得單體化對象的底面,底面來源包括基礎測繪得到的底面矢量、手工勾畫的底面輪廓范圍等;然后生成底面輪廓紋理和底面模型,將底面模型和傾斜攝影實景三維模型加載到三維場景中,構造一個RTT(render to texture)相機,獲得觀察視點下的底面模型的RTT紋理,并利用投影紋理映射技術,將RTT紋理投影到傾斜攝影實景三維模型;最后通過GPU編程,根據底面紋理像素值,實現模型的單體化展示、顏色修改和顯隱等操作,達到單體化展示、控制和應用的目的。

圖1 單體化技術路線

2 底面模型

2.1 底面輪廓紋理

通常,單體化模型的底面輪廓信息以一個矢量多邊形來表示,本文的底面輪廓紋理,是由描述單體化模型的底面輪廓信息的圖片經過柵格化處理得到。相對于矢量表示的輪廓線,紋理圖片表示的輪廓基于像素點來描述,因此可以表示任意的底面輪廓形狀。例如,對于一個單體化對象,其底面輪廓可能為任意形狀,既可以是簡單的多邊形,也可以包含1個或多個矢量多邊形,多邊形之間可不相交,也可以是中間有空洞的面等,如圖2所示,相對于矢量表示的輪廓,紋理輪廓形式更加簡單。進一步的,將獲取的底面輪廓信息處理成底面輪廓紋理。底面輪廓紋理只包括兩個值,屬于對象底面的部分,像素值為W(255,255,255,255),其他位置的像素值為B(0,0,0,0)(也可設置為其他值,與W不同,alpha為0)。例如,若底面信息為矢量范圍線,處理后矢量范圍線及其內部的像素為W,范圍線外的像素為B,若范圍線中心有空洞不屬于底面,則空洞部分像素為B。

圖2 底面輪廓紋理

底面輪廓紋理的大小根據包圍盒的大小和需要設置的精度(米/像素,即每個像素表示的長度)來確定,并將長寬轉換成2的指數冪。設一個物體底面輪廓的包圍盒長h,寬w,精度m,得到的紋理像素的長度th、寬度tw為

(1)

式中,[]表示取整。根據式(1)得到的紋理尺寸為2的指數倍,同時,限制紋理尺寸最大值為1024,最小值為16。

2.2 生成底面模型

底面模型用于確定底面輪廓紋理在三維場景中的位置,在進行單體化時,加載至三維場景中,使得底面紋理在XOY方向的投影恰好與三維場景中對應的單體化模型位置一致,如圖3所示。

圖3 底面模型

本文給出2種底面模型生成方法。一種是簡單方法,計算出底面紋理圖對應的三維場景中4個角點的空間坐標為A(xmin,ymin,z)、B(xmax,ymin,z)、C(xmax,ymax,z)、D(xmin,ymax,z),z值統一取一個任意值,如0,利用A、B、C、D4個點構建矩形,得到底面模型。將上一步得到的底面投影紋理作為底面模型所用的紋理,A、B、C、D4個點對應的紋理坐標分別為(0,1)、(1,1)、(1,0)、(0,0)。

另一種方法是根據底面輪廓紋理像素對應的所有頂點在XOY面的投影,計算出所有頂點的凸包,并賦予z值,得到凸包形式的底面模型,若有矢量面,可直接利用矢量面賦予z值得到底面模型。紋理同樣使用的是底面投影紋理,根據模型4個角點A、B、C、D的坐標和頂點坐標(x,y),求得對應的紋理坐標(tx,ty),如下

(2)

此時,將底面模型加載到三維場景中時,底面模型與人工三維仿真模型在同一位置,其紋理顯示的底面范圍與人工三維仿真模型底面一致,由圖3可以看到,底面輪廓紋理已與需要單體化的模型實現了位置匹配,底面模型可以被選中,即需要單體化的對象可以被選中,下一步的內容就是將底面輪廓紋理投影到傾斜攝影三維模型。

3 基于GPU的動態單體化

3.1 GPU可編程管線

圖形處理器(graphics processing unit,GPU)也稱圖形處理單元。GPU是顯卡的計算核心,被用于紋理映射和多邊形著色等需要很多存儲空間的計算機圖形任務中。利用GPU進行一連串的圖形處理任務被形象地稱為“圖形流水線”,即圖形管線。圖形管線的入口為頂點坐標和顏色紋理信息,可輸出一幀適合當前顯示器顯示的圖像。GPU可編程管線則可由程序控制管線的輸入和輸出[9]。

可編程管線目前包括多個圖像處理器,本文主要使用OpenGL的頂點著色器(vertex shader)和片元著色器(fragment shader)。頂點著色器可以用于替代頂點和法線變換、紋理坐標生成和變換、光照及材質應用等傳統管線命令;片元著色器則應用于替代紋理應用、霧化和像素匯總等工作[10]。

對傾斜模型需要進行單體化的區域,構造一個RTT相機,將其渲染至紋理,得到單體化對象底面模型的RTT紋理,在GPU可編程管線階段,利用著色器語言,根據底面輪廓紋理的像素值,判斷修改最終顯示的片元顏色值,最后利用投影紋理映射PTM(projective texture mapping)技術,將紋理貼至傾斜三維模型場景上,實現傾斜三維模型的動態單體化。

3.2 RTT相機

渲染到紋理[11-12]指將渲染目標從系統幀緩存內取出,并生成一張紋理。利用渲染到紋理技術可以將場景渲染到紋理后進行后處理,因而被廣泛應用到各種特效處理中,如3ds Max中,在UV展平后,可以將所有紋理合并成一張貼圖。渲染到紋理通常包括4個步驟:確定用來RTT的渲染場景;創建RTT相機,創建紋理并綁定紋理和渲染對象到相機;利用RTT相機渲染場景;得到渲染后紋理。

RTT相機是用來構建渲染場景的相機,在單體化應用中,首先需要一個俯視的RTT相機,并創建一個空白紋理對象,將其綁定到RTT相機,用來存儲最終的RTT紋理,紋理的大小可以根據顯卡的性能設置,一般為2的指數冪。然后確定RTT相機的位置、投影方式及RTT相機的觀察范圍等,進而計算出相機的投影矩陣和視圖矩陣。

圖4為RTT相機示意圖。a為場景主相機的視椎體,即透視投影,B為模型的包圍盒(本文中用于單體化的底面模型,當場景中觀察到多個單體化模型時,為多個模型包圍盒的并集),c為a與B的交。此時,RTT相機為俯視相機,視椎體為d,視椎體恰好包圍c,從而確定RTT相機的投影矩陣P和視圖矩陣V。由上可知,RTT相機的參數由主相機和單體化底面模型決定。

圖4 RTT相機示意圖

將c渲染到紋理上,得到RTT紋理。此時,紋理分辨率ratio如下

ratio=texturesize/dsize

(3)

式中,dsize為d的頂面面積,即RTT相機的投影范圍大小;texturesize為紋理的大小;ratio值越大,表示d頂面的紋理越清晰。d的頂面面積越大,RTT相機渲染到紋理得到的圖片分辨率越低,反之越清晰。因此,紋理分辨率決定了單體化模型的邊緣的光滑程度。分辨率越高,邊緣越光滑清晰。由于RTT紋理尺寸為預設值,因此要提高紋理分辨率ratio的值,則要在可能的情況下減小dsize。在實際操作中,有以下措施:

(1) 控制主相機的視椎體大小,在保證場景的情況下,減小主相機的遠近裁切面,從而減小求交部分c的大小,如圖5所示,當B很大時,主相機只觀察B的一部分時,自動調整f1、f2的值,使得主相機恰好包括視椎體的物體,減小a,從而減小c,進而減小d。

圖5 RTT自動裁切面

(2) 在主相機接近水平時,主相機的遠裁切面較大,此時,設置一個水平距離L,如圖6所示,A點為主相機位置,AB為相機觀察方向,與地球相切,r為地球半徑,h為海拔高,根據幾何關系,求得L,如式(3)所示。此時B所在位置為主相機遠裁切面所在位置。若三維場景較小,可按整個場景的包圍盒大小調整L的長度,同時當坐標系為平面系時,也可以按式(4)進行遠裁切面的設置作為近似控制值。

(4)

圖6 RTT自動裁切面設置

3.3 投影紋理映射

投影紋理映射(projective texture mapping),是指將一張紋理映射到物體上,類似于將幻燈片投影到墻上[13]。投影紋理映射的優點為:首先,用戶不需要指定投影頂點的紋理坐標,不需要在三維模型建模或應用程序中計算出紋理坐標的值;其次,可以避免因插值帶來的紋理坐標不均勻,從而產生紋理扭曲的現象。

投影紋理映射使用了OpenGL中的紋理坐標自動生成技術。其流程為:根據視點相機的位置、相機姿態,以及接收投影的物體頂點坐標,求出每個接收投影的物體頂點坐標所對應的紋理坐標,然后根據紋理坐標獲取紋理的值,具體操作在頂點著色器中,利用視點矩陣投影矩陣獲得[12]。

紋理投影矩陣如下

TVP=B×P×V×W

(5)

式中,TVP為紋理投影矩陣,作用是將頂點坐標轉換成紋理坐標;B為偏移矩陣;P為RTT的投影矩陣;V為RTT的視圖矩陣;W為模型矩陣。其中,P和V都可通過計算獲得,模型矩陣W從模型中獲得,而偏移矩陣B是將投影空間中的頂點坐標從[-1,1],歸一化到[0,1],方法為先縮小1/2,再平移1/2。

在應用程序中計算出TVP以后,進一步在著色器中,使用TVP和模型頂點v,得到投影紋理坐標TVPT,如下

TVPT=TVP×v

(6)

根據投影紋理坐標,獲取紋理中對應的像素值,在本文的單體化中,即獲得了底面輪廓紋理的像素值,從而將傾斜攝影模型的頂點和底面紋理輪廓對應起來,當底面紋理輪廓像素值Pixel等于W時,該紋理單元顯示為單體化模型的紋理單元,屬于單體化模型,否則不屬于單體化模型,見表1。對于不屬于單體化模型范圍的部分,由于底面模型紋理的a值為0,因此與傾斜攝影實景三維模型混合后的顏色依然顯示為傾斜攝影實景模型的紋理顏色。

表1 單體化模型的判斷

對于Pixel值為W屬于單體化模型的像元,進一步設置最終顏色顯示。設置一個顏色控制變量mColor,其類型為片元著色器語言中的一致性變量,根據mColor設置顏色的不同,修改單體化對象的最終顯示的混合顏色。

此外,設置當mColor為H(0,0,0,255)時,可利用Discard方法或顯示顏色為透明,實現挖洞功能,見表2。最終結果如圖7所示,依次展示的模型隱藏,模型不同顏色選中。

表2 輪廓判斷與顯示

圖7 單體化結果

4 試驗與應用

本文利用重慶市互聯網產業園及其周邊的傾斜攝影實景三維模型開展項目試驗,單體化模型信息來源于同區域的人工三維精細模型數據。試驗采用三維平臺為重慶市勘測院自主研發的集景三維數字城市平臺。工作流程如圖8所示,人工三維仿真模型通常為3ds Max制作的傾斜三維模型,為對象化的單體模型,通過利用俯視圖,獲取每個仿真模型所對應的底面輪廓紋理,建立底面模型,實現對同一位置傾斜攝影三維模型的單體化展示和應用。

圖8 基于人工模型的傾斜攝影模型應用

圖9為通過本文方法實現道路和建筑的單體化展示效果,可以利用圖層開關設置建筑和道路的不同顏色。同時,可以對單體化對象進行顯隱,例如,圖10(a)為利用單體化技術,設置mColor為H(0,0,0,255),實現將所有的建筑模型隱藏,此時通過添加人工三維仿真建筑模型,實現傾斜攝影實景三維模型與人工三維仿真模型的共同展示,如圖10(b)所示。圖11為單獨選中一棟建筑,并查詢其ID值,因此,利用ID值可以進一步掛接屬性信息,進而開展單體化應用。

通過多個場景的試驗比較,在進行動態化時,場景的幀率變化很小,因此對三維場景的渲染效率影響小。通過以上試驗證明,本文方法是有效的,并且運行效率高,效果較好。

圖9 單體化道路和建筑模型

圖10 建筑模型隱藏及顯示仿真建筑模型

圖11 選中單個建筑

5 總結與展望

本文通過底面輪廓紋理和底面模型的建立,實現了傾斜攝影實景三維模型單體化技術。由于底面信息采用紋理表示,因而可以實現像素級的任意形狀的模型單體化;同時,基于GPU編程技術,可以高效、動態地實現單體化對象的顏色修改、顯示和隱藏,從而為傾斜攝影實景三維模型的單體化應用提供了技術基礎。進一步利用本文的實時動態單體化技術,可以在傾斜攝影實景三維模型上實現專題圖的制作,進行模型任意的開挖,疊加三維仿真模型,也可以實現在傾斜攝影實景三維模型作為現狀模型,疊加設計方案、開展方案對比等方面的應用。

參考文獻:

[1] 黃健,王繼.多視角影像自動化實景三維建模的生產與應用[J].測繪通報,2016(4):75-78.

[2] 朱國強,劉勇,程鵬正.無人機傾斜攝影技術支持下的三維精細模型制作[J].測繪通報,2016(9):151-152.

[3] 王琳,吳正鵬,姜興鈺,等.無人機傾斜攝影技術在三維城市建模中的應用[J].測繪與空間地理信息,2015(12):30-32.

[4] 譚仁春,李鵬鵬,文琳,等.無人機傾斜攝影的城市三維建模方法優化[J].測繪通報,2016(11):39-42.

[5] 李德仁,劉立坤,邵振峰.集成傾斜航空攝影測量和地面移動測量技術的城市環境監測[J].武漢大學學報(信息科學版),2015,40(4):427-435.

[6] 文雄飛,張穗,張煜,等.無人機傾斜攝影輔助遙感技術在水土保持動態監測中的應用潛力分析[J].長江科學院院報,2016,33(11):93-98.

[7] 王洪峰,李鐵軍,趙龍.傾斜攝影實景三維單體化模型自適應聚類算法[J].應用科技,2017,44(2):35-39.

[8] 王勇,郝曉燕,李穎.基于傾斜攝影的三維模型單體化方法研究[J].計算機工程與應用,2018(3):178-183.

[9] 仇德元.GPGPU編程技術:從GLSL、CUDA到OpenCL[M].北京:機械工業出版社,2011.

[10] 王銳,錢學雷.OpenSceneGraph三維渲染引擎設計與實踐[M].北京:清華大學出版社,2009.

[11] 田壯,聶蕓.基于RTT的三維模型標簽實時顯示技術[J].現代電子技術,2015(20):55-58.

[12] 王俊勇,詹勇.一種基于GPU的三維數字地形實時編輯方法[J].城市勘測,2016(1):93-97.

[13] 劉子才,胡谷雨,羅健欣.基于特征匹配的關聯投影紋理映射[J].計算機與現代化,2016(1):64-68.

[14] SHREINER D.OpenGL編程指南(原書第7版)[M].李軍,徐波,譯.北京:機械工業出版社,2010.

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 日韩中文无码av超清| 91九色视频网| 毛片在线播放a| 91福利片| 国产人人干| h视频在线观看网站| 毛片免费观看视频| 亚洲精品第1页| 亚洲国产日韩欧美在线| 国产九九精品视频| a色毛片免费视频| 在线观看亚洲人成网站| 国产导航在线| 国产精品女人呻吟在线观看| 亚洲中文字幕手机在线第一页| 国产经典三级在线| 国产成人无码AV在线播放动漫| 一本久道久久综合多人| 一本大道东京热无码av| 91国语视频| 国产中文一区a级毛片视频| 国产va在线观看免费| 国产精品无码一区二区桃花视频| 国产真实二区一区在线亚洲| 国产精品va| 午夜国产小视频| 老司机精品久久| 五月激激激综合网色播免费| 青青草国产一区二区三区| 亚洲资源站av无码网址| 亚洲国模精品一区| 国产系列在线| 国产成人狂喷潮在线观看2345| 久久精品电影| 中文精品久久久久国产网址| 色窝窝免费一区二区三区 | 99在线观看精品视频| 成人免费网站在线观看| 中文字幕欧美日韩高清| 无码人中文字幕| 综合成人国产| 精品国产成人国产在线| 91精品国产丝袜| 中文字幕色站| 国产成人精品综合| 亚洲天堂久久新| 四虎永久在线| 国产 在线视频无码| 国内老司机精品视频在线播出| 亚洲三级网站| 亚洲第一黄色网址| 国产永久在线视频| 久久精品丝袜| 黄色一级视频欧美| 亚洲另类国产欧美一区二区| 欧美精品导航| 久久久久久久久久国产精品| 亚洲精品无码专区在线观看 | 激情综合婷婷丁香五月尤物| 91精品视频播放| 国产成人久久综合777777麻豆| 国内毛片视频| 日韩天堂网| 99激情网| 欧美亚洲中文精品三区| a毛片免费观看| 中文字幕无码中文字幕有码在线| 亚洲欧美自拍视频| 青草视频久久| AV不卡在线永久免费观看| 无码'专区第一页| 久久国产免费观看| 中文字幕2区| 欧美www在线观看| 99视频在线观看免费| a毛片免费看| 女人18毛片水真多国产| 激情亚洲天堂| 天堂亚洲网| 久久久久亚洲精品无码网站| 欧美国产日韩在线观看| 黄色一级视频欧美|