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

基于誤差控制的多分辨率紋理無縫映射

2018-12-22 07:40:30高保祿竇明亮
計算機工程與設計 2018年12期

高保祿,張 冰,竇明亮

(太原理工大學 軟件學院,山西 太原 030024)

0 引 言

三維地形生成與可視化問題在虛擬戰場模擬、VR系統等方面的應用逐漸增多,實現大型地形場景以更快的速度、更低內存占有率進行更真實的地形環境模擬,使得地形紋理映射技術成為今后一段時間內的研究重點[1,2]。

文獻[3]采用多分辨率紋理映射技術,將可能在紋理映射過程導致塊間裂縫產生的各項因素進行融合計算以消除地形紋理的裂縫,更好實現模型的連續性。文獻[4]提出了一種基于馬爾可夫隨機模型的合成算法,利用紋理分塊可有效保留圖像的全局信息的特性匹配紋理,遮擋與迭代共同作用來消除紋理間縫隙,實現紋理無縫映射,但對于大型場景,迭代過程過于復雜,會減慢渲染的速度。文獻[5]雖然將大部分計算過程從CPU轉移到GPU,將三維地形模型與過程紋理映射結合起來以消除紋理塊間的裂縫,但是裂縫的處理方法被簡化,最終的渲染依然存在不連續。對于文獻[6]提出的紋理映射方法,最終效果比較好,但約束點需要人為指定,缺乏靈活性。

本文實現的地形紋理的無縫映射是在多分辨率紋理映射技術的基礎上,通過對視點頂點的各參數進行加權計算,引入基于埃爾米特的視點運動預測,從根本上解決了紋理分塊間的裂縫。此外,本文為了計算可視范圍內紋理誤差而降低誤差,又構建了基于包圍球的視錐剪及視點運動預測。最后,為了實現地形實時渲染,取得較好的視覺效果,本文對視點運動情況進行預測,并釋放了不在視線范圍的紋理信息。

1 基于視點運動預測的無縫紋理映射

1.1 四叉樹紋理分塊

對大型地形場景進行實時繪制與渲染時,首先需將整體地形紋理塊劃分為多個子塊。本文算法在這一步驟中使用相同大小的紋理圖像來表示結點,將其分為不同層次,各層次結點紋理劃分塊的大小不同,采用這種四叉樹數據結構[7]來實現對地形紋理進行分層次分塊操作。結合文獻[5],不斷將地形紋理塊等分為4部分,直至達到分辨率要求,以使渲染的畫面連續,圖1為方法具體過程。

圖1 地形紋理四叉樹分塊

1.2 地形無縫紋理映射

為實現地形紋理無縫渲染,如何正確的將紋理貼在地形塊上是非常關鍵的。首先要將各個紋理像素地址在對象坐標系上進行映射,再以屏幕坐標系為基準進行顯示。紋理映射的關鍵步驟在于計算紋理坐標,但由于實時繪制的速率受制于對大規模紋理地形的計算,而且不同的視點位置及視線方向所觀察到的地形也極不相同,所以,根據虛擬漫游者在漫游空間所處的視點狀態進行視點運動預測,是計算紋理坐標的基礎。本文采用的預測方法為基于埃爾米特的視點運動預測法,將初始時刻t0時的視點位置及視線方向作為輸入,利用下一時刻t1、t2分別對應的視點狀態T1、T2得到t3時刻的視點運動狀態T3

(1)

其次,本文判斷可見范圍及三角面頂點的可見性,從而剔除不可見點,采用了文獻[8]內的方法。再根據視點位置及視線方向進行視錐裁剪,構造包圍球,將視錐體投影到該平面。將投影面各個邊距包圍球球心的距離與半徑作比較,若小于則該地形塊可見。

采用權值法,即通過求得紋理圖像各邊緣距離三角面值的大小來判斷三角頂點的可見性。距離大于0時三角面可見,反之不可見。接著將紋理貼片組合得到相應的紋理圖像。

