專利名稱:基于圖像的三維遠程可視化方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡應用技術(shù)領(lǐng)域,具體涉及一種基于圖像渲染(ImageBased Rendering,IBR)的三維遠程可視化方法。
背景技術(shù):
遠程可視化作為可視化技術(shù)的一個重要分支,在計算機的發(fā)展過程中扮演著越來越重要的角色。這主要是因為它可以使普通用戶能夠利用遠端的高性能可視化系統(tǒng),去完成自身所無法勝任的可視化的工作以及實現(xiàn)對遠端虛擬場景的瀏覽。然而到目前為止,由于網(wǎng)絡帶寬等諸多原因的限制,仍沒有一種行之有效的方法來完成遠程可視化工作。
當前大多數(shù)遠程可視化技術(shù)主要采用兩種實現(xiàn)方式。
一是下載虛擬場景或者3D模型數(shù)據(jù)到客戶機上,重新繪制瀏覽。這種方法有以下缺點,如過長的下載時間、較高的帶寬要求、大量的內(nèi)存空間以及很強的計算能力等,這對于一般用戶來說是很難滿足的,因而用戶在瀏覽時很難獲得較好的交互性。
針對上述問題,Bernardini等人提出了split-browser的概念,也是當前使用較多的第二種實現(xiàn)方式。它的主要思想是在服務器端執(zhí)行渲染工作,然后將渲染的結(jié)果以圖片的形式傳回客戶端,這樣遠程顯示的問題就轉(zhuǎn)化為圖像傳輸?shù)膯栴}。通過對圖像進行合適的壓縮和解壓,在實際應用中這種方法能夠取得較好的結(jié)果。它的優(yōu)點主要表現(xiàn)在較小的數(shù)據(jù)量;對客戶端沒有特殊要求;能夠?qū)?D模型進行版權(quán)控制。
不過這種方法并不能保證系統(tǒng)具有一個穩(wěn)定的、良好的交互性。因為對于split-browser模式而言,交互性主要體現(xiàn)在以下過程客戶端收集交互信息(如旋轉(zhuǎn)、平移、縮放等),將其發(fā)送到服務器,讓遠程服務器做所有的繪制工作,并將結(jié)果通過網(wǎng)絡發(fā)送到本地終端。本地終端將收到的圖片顯示到屏幕上,同時再收集用戶的響應信息,發(fā)回給遠程服務器。這種方法實現(xiàn)起來雖然簡單、直接,但交互性卻由網(wǎng)絡性能來決定,而當前多數(shù)網(wǎng)絡協(xié)議(像TCP/IP等)只支持best-effort,延遲并不可控,因而交互性不能得到應有的保障。
IBR(Image Based Rendering)是基于圖像渲染的縮寫,是當前圖形學研究的熱點問題。它利用圖像而不是三維幾何模型來繪制新視點下的幀,這就使得一方面它可以減少傳統(tǒng)建模的繁瑣過程,另一方面由于它只是對圖像象素進行操作,所以對一般的PC機而言都能勝任,而且它渲染得到結(jié)果的真實性也是傳統(tǒng)方法無法比擬的。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有遠程可視化技術(shù)的不足,提供一種基于圖像的三維遠程可視化方法,該方法具有高交互性、高質(zhì)量和高可靠性的特點。
本發(fā)明提供的一種基于圖像的三維遠程可視化方法,其步驟為(1)客戶端接收用戶發(fā)送的交互命令并解析(1.1)用戶是否要求查看新的三維模型?如果是,轉(zhuǎn)步驟(2);否則,繼續(xù)步驟(1.2);(1.2)用戶是否為快速瀏覽?如果是,繼續(xù)步驟(1.3);否則,轉(zhuǎn)步驟(2);(1.3)緩沖區(qū)是否為空?如果是,系統(tǒng)向用戶發(fā)出錯誤提示;否則,直接從緩沖區(qū)讀取視圖和視點,并采用三維卷繞算法對圖象進行渲染后顯示;(2)客戶端向服務器端提交瀏覽三維模型的請求,并提交用戶的視點位置,請求獲得精確視圖;(3)主服務器解析客戶端提交的請求,并判斷用戶要瀏覽的三維模型的模型文件是否存在于主服務器的數(shù)據(jù)庫中,(3.1)如果存在則從主服務器的數(shù)據(jù)庫中讀取所需模型文件,進入步驟(4);
(3.2)如果不存在則與服務提供者建立連接請求獲取需要的模型文件,如果仍不存在,則返回客戶端用戶界面并給出用戶提示;否則,服務提供者將所需模型文件發(fā)送至主服務器,進入步驟(4);(4)主服務器渲染模型文件生成精確視圖,其處理過程為(4.1)載入從數(shù)據(jù)庫中讀取的三維模型文件;(4.2)將其放入三維圖形管道渲染,得到精確視圖;(4.2)在顯存中讀出當前精確視圖的色彩信息和深度信息,并記錄當前視點的位置;(5)主服務器將步驟(4)中獲得的視圖色彩信息和深度信息進行壓縮處理;(6)主服務器通過網(wǎng)絡將得到的壓縮文件及視點位置發(fā)送給客戶端;(7)客戶端接收到主服務器發(fā)送的壓縮文件和視點位置后,將它們解壓縮還原為精確視圖后存入既定的緩沖區(qū),并顯示色彩信息;(8)客戶端繼續(xù)步驟(1),直至任務完成。
本發(fā)明提出的遠程可視化方法可以很好地解決傳統(tǒng)方式交互性較低的問題,這主要是基于一個簡單而又行之有效的,但通常易被忽略的事實即用戶的瀏覽速度同其對畫面質(zhì)量的要求成反比。因為在用戶對場景模型進行快速瀏覽時,通常的目的是對其作一個大概的了解,這時IBR算法所生成的“近似的”視圖完全能滿足需要。只有當用戶遇到自己感興趣的畫面時,他才會停下來仔細查看,這個時候系統(tǒng)有足夠的時間從服務器端獲取“精確的”視圖,不會對用戶所需的視覺效果有任何影響,這樣既保證了用戶與系統(tǒng)之間的快速交互又保證了用戶瀏覽的質(zhì)量。另外,由于系統(tǒng)可以利用隊列緩沖區(qū)中的信息生成新的視圖,這樣即便網(wǎng)絡暫時中斷對整體也沒有太大的影響,這也就增強了系統(tǒng)的可靠性。而且由于IBR算法只是對圖像進行變化,所以對客戶端沒有特別的要求。因此本發(fā)明具有高交互性、高質(zhì)量和高可靠性的優(yōu)點。
如果說直接傳送三維模型的方式可以看作是異步模式,而split-browser方式可以看作是同步模式,那么我們的方法則可以看作是同步和異步的結(jié)合。這主要體現(xiàn)在客戶端圖形用戶界面將交互信息一方面用于客戶端的基于圖像的渲染,另一方面,同時將其發(fā)送給遠端的服務器。在客戶端的處理是為了保證用戶的交互性,這一處理過程可以看作是異步模式;而發(fā)送給服務器則是為了保證可視化質(zhì)量,這是因為通過基于圖像渲染方法重構(gòu)的新視圖可能會有空洞或者重疊現(xiàn)象,如果誤差較大的話,需要使用服務器端生成的“精確的”視圖來代替客戶端用基于圖像渲染的算法處理生成的“近似的”視圖。而且這種替換并不影響其交互性,因為替換通常在用戶緩慢瀏覽或者要對某一視圖作靜態(tài)查看時發(fā)生原因在于當用戶快速查看時,其目的通常都是為了對模型或者場景有個粗略的了解,這時“近似的”視圖完全能夠滿足其視覺要求。而用戶瀏覽速度不快或者停下來查看某一視圖時,系統(tǒng)刷新率變得很低,此時系統(tǒng)便會有充分的時間去完成視圖的替換工作,這樣既保證了畫面質(zhì)量也不會影響交互性,這又可以看作是一個同步過程。所以從整體上而言,系統(tǒng)可以看作是同步模式與異步模式的結(jié)合。正是這樣兩種模式的結(jié)合保證了我們這個系統(tǒng)前述的種種優(yōu)點。
圖1為本發(fā)明方法的流程示意圖;具體實施方式
本發(fā)明采用C/S模式,主服務器要求有較強的處理能力,對客戶端沒有特殊要求。用戶首先與主服務器建立連接,并提交請求。主服務器將初始幀畫面發(fā)送給客戶端顯示,初始幀主要包括以下信息色彩信息、深度信息以及攝像機相關(guān)的參數(shù)。用戶通過鼠標或者鍵盤對場景進行瀏覽,系統(tǒng)將交互性信息轉(zhuǎn)換為相應的觀察參數(shù)(如觀察點、觀察方向等),同時發(fā)送給主服務器以及用于客戶端的IBR處理。
主服務器和服務提供者構(gòu)成服務器端。主服務器主要完成載入并渲染三維模型,以及根據(jù)用戶交互信息生成相應的視圖信息的工作。服務提供者用來提供多種模型文件信息,這些模型文件信息可以是科學計算可視化的結(jié)果,也可以是普通的三維模型。它們和主服務器之間建立一種信任關(guān)系,通過存在簡單的通信,可以在主服務器不能提供用戶請求的服務時,滿足用戶的請求??蛻舳丝梢允瞧胀ǖ腜C機,也可以是便攜式電腦或者PDA之類的智能終端。
本發(fā)明的處理步驟具體為(1)客戶端接收用戶發(fā)送的交互命令并解析(1.1)用戶是否想查看新的三維模型?如果是,轉(zhuǎn)步驟(2);否,繼續(xù)步驟(1.2);(1.2)用戶是否為快速瀏覽?如果是,繼續(xù)步驟(1.3);否,轉(zhuǎn)步驟(2);依據(jù)客戶端的瀏覽速度來判斷用戶是否為快速瀏覽??梢韵榷x一個時間閾值,用戶的兩次指令之間的間隔時間在這個閾值范圍以內(nèi)即按快速瀏覽來處理,否則,按照正常情況處理??紤]到用戶的瀏覽質(zhì)量,一般來說這個閥值設(shè)置在0.2s左右比較合適。當用戶發(fā)出一個指令后,預定的閾值時間內(nèi)仍然沒有新的指令到來,客戶端就會自動把當前用戶的視點等信息發(fā)送到服務器端,然后從服務器獲取精確視圖。這個最后一幀最初仍然是用基于圖像的渲染算法生成,當真實圖片到達以后,再替代它。反之在閾值時間內(nèi),如果有新的用戶指令到達,那么只顯示基于圖像渲染算法重構(gòu)的結(jié)果。
(1.3)緩沖區(qū)是否為空?如果是,系統(tǒng)向用戶發(fā)出錯誤提示;否,直接從緩沖區(qū)讀取視圖和視點,并采用三維卷繞算法(3D Warping算法)對圖像進行渲染處理后顯示;圖像渲染算法均采用3D Warping算法,它要求輸入信息必須包含顯示的深度信息、色彩信息以及一些攝像機相關(guān)的外部參數(shù)(視點信息),就大多數(shù)遠程可視化應用而言,這些信息都是比較容易獲得的。對于一般3DWarping算法,最難解決的問題是圖像折疊問題。為此,McMillan在其博士論文中提出的一種3D Warping算法,用一種獨特的順序來計算卷繞函數(shù)解決了這一問題。目前,一般的3D Warping算法和McMillan博士的3DWarping算法均有較廣泛的應用。
本發(fā)明既可以采用一般3D Warping算法,也可以采用McMillan提出的3D Warping算法對圖象進行渲染,其具體處理步驟與現(xiàn)有技術(shù)相同。
(2)客戶端向服務器端提交瀏覽三維模型的請求,并提交用戶的視點位置,請求獲得精確視圖;(3)主服務器解析客戶端提交的請求并判斷用戶要瀏覽的三維模型的模型文件是否存在于主服務器的數(shù)據(jù)庫中(3.1)如果存在則從主服務器的數(shù)據(jù)庫中讀取所需模型文件,進入步驟(4);(3.2)如果不存在則與服務提供者建立連接請求獲取需要的模型文件,如果仍不存在,則返回客戶端用戶界面并給出用戶提示;否則,服務提供者將所需模型文件發(fā)送至主服務器,進入步驟(4);(4)主服務器渲染模型文件生成精確視圖,其處理過程為(4.1)載入從數(shù)據(jù)庫中讀取的三維模型文件;(4.2)將其放入三維圖形管道渲染(如OpenGL或者java3d),得到精確視圖(即參考幀);(4.2)在顯存中讀出當前精確視圖的色彩信息和深度信息,并記錄當前視點的位置;(5)主服務器將步驟(4)中獲得的視圖色彩信息和深度信息進行壓縮處理(如可采用jpg格式或Gif格式等方式進行壓縮);(6)主服務器通過網(wǎng)絡將得到的壓縮文件及視點位置發(fā)送給客戶端;(7)客戶端接收到主服務器發(fā)送的壓縮文件和視點位置后,將它們解壓縮還原為精確視圖后存入既定的緩沖區(qū),并顯示色彩信息;(8)客戶端繼續(xù)步驟(1),直至任務完成。
對遠程可視化而言,是否有好的交互性是關(guān)鍵問題。雖然大部分數(shù)據(jù)可以通過客戶端的基于圖像渲染的算法進行重構(gòu),但精確視圖(參考幀)仍需服務器端提供,因而還需要合理設(shè)計客戶端與服務器端的通信問題,即需要選擇一種合適的傳輸協(xié)議。
常用的傳輸協(xié)議主要有兩種UDP協(xié)議和TCP協(xié)議。UDP屬于傳輸層協(xié)議,既不保證傳遞是否到達,也不使用傳輸控制機制。它適合對網(wǎng)絡延遲敏感,但可以容忍一定的包丟失的應用。而TCP則能夠提供端到端的可靠的服務,但在傳輸過程中它使用確認(ACK)以及重傳機制來保證可靠的傳輸,但這種可靠性是通過更高的開銷和延遲來保證的?;谶@樣的分析,本發(fā)明為了取得更好的技術(shù)效果,在上述流程的步驟(2)中,客戶端向服務器端提交瀏覽請求、視點位置時為保證準確性而采用了TCP協(xié)議進行傳輸;而在步驟(6)中,主服務器將處理好的視圖發(fā)送回客戶端時為保證較低的延遲而采用UDP協(xié)議進行傳輸(這是因為本系統(tǒng)使用了基于圖像渲染的技術(shù),提供一種“近似”視圖,所以能夠忍受一定的數(shù)據(jù)丟失,但為了保證良好的交互性,對減小延遲的要求相對來說更嚴格一點)。
下面簡單歸納系統(tǒng)中客戶端與服務器端之間的通信過程。
服務器端(1)首先通過一個線程來偵聽來自客戶端的TCP連接請求;一旦請求被接受,則交換控制信息完成連接;(2)保持原有TCP連接,同時打開一個UDP套接字,準備用來發(fā)送用戶所請求的視圖;(3)通過TCP連接接收用戶交互信息,并發(fā)送到服務器端做相應處理;(4)將處理結(jié)果(即視圖),通過UDP連接發(fā)送至客戶端做后期處理。
客戶端和服務器端類似首先建立一個TCP套接字,向服務器發(fā)送連接請求;同時生成一個UDP套接字等待數(shù)據(jù)的到來;然后將用戶交互信息以及一些必要的控制信息通過TCP連接發(fā)送給服務器端,最后將通過UDP連接接收到的視圖數(shù)據(jù)存入緩沖區(qū)并顯示。
本發(fā)明采用的是C/S架構(gòu),其服務器端基本硬件配置如表1所示。
表1服務器端的硬件及網(wǎng)絡配置客戶端可以是連接到Internet之上的PC機,其基本配置如表2所示。
表2客戶端的硬件及網(wǎng)絡配置本發(fā)明將IBR技術(shù)應用到遠程可視化中,通過融合IBR的技術(shù)優(yōu)勢來解決目前遠程可視化存在的問題,而且還擴大了系統(tǒng)的應用范圍。它合理地利用交互性與顯示質(zhì)量之間的關(guān)系,在用戶對三維模型進行快速瀏覽時在客戶端使用合適的IBR算法進行相應模型的“近似”重構(gòu);在用戶慢速瀏覽時在客戶端顯示服務器生成的“精確”視圖,從而在交互性和顯示質(zhì)量兩方面部可以滿足用戶的需要。
權(quán)利要求
1.一種基于圖像的三維遠程可視化方法,其步驟為(1)客戶端接收用戶發(fā)送的交互命令并解析(1.1)用戶是否要求查看新的三維模型?如果是,轉(zhuǎn)步驟(2);否則,繼續(xù)步驟(1.2);(1.2)用戶是否為快速瀏覽?如果是,繼續(xù)步驟(1.3);否則,轉(zhuǎn)步驟(2);(1.3)緩沖區(qū)是否為空?如果是,系統(tǒng)向用戶發(fā)出錯誤提示;否則,直接從緩沖區(qū)讀取視圖和視點,并采用三維卷繞算法對圖象進行渲染后顯示;(2)客戶端向服務器端提交瀏覽三維模型的請求,并提交用戶的視點位置,請求獲得精確視圖;(3)主服務器解析客戶端提交的請求,并判斷用戶要瀏覽的三維模型的模型文件是否存在于主服務器的數(shù)據(jù)庫中,(3.1)如果存在則從主服務器的數(shù)據(jù)庫中讀取所需模型文件,進入步驟(4);(3.2)如果不存在則與服務提供者建立連接請求獲取需要的模型文件,如果仍不存在,則返回客戶端用戶界面并給出用戶提示;否則,服務提供者將所需模型文件發(fā)送至主服務器,進入步驟(4);(4)主服務器渲染模型文件生成精確視圖,其處理過程為(4.1)載入從數(shù)據(jù)庫中讀取的三維模型文件;(4.2)將其放入三維圖形管道渲染,得到精確視圖;(4.2)在顯存中讀出當前精確視圖的色彩信息和深度信息,并記錄當前視點的位置;(5)主服務器將步驟(4)中獲得的視圖色彩信息和深度信息進行壓縮處理;(6)主服務器通過網(wǎng)絡將得到的壓縮文件及視點位置發(fā)送給客戶端;(7)客戶端接收到主服務器發(fā)送的壓縮文件和視點位置后,將它們解壓縮還原為精確視圖后存入既定的緩沖區(qū),并顯示色彩信息;(8)客戶端繼續(xù)步驟(1),直至任務完成。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于步驟(2)中客戶端采用TCP協(xié)議向服務器端提交請求。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于步驟(6)中主服務器采用UDP協(xié)議將信息發(fā)送給客戶端。
全文摘要
本發(fā)明公開了一種基于圖像的三維遠程可視化方法,其步驟為①客戶端接收用戶發(fā)送的交互命令并解析;②客戶端向服務器端提交瀏覽三維模型的請求和用戶的視點位置,請求獲得精確視圖;③主服務器解析請求并進行判斷,從主服務器或服務提供者的數(shù)據(jù)庫中讀取所需模型文件,或者給用戶提示;④主服務器渲染模型文件生成精確視圖,⑤主服務器對視圖色彩信息和深度信息進行壓縮處理;⑥主服務器通過網(wǎng)絡將得到的壓縮文件及視點位置發(fā)送給客戶端;⑦客戶端接收壓縮文件和視點位置后,解壓縮后存入緩沖區(qū),并顯示色彩信息。該方法具有高交互性、高質(zhì)量和高可靠性的特點,實現(xiàn)了同步、異步可視化模式的有機結(jié)合,為遠程可視化提供了一個很好的解決途徑。
文檔編號H04L29/06GK1758286SQ20051001982
公開日2006年4月12日 申請日期2005年11月16日 優(yōu)先權(quán)日2005年11月16日
發(fā)明者金海 , 章勤, 鄭然 , 虢偉, 王劍, 王述振 申請人:華中科技大學