国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于特征保留的三維模型遞進(jìn)傳輸方法

      文檔序號:6610134閱讀:257來源:國知局
      專利名稱:一種基于特征保留的三維模型遞進(jìn)傳輸方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及到三維模型簡化、幾何壓縮編碼以及遞進(jìn)傳輸?shù)确矫娴募夹g(shù)領(lǐng)域,特別是一種保留特征的三維模型遞進(jìn)傳輸方法,可應(yīng)用于多種具有復(fù)雜紋理和結(jié)構(gòu)特征的三維模型處理和網(wǎng)絡(luò)發(fā)布。此外,也應(yīng)用于數(shù)字博物館中珍貴文物的網(wǎng)絡(luò)發(fā)布。

      背景技術(shù)
      在計(jì)算機(jī)圖形學(xué)中,一般使用三角形網(wǎng)格描述復(fù)雜的三維形體。隨著三維數(shù)據(jù)捕獲技術(shù)的不斷進(jìn)步,網(wǎng)格的數(shù)據(jù)量會非常龐大,這給三維模型的存儲、傳輸和繪制都帶來許多困難。數(shù)字博物館中包含了大量的三維模型需要在網(wǎng)上展示,最基本的如單個模型展品的傳輸,復(fù)雜的如大型場景的實(shí)時漫游,都需要解決網(wǎng)絡(luò)傳輸?shù)钠款i限制。
      傳統(tǒng)的單分辨率模型的網(wǎng)絡(luò)傳輸采取先下載后顯示(Download-and-Display)模式,即將三維模型的所有相關(guān)數(shù)據(jù)都下載到客戶端之后再顯示。這種方式的不足之處在于用戶等待時間太長。對此的改進(jìn)是由Hoppe提出的遞進(jìn)網(wǎng)格方法(參見Hoppe H.Progressive Meshes.ACMComputer Graphics,1996,30(1)99-108),即首先采用頂點(diǎn)刪除(參見SchroederW.Decimation of Triangle Meshes.Computer Graphics,1992,26(2)65-70)、二次誤差(參見Garland M.Surface Simplification usingQuadric Error Metrics.Computer Graphics,1997,31(3)209-216)等模型簡化算法來得到多分辨率模型,并在簡化過程中記錄每一步操作,從而將原始網(wǎng)格模型分解成一個粗糙的基網(wǎng)格和一系列可對基網(wǎng)格進(jìn)行逆向恢復(fù)的細(xì)節(jié)優(yōu)化信息;在傳輸過程中,首先傳送基網(wǎng)格到客戶端并顯示,然后再逐漸的傳輸細(xì)節(jié)優(yōu)化信息,對最初的粗糙模型進(jìn)行細(xì)化;這樣一種無損的模型重構(gòu)和編碼方法,能夠在很短的時間內(nèi)給用戶響應(yīng),并且可以隨時停止傳輸,這是一種邊下載邊顯示(Download-while-Display)模式的遞進(jìn)傳輸方法。
      對于遞進(jìn)網(wǎng)格方法,之后也有了很多方法進(jìn)行改進(jìn),然而,這些方法大多是針對比較規(guī)整、不含屬性的幾何模型來進(jìn)行處理的,并不涉及紋理等屬性信息,而且不支持三維場景。在實(shí)際應(yīng)用領(lǐng)域,無論是單個模型還是三維場景,不僅含有幾何、拓?fù)湫畔?,而且常常包含顏色、紋理等屬性,并且不可避免地存在邊界和孔洞,因而需要采用合適的方法,在簡化的同時保留這些特征信息。此外,許多方法都是僅僅利用模型簡化來得到遞進(jìn)網(wǎng)格文件,并沒有再對模型數(shù)據(jù)進(jìn)行進(jìn)一步的壓縮,如果能將遞進(jìn)網(wǎng)格和壓縮編碼結(jié)合起來,重新構(gòu)造模型文件,將更有利于減小模型數(shù)據(jù)量,提高模型傳輸瀏覽的實(shí)時響應(yīng)。


      發(fā)明內(nèi)容
      本發(fā)明的技術(shù)解決問題克服現(xiàn)有技術(shù)的不足,提供一種基于特征保留的三維模型遞進(jìn)傳輸方法,該方法基于特征保留,即在處理過程中保持原始模型拓?fù)湫再|(zhì)及紋理或顏色屬性特征,且對模型真實(shí)感保持性高,對網(wǎng)絡(luò)帶寬和客戶端機(jī)器性能要求低,并支持三維場景的遞進(jìn)傳輸。
      本發(fā)明的技術(shù)解決方案一種基于特征保留的三維模型遞進(jìn)傳輸方法,其特征在于包括下列步驟 (1)對原始網(wǎng)格模型進(jìn)行保留特征的簡化,形成粗糙基網(wǎng)格; (2)對基網(wǎng)格實(shí)施八叉樹壓縮編碼,形成遞進(jìn)網(wǎng)格文件; (3)采用Browser/Server結(jié)構(gòu)下八叉樹解碼-遞進(jìn)網(wǎng)格傳輸?shù)倪f進(jìn)傳輸模式; (4)在上述步驟的基礎(chǔ)上采用面向?qū)ο蟮囊朁c(diǎn)相關(guān)傳輸策略傳輸三維場景。
      在簡化中采用了保留拓?fù)溥吔缂凹y理或顏色屬性的三角形折疊方法,主要操作步驟為 (1)對原始三角形網(wǎng)格進(jìn)行分類邊界三角形、角點(diǎn)三角形、內(nèi)部三角形、特征三角形; (2)根據(jù)三角形的分類,采用不同的誤差度量方法 a.對于內(nèi)部三角形,為每個三角形Ti配備一個4×4的誤差矩陣Qi,并假設(shè)其折疊后的新點(diǎn)為vi,定義三角形的折疊誤差為通過使誤差最小得到vi位置; b.對于角點(diǎn)三角形,限定其折疊后的新點(diǎn)vi為原邊界上的一個頂點(diǎn),采用與步驟a相同的方法計(jì)算折疊誤差; c.對于邊界三角形和特征三角形,置其折疊誤差為最大值。
      (3)得到所有三角形的折疊誤差之后選擇誤差最小的三角形執(zhí)行折疊操作。
      所述步驟(3)中在傳輸?shù)倪^程中采用幾何壓縮解碼和遞進(jìn)網(wǎng)格結(jié)合的方式,步驟為 (1)在傳輸起始階段,采用八叉樹廣度優(yōu)先遍歷的解碼方式,直至基網(wǎng)格數(shù)據(jù)傳輸完畢; (2)采用遞進(jìn)網(wǎng)格傳輸方式保持較高相似度下模型精度的連續(xù)提升。
      所述步驟(4)中對于三維場景采用面向?qū)ο蟮囊朁c(diǎn)相關(guān)傳輸策略的步驟為 (1)為場景中每個對象構(gòu)建一個單獨(dú)的數(shù)據(jù)流,對每個數(shù)據(jù)流都采用前述八叉樹解碼-遞進(jìn)網(wǎng)格傳輸?shù)倪f進(jìn)傳輸模式; (2)在客戶端設(shè)置下載、分析、繪圖線程,進(jìn)行同步控制,保證對象的并行傳輸; (3)在客戶端計(jì)算視點(diǎn)信息,并根據(jù)視錐可見性判斷當(dāng)前需要傳輸?shù)膶ο螅? (4)服務(wù)器接收客戶端傳送的所需對象標(biāo)志,發(fā)送相應(yīng)的優(yōu)化信息。
      本發(fā)明與現(xiàn)有的發(fā)布方法相比具有以下優(yōu)點(diǎn) (1)保留了原始模型拓?fù)湫再|(zhì)及紋理/顏色屬性 傳統(tǒng)的方法大多是針對比較規(guī)整、不含屬性的幾何模型來進(jìn)行處理的;而在實(shí)際應(yīng)用領(lǐng)域,三維數(shù)據(jù)不僅含有幾何、拓?fù)湫畔ⅲ页30伾?、紋理等屬性,并且不可避免地存在邊界和孔洞,這些信息對于保持模型的外觀和真實(shí)感具有重要作用,必須在簡化過程中加以保留。
      本發(fā)明基于三角形折疊的方法,給出了一種結(jié)合屬性的非封閉網(wǎng)格模型簡化方法,不僅有效地控制了簡化網(wǎng)格與原始網(wǎng)格之間的幾何誤差,而且較好地保留了三維模型的拓?fù)溥吔缫约邦伾?、紋理、法矢量等屬性,與傳統(tǒng)方法相比,具有更大的適用范圍和實(shí)用性。
      此外,本發(fā)明的模型簡化算法可以根據(jù)用戶對幾何/屬性不同比重的保留需要指定模型簡化的精確程度,對于一個幾十萬甚至上百萬多邊形的初始模型而言,當(dāng)它簡化99%之后,仍然可以保持較高的幾何相似度和邊界拓?fù)浣Y(jié)構(gòu)以及屬性特征。
      (2)對網(wǎng)絡(luò)帶寬和客戶端機(jī)器性能要求靈活 傳統(tǒng)的“先下載后顯示”的三維傳輸模式,需要將三維模型的所有相關(guān)數(shù)據(jù)都下載到客戶端之后再顯示。因此它對網(wǎng)絡(luò)帶寬的要求很高,對于規(guī)模超過百萬多邊形的三維模型而言,這種模式根本無法應(yīng)用;另外,不同客戶端機(jī)器的圖形處理性能不同,同一個模型,對于一些用戶來說可能已經(jīng)很難處理,但另一些用戶可能還需要更高精度的效果。
      近些年提出的遠(yuǎn)程渲染系統(tǒng)是一種Client/Server結(jié)構(gòu),客戶端負(fù)責(zé)接受用戶的輸入并向服務(wù)器發(fā)送相應(yīng)的渲染請求,高圖形性能的服務(wù)器負(fù)責(zé)渲染并把得到的圖像回傳給發(fā)送請求的客戶端進(jìn)行顯示,這樣的系統(tǒng)雖然解決了客戶端機(jī)器圖形性能不足的問題,但由于將所有渲染工作全部放在服務(wù)器,所以限制了最多支持的用戶數(shù)目。
      本發(fā)明所采用的是基于Browser/Server結(jié)構(gòu)的遞進(jìn)傳輸模式,只需要將一個數(shù)據(jù)量很小的粗糙的基網(wǎng)格傳輸?shù)娇蛻舳?,客戶端收到基網(wǎng)格數(shù)據(jù)后立即可以顯示,然后服務(wù)器持續(xù)發(fā)送對基網(wǎng)格的優(yōu)化信息,客戶端的顯示效果也逐漸精細(xì),直至傳輸完畢或達(dá)到用戶對模型精細(xì)度的要求為止。這樣,用戶可以根據(jù)自己的需要和機(jī)器的性能選擇相應(yīng)精度的模型進(jìn)行查看,并且可以隨時中止或繼續(xù)傳輸;由于將渲染任務(wù)分擔(dān)給了每個客戶端,因而可以最大限度的支持更多的用戶。
      (3)響應(yīng)時間短、精細(xì)程度高 “先下載后顯示”方法的最大問題在于響應(yīng)時間過長,需要等待整個模型下載完畢之后才能開始顯示。
      遞進(jìn)網(wǎng)格傳輸作為一種細(xì)粒度的模型多分辨率劃分方案,在得到基網(wǎng)格數(shù)據(jù)后,它可以馬上開始對粗糙模型的渲染和細(xì)化過程,并且可以提供較其他方法更高精確度的模型;但其不足在于與非遞進(jìn)方法相比,需要消耗很長的時間來恢復(fù)出完整的最高分辨率模型;另外,傳統(tǒng)的遞進(jìn)傳輸方法雖然在整體過程上是“邊下載邊顯示”,但在開始階段仍需等待基網(wǎng)格數(shù)據(jù)下載完畢之后才可以顯示和遞進(jìn)更新,而對于精度較高且包含紋理/顏色等屬性的三維模型,僅僅采用簡化的辦法處理后,其基網(wǎng)格數(shù)據(jù)量仍然較大,例如多邊形面片數(shù)為1000000的三維模型簡化99%之后的基網(wǎng)格文件大小仍有3MB之多,在帶寬低的情況下,它所需要的下載時間也是不可容忍的。
      基于樹型結(jié)構(gòu)的幾何遞進(jìn)壓縮是一種粗粒度的模型多分辨率劃分方案,它可以從“零”開始顯示模型,并隨著恢復(fù)信息的傳輸和解碼,成批更新模型的幾何數(shù)據(jù),從而最大限度的降低響應(yīng)時間;由于分批有效地壓縮,生成的模型文件數(shù)據(jù)量較小且傳輸總時間比遞進(jìn)網(wǎng)格方法縮短許多;但其不足是模型分辨率的提升不連續(xù),存在跳變,且恢復(fù)過程中模型的精確度相對遞進(jìn)網(wǎng)格方法要低。
      而本發(fā)明結(jié)合遞進(jìn)網(wǎng)格和幾何壓縮二者的優(yōu)點(diǎn),在網(wǎng)格簡化的基礎(chǔ)上對其基網(wǎng)格又進(jìn)行了進(jìn)一步的壓縮編碼,并采用八叉樹廣度優(yōu)先遍歷解碼和遞進(jìn)網(wǎng)格傳輸相結(jié)合的恢復(fù)方案,在對響應(yīng)時間要求高而對模型精確度要求不高的傳輸起始階段,采用壓縮解碼傳輸方式,直至基網(wǎng)格數(shù)據(jù)傳輸完畢;之后采用遞進(jìn)網(wǎng)格傳輸方式,保持較高且連續(xù)的模型分辨率提升,以便用戶隨時中止,這樣,就進(jìn)一步縮短了響應(yīng)時間。
      (4)支持三維場景 三維模型包括對象模型和三維場景,三維場景是由不同的對象組成的,其中每個對象都是一個獨(dú)立的形體或結(jié)構(gòu)。傳統(tǒng)的方法大多只針對對象模型進(jìn)行處理,而不考慮三維場景。
      而本發(fā)明將場景模型看作是若干對象模型的組合體,而對其中的每個對象進(jìn)行拓?fù)溥吔缤耆A舻木W(wǎng)格簡化,從而達(dá)到對整個模型化簡的目的。在傳輸恢復(fù)階段,使用多數(shù)據(jù)流,將每個對象構(gòu)成一個單獨(dú)的數(shù)據(jù)流,并采用視點(diǎn)相關(guān)的傳輸策略,通過控制當(dāng)前可見對象的傳輸,并保證所有對象處于統(tǒng)一的世界坐標(biāo)系內(nèi),就可以恢復(fù)出完整的原始模型。



      圖1為本發(fā)明的系統(tǒng)實(shí)現(xiàn)流程; 圖2為本發(fā)明對三維模型進(jìn)行保留特征簡化的實(shí)驗(yàn)結(jié)果; 圖3為本發(fā)明的三維場景的視點(diǎn)相關(guān)傳輸框架; 圖4為本發(fā)明對日月觀音模型的進(jìn)行遞進(jìn)傳輸?shù)倪^程; 圖5為本發(fā)明對包含25個兵馬俑的三維場景進(jìn)行視點(diǎn)相關(guān)解碼傳輸?shù)倪^程。

      具體實(shí)施例方式 本發(fā)明包括模型簡化、壓縮編碼、遞進(jìn)傳輸三個方面的內(nèi)容,實(shí)現(xiàn)流程如圖1所示。
      1.三維模型簡化 本發(fā)明采用基于二次誤差的三角形折疊算法對三維模型進(jìn)行簡化,并在簡化的同時保留模型的拓?fù)溥吔缂皩傩蕴卣?。算法的基本操作是三角形折疊收縮,即通過對三角形Ti執(zhí)行折疊操作,使它的三個頂點(diǎn)合并為一個頂點(diǎn)vi,從而簡化了原來的網(wǎng)格。
      算法首先將原始網(wǎng)格中所有三角形進(jìn)行分類,劃分原則如下 對于網(wǎng)格模型中的每一個三角形,如果它的某一條邊只被一個三角形(即該三角形)所擁有,則該邊為邊界邊,該三角形為邊界三角形;對于非邊界三角形,如果至少有一個頂點(diǎn)在邊界邊上,則該頂點(diǎn)為邊界點(diǎn),該三角形為角點(diǎn)三角形;如果三個頂點(diǎn)都不在邊界邊上,則該三角形為內(nèi)部三角形。
      對于包含顏色屬性的模型,使用每個三角形三個頂點(diǎn)顏色值的平均值作為該三角形的等價顏色值,如果當(dāng)前三角形與其周圍鄰接三角形顏色值的差超過預(yù)先指定的閾值τ,即 則標(biāo)記該三角形為特征三角形,其中[rigibi]T、[rpgpbp]T分別為三角形Ti、Tp的顏色值,而閾值τ則可以根據(jù)用戶對幾何及屬性特征保留程度的不同要求來選取,對屬性細(xì)節(jié)要求越高,則τ值越小,反之則越大。
      此外,對于紋理,也采取類似的辦法進(jìn)行處理;不同之處只是需要通過紋理坐標(biāo)從紋理圖像中獲取相應(yīng)頂點(diǎn)的顏色信息,再來計(jì)算該三角形的紋理等價顏色值。
      之后,計(jì)算每個三角形的幾何折疊誤差 (1)對于原始網(wǎng)格中的每個內(nèi)部三角形Ti,配備一個誤差矩陣Qi,如果三角形Ti折疊為點(diǎn)vi=[xi yi zi1]T,則定義該三角形的折疊誤差為新點(diǎn)到原三角形的所有鄰接三角形平面的距離平方之和 這里p=[a b c d]T表示與三角形Ti鄰接的三角形集合中每個三角形所在平面的平面方程ax+by+cz+d=0(其中a2+b2+c2=1)。于是上式給出的誤差標(biāo)準(zhǔn)可以轉(zhuǎn)換為下面的二次形式 其中Mp是4×4的對稱矩陣,能夠表示三角形網(wǎng)格中任一點(diǎn)到平面的二次距離 而誤差矩陣Qi為所有鄰接三角形的平面二次矩陣相加對于vi位置的選取,則通過計(jì)算使得ε(Ti)的值最小來得到。
      (2)對于每個角點(diǎn)三角形,限定其折疊后的新點(diǎn)vi為原邊界上的一個頂點(diǎn),并通過計(jì)算折疊誤差; (3)對于邊界三角形和特征三角形,置其折疊誤差為最大值。
      在得到每個三角形的折疊誤差之后,按最終的誤差從小到大排列三角形,從三角形序列中選取折疊誤差最小的三角形執(zhí)行折疊操作,這樣,就在保持幾何相似度的前提下保證了邊界三角形和特征三角形不參與折疊,從而保留了模型的邊界和屬性細(xì)節(jié)。
      利用上述簡化方法,將模型簡化70%之后仍與原始模型非常接近,當(dāng)簡化90%以上時,所得的結(jié)果除了在幾何相似性上可以接受外,仍可較好地保留原始模型的邊界、輪廓及屬性特征,如圖2所示。
      在模型簡化的同時,把參與折疊消失的三角形的頂點(diǎn)坐標(biāo)以及其相關(guān)三角形的信息記錄下來,以構(gòu)造遞進(jìn)網(wǎng)格文件,從而支持有效地增量傳輸。對于包含屬性的模型,可以對頂點(diǎn)坐標(biāo)表達(dá)進(jìn)行擴(kuò)展,將頂點(diǎn)信息表示為vi(xi,yi,zi,

      ),其中xi,yi,zi為頂點(diǎn)坐標(biāo),

      為頂點(diǎn)對應(yīng)的標(biāo)量屬性(例如對于顏色屬性來說,代表RGB顏色值;對于紋理屬性,表紋理坐標(biāo)),經(jīng)過以上處理,就可以將屬性信息記錄在遞進(jìn)網(wǎng)格文件中,從而在重建原始幾何模型的同時提供屬性的恢復(fù)。
      2.基網(wǎng)格壓縮編碼 本發(fā)明對簡化后的基網(wǎng)格進(jìn)行基于八叉樹劃分的壓縮編碼,對頂點(diǎn)的幾何坐標(biāo)用12bit來進(jìn)行量化,主要分三個步驟 (1)對幾何模型的頂點(diǎn)進(jìn)行八叉樹的多分辨率層次化組織,直到最精細(xì)化的樹節(jié)點(diǎn)能夠表達(dá)量化的精度首先,通過對模型設(shè)置一個最小包圍盒,并按照八叉樹的劃分方法進(jìn)行遞歸細(xì)分,其中每個樹節(jié)點(diǎn)記錄其子樹所含頂點(diǎn)的個數(shù),對于不含頂點(diǎn)的樹節(jié)點(diǎn)將不再繼續(xù)子分,而包含頂點(diǎn)的樹節(jié)點(diǎn)將被迭代子分,直到節(jié)點(diǎn)為空或只含一個頂點(diǎn)且達(dá)到最大精度層為止;因此生成的八叉樹中葉節(jié)點(diǎn)中心隱含表示其所包含頂點(diǎn)的空間位置。
      (2)由粗到細(xì)以廣度優(yōu)先的方式遍歷八叉樹的各個節(jié)點(diǎn),并輸出描述頂點(diǎn)位置情況的數(shù)據(jù)流根據(jù)節(jié)點(diǎn)中所含頂點(diǎn)的個數(shù),對于每個非空節(jié)點(diǎn),用1bit標(biāo)識其是否是一個單節(jié)點(diǎn);對于一個單節(jié)點(diǎn),用3bits來標(biāo)識該單節(jié)點(diǎn)中的哪個子節(jié)點(diǎn)包含唯一頂點(diǎn);而對于非空非單節(jié)點(diǎn),則產(chǎn)生一個8bits的標(biāo)識,表示該節(jié)點(diǎn)的子節(jié)點(diǎn)是否非空;如此循環(huán),直至訪問到最精細(xì)層的節(jié)點(diǎn)停止。
      (3)對拓?fù)鋽?shù)據(jù)進(jìn)行頂點(diǎn)索引的重排和壓縮采用葉節(jié)點(diǎn)中包含的頂點(diǎn)從左到右的順序重新排列頂點(diǎn)索引,并且更新原始拓?fù)鋽?shù)據(jù)中的對應(yīng)索引值,并對拓?fù)鋽?shù)據(jù)進(jìn)行壓縮。
      (4)將屬性信息預(yù)先按照幾何節(jié)點(diǎn)流的葉頂點(diǎn)的順序排列并壓縮將屬性信息預(yù)先按照幾何節(jié)點(diǎn)流的葉頂點(diǎn)的順序排列好,在編碼過程中使其與幾何信息同步。
      (5)對所有數(shù)據(jù)流進(jìn)行算術(shù)編碼。
      采用壓縮編碼后,基網(wǎng)格文件量有了進(jìn)一步縮小。
      1.遞進(jìn)傳輸 本發(fā)明采用Browser/Server結(jié)構(gòu)下八叉樹解碼-遞進(jìn)網(wǎng)格傳輸?shù)倪f進(jìn)傳輸模式。在傳輸解碼階段,首先采用基于八叉樹廣度優(yōu)先遍歷的逐層細(xì)化方式恢復(fù)基網(wǎng)格;在基網(wǎng)格信息傳輸完畢后,繼續(xù)采用遞進(jìn)網(wǎng)格傳輸?shù)姆绞?,傳輸一系列?xì)節(jié)恢復(fù)信息,對模型進(jìn)行優(yōu)化和恢復(fù)。
      (1)瀏覽器-服務(wù)器 本發(fā)明在瀏覽器端使用內(nèi)嵌于Web瀏覽器的Java Applet,因而不需要用戶安裝獨(dú)立的應(yīng)用程序,就能夠?qū)θS模型進(jìn)行渲染;用戶可以對模型進(jìn)行旋轉(zhuǎn)、平移、縮放等交互式操作,還可以在場景中漫游行走,查看感興趣區(qū)域等;此外,由于采用了遞進(jìn)壓縮及傳輸策略,使得響應(yīng)時間大大縮短,更適合于普通用戶網(wǎng)上瀏覽。
      在三維數(shù)據(jù)傳輸?shù)倪^程中,用戶在需要查看和操作模型時,可以隨時控制暫停傳輸,此時,瀏覽器端向服務(wù)器發(fā)送一個等待請求,請求中包含當(dāng)前的數(shù)據(jù)流位置和狀態(tài),服務(wù)器暫停發(fā)送數(shù)據(jù);在用戶停止操作時,瀏覽器向服務(wù)器發(fā)出下載請求,服務(wù)器根據(jù)已保存的狀態(tài)信息繼續(xù)向?yàn)g覽器端發(fā)送數(shù)據(jù),從而繼續(xù)三維模型的細(xì)化過程。
      (2)通信線程及其管理 為了達(dá)到遞進(jìn)傳輸?shù)哪康?,需要一邊下載文件數(shù)據(jù),一邊進(jìn)行模型渲染,因而采用多線程的實(shí)現(xiàn)方式。
      服務(wù)器將模型文件順序的傳輸?shù)娇蛻舳?,客戶端在接收?shù)據(jù)的同時分析數(shù)據(jù)內(nèi)容,針對內(nèi)容的不同構(gòu)建不同的內(nèi)部模型數(shù)據(jù)表示,以便開始繪制;同時在每個新信息到達(dá)時,都需要更新內(nèi)部的數(shù)據(jù)內(nèi)容,并重新更新屏幕中的圖像。這里需要三個線程,分別為數(shù)據(jù)下載線程、數(shù)據(jù)分析線程和圖形繪制線程(主線程)。
      下載線程負(fù)責(zé)從服務(wù)器端下載文件數(shù)據(jù),每當(dāng)客戶端有數(shù)據(jù)之后,便交由分析線程對數(shù)據(jù)進(jìn)行語義分析,形成內(nèi)部的數(shù)據(jù)描述格式。繪圖線程負(fù)責(zé)將這些內(nèi)部數(shù)據(jù)顯示到屏幕上去。在其后的過程中,每當(dāng)接收到一條新信息,便轉(zhuǎn)換成內(nèi)部數(shù)據(jù)描述,隨后顯示;如此反復(fù)進(jìn)行。
      在此過程中需要解決線程之間的同步問題第一,對于下載線程和分析線程來說,在數(shù)據(jù)沒有下載之前進(jìn)行分析是沒有意義的,這就需要在這兩個線程之間進(jìn)行同步;第二,在分析線程分析已下載的文件數(shù)據(jù)時,下載線程可能又下載到新的數(shù)據(jù)并要求對文件數(shù)據(jù)進(jìn)行更新,這就需要在這兩個線程之間進(jìn)行數(shù)據(jù)的互斥訪問;同樣,分析線程和繪圖線程之間也存在這樣的問題,繪圖線程只有在分析線程部分完成(完成若干條優(yōu)化信息的分析)之后才能進(jìn)行顯示,它們之間也存在一個讀寫互斥。
      這里采用臨界區(qū)實(shí)現(xiàn)這三個線程對資源的互斥訪問,在下載線程未將數(shù)據(jù)下載到客戶端本地的時候,分析線程只能等待,只有得到數(shù)據(jù)之后才能工作。根據(jù)二者速度的不同,可分為兩種情況 (1)下載速度比分析速度慢當(dāng)分析完畢當(dāng)前的數(shù)據(jù)段后,分析線程需要根據(jù)當(dāng)前下載的狀態(tài)決定其本身運(yùn)行狀態(tài)。如果當(dāng)前文件未下載完畢,那么繼續(xù)等待下一段數(shù)據(jù)的到來;如果當(dāng)前文件已經(jīng)下載完畢,分析結(jié)束。
      (2)下載速度比分析速度快此時對于分析線程來說,所要分析的數(shù)據(jù)是一直存在的,只需要在開始的時候等待第一次數(shù)據(jù)的到來即可。
      對于分析線程和繪圖線程來說,它們之間的同步比較簡單,只要在新數(shù)據(jù)分析結(jié)束之后,繪圖線程可以進(jìn)行繪制。
      1.三維場景傳輸 三維場景由不同的對象組成,其中每個對象都是一個獨(dú)立的形體或結(jié)構(gòu)。為此,在簡化和編碼階段,將三維場景看作是若干對象模型的組合體,而對其中的每個對象進(jìn)行拓?fù)溥吔缤耆A舻木W(wǎng)格簡化,而在傳輸恢復(fù)階段,使用多數(shù)據(jù)流的方法,并采用一種面向?qū)ο蟮囊朁c(diǎn)相關(guān)傳輸策略,根據(jù)用戶的視點(diǎn)的不同選擇不同的模型對象進(jìn)行優(yōu)化。
      首先為場景的每個對象建立了一個單獨(dú)的數(shù)據(jù)流,因而對于每個數(shù)據(jù)流來說,都可以采用前述八叉樹解碼-遞進(jìn)網(wǎng)格傳輸?shù)倪f進(jìn)傳輸模式。與簡單的對象模型傳輸不同,本發(fā)明設(shè)計(jì)了一個面向?qū)ο蟮囊朁c(diǎn)相關(guān)的傳輸框架,如圖3所示,服務(wù)器端提供模型數(shù)據(jù)并保存當(dāng)前模型對象的傳輸狀態(tài),客戶端下載數(shù)據(jù)并重構(gòu)、渲染模型。除了下載、分析、繪圖線程外,為客戶端再增加一個可見性判斷線程,用來計(jì)算視點(diǎn)信息,并根據(jù)視錐可見性判斷需要傳輸?shù)膶ο螅环?wù)器只需要接收每個客戶端傳送的所需對象標(biāo)志,就可以發(fā)送相應(yīng)的優(yōu)化信息。這樣,就將計(jì)算負(fù)載分散給每個客戶端,從而提高了服務(wù)器的效率;而對于客戶端來說,由于這種可見性判斷是粗粒度的面向?qū)ο蟮?,因而也不會造成大量的?jì)算,影響可視效果。
      該框架整個執(zhí)行過程為 (1)客戶端向服務(wù)器發(fā)出場景傳輸請求; (2)服務(wù)器接收客戶請求,與該客戶端建立一個連接,同時查看該用戶請求的模型數(shù)據(jù)是否已經(jīng)調(diào)入內(nèi)存,如果沒有則將其調(diào)入內(nèi)存,然后為該場景的每個對象建立一棵八叉樹; (3)服務(wù)器向客戶端傳輸每個對象的基網(wǎng)格數(shù)據(jù)(頂點(diǎn)的坐標(biāo)、面的索引以及其它相關(guān)信息); (4)客戶端接收完畢基網(wǎng)格信息后,進(jìn)行顯示; (5)客戶端根據(jù)自己的視點(diǎn)計(jì)算當(dāng)前可見的對象,并將可見性狀態(tài)傳輸?shù)椒?wù)器; (6)服務(wù)器根據(jù)當(dāng)前客戶端狀態(tài)傳輸當(dāng)前可見對象的優(yōu)化信息,并將其他對象的優(yōu)化信息數(shù)據(jù)流的傳輸暫停,保存當(dāng)前狀態(tài); (7)客戶端每接收到一條優(yōu)化信息,便對模型進(jìn)行細(xì)化,并重新繪制; (8)如果視點(diǎn)改變,重復(fù)上述(5); (9)客戶端退出,服務(wù)器清理無用的狀態(tài)信息。
      利用上述傳輸方法,對模型進(jìn)行遞進(jìn)傳輸,圖4為一個觀音模型的傳輸,首先進(jìn)行八叉樹解碼,在得到基網(wǎng)格后,進(jìn)而進(jìn)行遞進(jìn)網(wǎng)格傳輸恢復(fù)。從圖4傳輸過程可以看出,在八叉樹啟動并解碼傳輸20%之后得到的基網(wǎng)格,與原始模型除了在幾何相似性上非常接近外,還較好地保留原始模型的邊界、輪廓及紋理特征。
      圖5為對場景中一組兵馬俑模型進(jìn)行遞進(jìn)傳輸?shù)倪^程,其初始過程仍相似,首先對當(dāng)前可見的兵馬俑模型進(jìn)行八叉樹解碼傳輸;隨后視點(diǎn)拉近,部分對象進(jìn)入視野并參與細(xì)化;當(dāng)視點(diǎn)繼續(xù)轉(zhuǎn)動時,原先在窗口外的兵馬俑模型由于剛開始傳輸,仍然顯得比較粗糙。
      權(quán)利要求
      1.一種基于特征保留的三維模型遞進(jìn)傳輸方法,其特征在于包括下列步驟
      (1)對原始網(wǎng)格模型進(jìn)行保留特征的簡化,形成粗糙基網(wǎng)格;
      (2)對形成的粗糙基網(wǎng)格實(shí)施八叉樹壓縮編碼,形成遞進(jìn)網(wǎng)格文件;
      (3)采用Browser/Server結(jié)構(gòu)下八叉樹解碼-遞進(jìn)網(wǎng)格傳輸?shù)倪f進(jìn)傳輸模式;
      (4)在上述步驟的基礎(chǔ)上采用面向?qū)ο蟮囊朁c(diǎn)相關(guān)傳輸策略傳輸三維場景。
      2.根據(jù)權(quán)利要求1所述的基于特征保留的三維模型遞進(jìn)傳輸方法,其特征在于所述步驟(1)中對原始網(wǎng)格模型的簡化,采用了基于三角形折疊的保留拓?fù)溥吔缂凹y理或顏色屬性的方法,步驟為
      (1)對原始三角形網(wǎng)格進(jìn)行分類邊界三角形、角點(diǎn)三角形、內(nèi)部三角形、特征三角形;
      (2)根據(jù)三角形的分類,采用不同的誤差度量方法
      a.對于內(nèi)部三角形,為每個三角形Ti配備一個4×4的誤差矩陣Qi,并假設(shè)其折疊后的新點(diǎn)為vi,定義三角形的折疊誤差為通過使誤差最小得到vi,位置;
      b.對于角點(diǎn)三角形,限定其折疊后的新點(diǎn)vi為原邊界上的一個頂點(diǎn),采用與步驟a相同的方法計(jì)算折疊誤差;
      c.對于邊界三角形和特征三角形,置其折疊誤差為最大值。
      (3)得到所有三角形的折疊誤差之后選擇誤差最小的三角形執(zhí)行折疊操作。
      3.根據(jù)權(quán)利要求1所述的基于特征保留的三維模型遞進(jìn)傳輸方法,其特征在于所述步驟(3)中在傳輸起始階段,采用八叉樹廣度遍歷解碼方式,直至基網(wǎng)格數(shù)據(jù)傳輸完畢,之后采用遞進(jìn)網(wǎng)格傳輸方式保持模型精度的連續(xù)提升。
      4.根據(jù)權(quán)利要求1所述的一種三維模型遞進(jìn)傳輸方法,其特征在于所述步驟(4)中對于三維場景模型采用面向?qū)ο蟮囊朁c(diǎn)相關(guān)傳輸策略的步驟如下
      (1)為場景中每個對象構(gòu)建一個單獨(dú)的數(shù)據(jù)流,對每個數(shù)據(jù)流都采用前述八叉樹解碼-遞進(jìn)網(wǎng)格傳輸?shù)倪f進(jìn)傳輸模式;
      (2)在客戶端設(shè)置下載、分析、繪圖線程,進(jìn)行同步控制,保證對象的并行傳輸;
      (3)在客戶端計(jì)算視點(diǎn)信息,并根據(jù)視錐可見性判斷當(dāng)前需要傳輸?shù)膶ο螅?br> (4)服務(wù)器接收客戶端傳送的所需對象標(biāo)志,發(fā)送相應(yīng)的優(yōu)化信息。
      全文摘要
      一種基于特征保留的三維模型遞進(jìn)傳輸方法,在原有三維模型簡化算法的基礎(chǔ)上進(jìn)行了特征保留的改進(jìn),在簡化幾何模型的同時保持了模型的拓?fù)湫再|(zhì)和屬性特征,得到了數(shù)據(jù)量較小的基網(wǎng)格;并在此基礎(chǔ)上實(shí)施了基于八叉樹劃分的壓縮編碼,構(gòu)造出遞進(jìn)網(wǎng)格文件。在傳輸時,首先利用八叉樹廣度優(yōu)先遍歷解碼基網(wǎng)格,之后采用遞進(jìn)網(wǎng)格傳輸方式,傳輸一系列細(xì)節(jié)恢復(fù)信息,連續(xù)提升模型精度,恢復(fù)原始模型,從而解決了傳統(tǒng)傳輸方法響應(yīng)時間長的問題。此外對三維場景設(shè)計(jì)了面向?qū)ο蟮囊朁c(diǎn)相關(guān)傳輸策略,加速了場景的實(shí)時繪制,并將對象可見性判斷放在客戶端進(jìn)行,降低了服務(wù)器負(fù)載。
      文檔編號G06T17/00GK101119485SQ20071011996
      公開日2008年2月6日 申請日期2007年8月6日 優(yōu)先權(quán)日2007年8月6日
      發(fā)明者沈旭昆, 越 齊, 趙沁平, 趙學(xué)偉 申請人:北京航空航天大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1