若直接將從不同角度收集的圖片組合起來進行渲染會使紋理塊間連續性差,出現畫面不連續、卡頓跳躍的現象,降低漫游者的沉浸感。因此,本文采用文獻[9]提出的方法,綜合考慮視點到頂點的距離、頂點的像素投影位置到圖像的距離以及頂點的法線與頂點到視點的向量之間夾角3個因素影響,由此,對各個參數賦予不同權值進行計算得到紋理像素信息

G′m,n=Gm,n+ω·P(x,y)

(2)

其中G(m,n)表示紋理圖像的像素值,ω表示圖像的像素加權值,P(x,y)代表每個點的像素值。計算如式(3),為了消除紋理間裂縫,使畫面連續性更強,在運算過程中考慮了視點位置和方向的精確性

(3)

圖像頂點法向量為N,其三維坐標為V(x1,y1,z1),而視點三維坐標為Ti,(dmin,dmax)限制視點的視錐范圍,頂點落下投影到圖像主點的最短距離為dz。

2 基于多分辨率的紋理調度

紋理調度算法有很多,相比文獻[9]采用的多分辨率紋理映射技術,本文在此基礎上,采用多分辨率金字塔結構[6]的紋理映射技術對數據進行分層次的壓縮與存儲,減少空間占有率。此外,相比現有文獻對紋理映射進行的只考慮了紋理的分辨率級別和紋理分塊距視點的距離計算紋理誤差,通過構造包圍球,根據視點位置及視線方向進行視錐裁剪,進行誤差控制計算時,加入了參數包圍球半徑R,從而實現計算結果更為精確,實現高保真的紋理映射。然后通過預估釋放算法[9,10]對不需要的紋理塊釋放其內存空間,減少渲染所需時間。

為加快紋理渲染速率,需避免頻繁地將海量紋理塊數據調入調出,因此需要根據各層次信息及視點可見范圍,實現實時調度可見地形紋理。依據與視點的距離進行多分辨率紋理的渲染。

2.1 基于多分辨率金字塔的數據壓縮存儲

通過構建多分辨率金字塔[6]結構對海量的紋理塊進行劃分,并對其分層壓縮存儲,在加載地形時,不像傳統的方法一次性將大量地形數據直接調入內存,而是實時調入當前渲染地形塊相應分辨率的相應紋理塊,從而達到縮短計算時間,減少內存占用率的目的。此外,分多次將當前所需紋理塊實時調入可以得到較好的渲染效果,使漫游者有更好的視覺體驗。圖2為本文方法構建的多分辨率金字塔模型。

圖2 多分辨率紋理金字塔模型

第0層為整個地形塊,分辨率為r。第1層將第0層等分為4個子塊,相應的分辨率變為2r。第2層又將第一層中的4個地形塊等分為4個字塊,分辨率都為4r。按照此規則繼續向下劃分,第k層是將第k-1層的所有地形塊等分為4個字塊形成的,分辨率也是上一層的2倍,不僅地形模型,紋理模型也需滿足下一層是上一層分辨率的2倍。再結合文獻[11]的方法映射紋理圖像,對視點范圍內的地形,根據由近及遠,分辨率由高到低的對應關系進行映射。

2.2 基于包圍球半徑的誤差控制

文獻[3]根據紋理分辨率級別和紋理分塊距視點的距離計算紋理誤差,本文在此基礎上,構造包圍球,根據視點位置及視線方向較為準確地進行視錐裁剪,將包圍球半徑考慮進去。此外,文獻[3]采用的幾何誤差是取平均值,考慮較為單一,本文將地形塊的高程值考慮進去,更為精準。

在數據預處理階段構造如圖3所示的包圍球,進而對地形塊進行視錐裁剪,其中R為構造的包圍球半徑,O為球心,平面ABCD表示地形塊。

圖3 地形塊包圍球構造

如何選取適合的紋理分辨率是對多分辨率紋理進行映射的關鍵,紋理分辨率選擇過高、過低都會對映射結果產生影響。通常,分辨率的選擇與地形塊的大小、根據視點運動判斷的下一幀視線范圍等因素都是相關的。因此,在多分辨率紋理映射過程中,紋理誤差的存在是不可消除的。誤差一般從幾何誤差和屏幕誤差考慮。首先,計算幾何誤差得到ε

(4)

其中,Hi為對角線交點O的高程值,Ha、Hb、Hc、Hd分別為正方形4個端點A、B、C、D處的高程值。

根據分辨率等級及視點狀態計算紋理誤差

(5)

其中,k表示紋理圖像的分辨率級別,e為視點,w為紋理分塊的大小,ε表示幾何誤差,ω代表視域廣角的像素個數,d表示視點到紋理分塊ABCD的距離

(6)

2.3 內存釋放

在很短的時間內加載大規模地形紋理數據對GPU的計算能力要求很高,為確保實時繪制地形紋理,釋放紋理空間是十分關鍵和重要的[11],本文在使用艾爾米特插值算法對用戶視點運動進行預測的基礎上,采用了預估釋放算法(advance estimate release,AER)[12]。將初始視點的狀態數據,即其坐標與視線方向作為算法的初始輸入,再將視點移動過程中所掃過區域的紋理塊數據實時加載入內存,再將視點已掃過且不在視域內的紋理塊移出內存。當緩沖區中的紋理塊數據達到上限時,利用艾爾米特插值算法對視點的移動進行預測判斷,將已經在視點范圍內出現過且不在預測的下一幀視點范圍內的紋理數據按照優先級先后移出內存空間,以此來實現實時紋理渲染。圖4為本文算法流程。

圖4 地形紋理無縫映射過程

3 實驗結果和分析

本文基于通用windows平臺,模擬實驗采用OpenGL與Visual Studio2013完成。計算機硬件配置為CPU(Intel(R) Core(TM) i7-3770 CPU @ 3.40 GHz),顯卡(AMD Radeon HD 7470),實驗使用的The Puget Sound Area地形數據是Large Geometric Models Archive at Georgia Tech網站提供的。

本文實驗設置共分為4步,①需要在計算機中加載紋理影像,并對其進行計算以得到相應的地形紋理數據;②使用本文中提到的各種算法對紋理數據分塊處理,接著將地形高程數據和紋理數據從數據庫中讀出來;③主要工作是將位圖文件轉化為紋理貼圖;④釋放空閑紋理塊內存占有率。

3.1 圖像紋理塊大小對比

本文在傳統多分辨率紋理映射算法[3]的基礎上,充分考慮了地形紋理像素生成過程中可能對紋理映射產生影響的多種復雜因素,提出利用艾爾米特差值算法對視點運動進行預測,將角度與距離考慮在內,與整個地形模型進行加權計算,來減少地形紋理誤差。同時,在進行誤差控制計算時,將根據視點位置及視線方向構成的包圍球考慮在內,實現較小的紋理映射誤差。圖5中將不同算法在對相同1000幀紋理數據進行繪制時得到的紋理塊大小進行對比展示。

圖5表明,對相同大小的地形塊分別采用OpenGL、傳統多分辨率紋理映射算法、本文算法進行繪制,得到的紋理大小不同,即它們所需的計算量也有所差異。本文算法在對地形紋理塊進行繪制時,得到的紋理塊較未進行多分辨率計算的OpenGL與傳統映射算法最小,從而所需的計算量也最小,由此獲得了較大的幀速率,保證了渲染速度。

圖5 圖像紋理大小對比

3.2 幀速率對比

如表1所示,為本文算法與其它多分辨率紋理映射算法在對地形紋理進行渲染時的幀速率對比情況。本文算法一方面增加了艾爾米特插值算法對用戶視點運動進行預測,在對控制誤差進行計算時將包圍球的半徑考慮在內,消除了地形紋理塊間裂縫,使得最終的畫面渲染效果更加平滑;另一方面,本文采用不同于傳統算法的基于金字塔的圖像壓縮算法來保證有較好渲染效果的同時可以具備較高的幀速率,提高地形紋理渲染速度,取得較好的視覺效果。

表1 不同算法的幀速率對比

可以看出,運用本文提出的算法具有更小的算法計算量,且利用對視點的運動軌跡進行預測與誤差的控制計算實現了高保真的紋理無縫映射,雖然在一定程度上增強了CPU的負擔,但是使渲染畫面更加平滑,極大提升了用戶體驗。

4 結束語

為了消除紋理塊間的裂縫,實現高保真的紋理無縫映射,在對紋理數據進行繪制時,本文將角度與距離考慮在內,與整個地形模型進行加權計算,再結合對視點運動軌跡的預測,來減少地形紋理誤差。同時,對于地形紋理映射時可能產生的投影誤差,考慮不同的紋理塊與視點距離的遠近結合分辨率的級別,以此實現紋理塊間的無縫映射,從而獲得更為真實的地形紋理映射。

從各項實驗結果可以看出,本文算法在誤差控制、消除地形紋理間裂縫、對不同分辨率的紋理塊進行實時調用、大規模地形實時渲染方面相較于文中提到的其它算法更具優勢,且在保證有較高的幀速率的同時,內存占用率更少,可以以更快的速度實現地形紋理的實時無縫渲染。

主站蜘蛛池模板: 国产精品内射视频| 国产精品精品视频| 国产在线精彩视频二区| 91精品在线视频观看| 免费看a级毛片| 午夜日b视频| 国产va在线观看| 久久精品丝袜| 一本色道久久88亚洲综合| 国产女人18毛片水真多1| 55夜色66夜色国产精品视频| 色婷婷狠狠干| 欧美黄色a| 亚洲精品亚洲人成在线| 欧美国产日产一区二区| 亚洲国产中文欧美在线人成大黄瓜| 亚洲福利视频一区二区| 99热这里只有免费国产精品| 91久久夜色精品| 国产视频一区二区在线观看| 亚洲成人黄色在线| 亚洲丝袜第一页| 国产日韩欧美一区二区三区在线| 久久频这里精品99香蕉久网址| av一区二区三区高清久久| 无码久看视频| 91精品专区| 久久影院一区二区h| 国产亚洲精品无码专| 日韩AV无码一区| 四虎国产精品永久在线网址| 狠狠久久综合伊人不卡| 日本精品影院| 国产精品自在自线免费观看| 自慰网址在线观看| 亚洲有码在线播放| 国产偷国产偷在线高清| 国产国模一区二区三区四区| 国产麻豆精品在线观看| 亚洲国产一成久久精品国产成人综合| 扒开粉嫩的小缝隙喷白浆视频| 亚洲高清国产拍精品26u| 国产成人超碰无码| 日本精品中文字幕在线不卡 | 精品人妻系列无码专区久久| 韩国福利一区| 黄网站欧美内射| 四虎成人精品| 91丝袜在线观看| 欧美成人精品高清在线下载| 亚洲日本一本dvd高清| 中文字幕人成人乱码亚洲电影| 久久精品aⅴ无码中文字幕| 国产全黄a一级毛片| 国产产在线精品亚洲aavv| 91美女视频在线观看| 亚洲无限乱码| 国产女人在线| 国产在线视频福利资源站| 91精品人妻互换| 久操线在视频在线观看| 日本一区中文字幕最新在线| 亚洲男人天堂网址| 国产国拍精品视频免费看 | 色偷偷av男人的天堂不卡| 国产小视频免费观看| 成人一级免费视频| 成人午夜网址| 麻豆精品在线播放| 国产无套粉嫩白浆| 亚洲品质国产精品无码| 国产福利一区在线| 亚洲Av激情网五月天| 欧美日韩中文字幕在线| 一区二区自拍| 亚洲精品欧美重口| 国产精品大白天新婚身材| 国产va在线| 久久国产精品77777| 日韩少妇激情一区二区| 久久久久久久久亚洲精品| 亚洲国产理论片在线播放|