專利名稱:使用嵌套的規(guī)則柵格的地形描繪的制作方法
技術領域:
本發(fā)明總地涉及具有各式各樣的等級細節(jié)的地形描繪領域。
授權的版權公開的本專利文獻的一部分包括在版權保護條件下的內(nèi)容。版權所有人沒有理由拒絕在專利和商標局的專利文件或記錄中任何人對該專利文檔或專利公開的精確復制,否則無論如何版權所有人保留所有版權權利。
背景現(xiàn)有的地形細節(jié)等級(LOD)算法使用網(wǎng)格加細操作體系來適應棋盤形的地表。這些算法可以根據(jù)上述體系結構加以分類。
例如,分成諸如三角形的不規(guī)則網(wǎng)絡的不規(guī)則網(wǎng)格為給定數(shù)量的三角形地形提供了很好的地形近似,但是需要對鄰接網(wǎng)格和細分從屬網(wǎng)格的追蹤。一些體系使用Delaunay三角網(wǎng)(例如參見Cohen-Or,D.et al.,Temporal Continuity ofLevels of Detail in Delaunay Triangulated Terrain,IEEE Visualization 1996,37-42;Cignoni,P.et al.,Representation and Visualization of Terrain Surfaces at VariableResolution,The Visual Computer 13(5),199-217,1997;Rabinovich,B.et al,Visualization of Large Terrains in Resource-Limited Computing Environments,IEEEVisualization 1997),然而另一些允許任意的連通性(例如參見De FlorianaE.et.al.,Building and Traversing a Surface at Variable Resolution,IEEE Visualization1997,103-110;Hoppe,H.,Optimization of Mesh Locality for Transparent VertexCaching,ACM SIG-GRAPH 1999,269-276;El-Sans,J.,et al.,GeneralizedView-Dependent Simplification,Proceedings of Eurographics,1999,83-94).
諸如最長邊等分、有限的四叉樹的Bin-tree體系,以及直角三角形體系使用直角三角形的遞歸等分來簡化存儲器設計和遍歷算法。然而,這些半規(guī)則網(wǎng)格還包括基于指針的數(shù)據(jù)結構以及立即模式描繪(參見例如Lindstrom,P.et al.,Real-Time,Continuous Level of Detail Rendering of Height Fields,ACM SIGGRAPH1996,109-118;Duchaineau,M.et al.,Roaming TerrainReal-time Optimally AdaptingMeshes,IEEE Visualization 1997,81-88;Pajarola,R.,Large Scale TerrainVisualization Using the Restricted Quadtree Triangulation,IEEE Visualization 1998,19-26;Rottger,S.et al.,Real-time Generation of Continuous Levels of Detail forHeight Fields,Central Europe Conf.on Computer Graphics and Vis.,315-322;和Blow,J.,Terrain Rendering at High Levels of Detail,Game Developers Conference2000)。
此外,Bin-tree區(qū)域在與bin-tree結構關聯(lián)的區(qū)域上定義粗放式加細操作,并且將預計算的分成三角形的區(qū)域上載到視頻存儲器中高速緩存的緩沖器中,因而加速整體的描繪。然而,高速緩存阻礙對時間相干性的地形學的使用。參見例如Levenberg,J.,et al.,F(xiàn)ast View-dependent Level-of-Detail Rendering UsingCached Geometry,IEEE Visualization 2002,259-266;Cignoni,P.et al.,BDAM-Batched Dynamic Adaptive Meshes for High Performance TerrainVisualization,Computer Graphics Forum22(3)2003;Cignoni,P.et al.,Planet-sizedBatched Dynamic Adaptive Meshes(P-BDAM),IEEE Visualization 2003。還有其他很多用于視圖從屬繪圖的方法。參見例如Bishop,L.,et al.,Designing a PC GameEngine,IEEE CG&A 18(1),46-53 1998;De Boer,W.,F(xiàn)ast Terrain Rendering UsingGeometrical Mipmapping,http//www.flipcode.com/tutorials/geomipmaps.pdf,datedOctober 2000;Wagner,D.,2004,Terrain Geomorphing in the Vertex Shader,InShaderX2Shader Programming Tips&Tricks with DirectX9,Wordware Publishing2004;Gumhold,S.et al.,Multiresolution Rendering with Displacement Mapping,Graphics Hadrdware Workshop1999;Dogget,M.et al.,Adaptive View-dependentTessellation of Displacement Maps,Graphics Hardware Workshop,2000;Moule,K.etal.,Efficient Bounded Adaptive Tessellation of Displacement Maps,Graphics Interface,2002。還有其他用于紋理圖的方法。參見例如Dollner,J.et al.,Texturing Techniquesfor Terrain visualization,IEEE Visualization 2000,227-234;Tanner,C.et al.,TheClipmapA Virtual Mipmap,ACM SIG-GRAPH 1998,l51-l58(“Tanner 1998”)。
概要所描述的技術提供了在用計算機處理的地形描繪中用于細節(jié)等級改變的產(chǎn)品、方法和系統(tǒng)。在一個例子中,通過一種這里稱為幾何裁剪圖的技術,提供地形描繪。幾何裁剪圖在幾個方面與現(xiàn)有的方法有所不同。加細體系包括一組嵌套的、觀察者為中心的規(guī)則柵格,用地形學提供內(nèi)部等級(inter-level)連續(xù)性。加細標準還考慮了觀察距離,但其忽略了當?shù)氐牡乇韼缀涡螤?。幾何裁剪圖定義以觀察者為中心的一個體系,其簡化了速度和時間中內(nèi)部等級的連續(xù)性。
在一個例子中,一個地形的細節(jié)的多個等級存儲在存儲器的規(guī)則柵格中。在一個這樣的例子中,地形高速緩存在從多個等級得到的一組嵌套式規(guī)則柵格中,將該地形作為離一個觀察點的距離的函數(shù)。如果該觀察點相對于地形移動,該嵌套式規(guī)則柵格相對于該觀察點在地形中的移動而被漸增地重新填滿。在一個這樣的例子中,引入轉換區(qū)域來幫助柵格等級之間的混合。在一個例子中,規(guī)則柵格作為頂點緩沖器存儲在視頻存儲器中。在一個這樣的例子中,一個頂點數(shù)據(jù)集包括來自另一個用于有效的柵格等級邊界混合的柵格等級的高度值。
在另一個例子中,一個計算機系統(tǒng)提供了規(guī)則柵格的多個等級,其表示在不同等級上的地形。在一個這樣的例子中,一個描繪部件將規(guī)則柵格的一部分嵌套入一個嵌套的規(guī)則柵格中,該嵌套的規(guī)則柵格基于離一個觀察點的距離在細節(jié)上減少了。還描述了很多具有細節(jié)的等級的地形描繪的其他例子和變化。
從下面參照附圖進行的描述中,附加的特征和優(yōu)點會變得明顯。
附圖簡述
圖1是示出了裁剪圖的等級的示意圖。
圖2是典型的嵌套的幾何裁剪圖的示意圖。
圖3是典型的著色區(qū)域示意圖,其示出了一組嵌套的規(guī)則柵格的等級之間的關系。
圖4是用于描繪畫面典型方法的流程圖。
圖5是用最佳頂點高速緩存描繪的典型描繪區(qū)域的示意圖。
圖6是嵌套裁剪圖等級之間的典型邊界的示意圖。
圖7是包括一個轉換區(qū)域的一個典型嵌套裁剪圖的示意圖。
圖8是從上觀察的平截頭體角錐視圖的典型示意圖。
圖9是實現(xiàn)上述技術的分布式計算機系統(tǒng)的方塊圖。
詳細描述縱覽地形幾何形狀是戶外圖形環(huán)境的一個重要組件,其用于例如電影、虛擬環(huán)境、繪圖法和游戲中。特別地,實時戶外游戲包括飛行模擬器、駕駛模擬器和龐大的多玩家游戲中。該技術集中于地形高度域的實時描繪,并提供了地形圖像描繪中的效率。
為了使用在嵌套的規(guī)則柵格中的幾何裁剪圖來示范地形繪制,使用一個真實地形的規(guī)則柵格。然而,一個虛擬的地形的規(guī)則柵格也會有效。例如,一個示范的數(shù)據(jù)集是美國的高度域地圖,其中在一個規(guī)則柵格中包括每三十米采集的高度樣本。
圖1是表示裁剪圖的等級的示意圖。在該例中,等級102是地形的最精細細節(jié)等級,在中間等級104中創(chuàng)建地形的較低細節(jié)的等級,直到最低細節(jié)等級到達等級106。地形等級角落上的箭頭表示一個任意的地形通常會在尺寸上非常大。例如,用于美國的數(shù)據(jù)集包括216,000×93,600個海拔樣本。地形的海拔表示在地形等級的頂點108,110。較低的地形等級104、106帶來了效率,由于對一個觀察者遙遠但是可見的地形海拔不需要像觀察者近處的地形高度一樣詳細。地形地圖的頂點用于創(chuàng)建地形中的地表。例如,一個正方形的地表取決于由頂點a、b、c和d限定的海拔樣本。通過在較精細細節(jié)等級中提供更多的海拔樣本,就可以創(chuàng)建表示更多地形細節(jié)的地表。例如,一個三角形等級(a.k.a,三角形網(wǎng)格)是由頂點a、b和d表示的。紋理圖像被應用到這些等級以向網(wǎng)格等級提供紋理。
當一個觀察點遍歷一個地形時,從該地形的最佳等級繪制與觀察點最近的地形精細和紋理,而地形地形和紋理細節(jié)是隨著距離的增長從較低等級得到的。
在一個例子中,幾何裁剪圖的等級的部分作為頂點緩沖器而存儲在高速視頻存儲器中,當觀察點移動時上述部分逐漸遞增地被重新填寫。這提供了視覺的連續(xù)性、統(tǒng)一的幀速度、減少了復雜度以及功能退化。
龐大的地形高度圖通常包括非常多要實時交互地描繪的高度樣本。此外,描繪一個均一密度的三角網(wǎng)會導致混淆現(xiàn)象,這是由未過濾的從樣本到像素的多對一映射所引起的,如在沒有MIP貼圖(mipmaps)的紋理中所示。因而提供作為觀察參數(shù)的函數(shù)的細節(jié)等級(LOD)來調整地形的棋盤形布置。
上述方案適用于不僅基于視圖而且基于當?shù)氐匦螏缀涡螤睿瑏磉M行加細。在這些上述方案中,等級區(qū)域設計成更大的三角形,導致要描繪的不規(guī)則的網(wǎng)格具有更少的三角形。然而,上述結構具有一些缺陷。加細標準和/或加細操作一定要預先計算并且耗費額外的存儲器。數(shù)據(jù)結構包括具有很差高速緩存相關性的隨機訪問遍歷。另外,改變棋盤形布置需要較慢的立即模式描繪,同時高速緩存靜態(tài)區(qū)域阻礙了當時的連續(xù)性。而且,要保持恒定的幀速度,加細閾值必須隨著所觀察的地形的崎嶇不平而改變。最后,地表的陰影需要紋理圖像,該圖像分別地存儲并使用完全不同的LOD結構。
現(xiàn)有GPU的描繪速度提供足夠的處理能力以便使用像素大小的三角形以視頻速度覆蓋一個幀緩沖器。而且,頂點處理速度持續(xù)增長直到趕上像素速度。因而,上述技術不再假定細密紋理的LOD是必需的,而是尋找地形的屏幕統(tǒng)一棋盤形布置,其中所有的三角形大致是像素大小的。該技術產(chǎn)生最佳地饋送圖形管路的LOD結構。
圖2是典型的嵌套式幾何裁剪圖的示意圖。幾何裁剪圖將一個地形高速緩存在一組嵌套的觀察者居中的規(guī)則柵格中。這些柵格以2次方(power-of two)的分辨率表示地形的過濾格式,并且作為頂點緩沖器存儲在視頻存儲器。當觀察點移動時,裁剪圖等級移位并且被數(shù)據(jù)遞增地重新填寫。
在幾何裁剪圖和紋理裁剪圖之間有一些關鍵的差異。參見例如Tanner,C.etal.,The ClipmapA Virtual Mipmap,ACM SIG-GRAPH 1998,151-158(“Tanner1998”);Williams,L.,Pyramidal Parametrics,ACM SIGGRAPH 1983,1-11。
在設計屏幕空間幾何形狀之后,紋理裁剪圖每像素地計算LOD。然而對于地形,并不存在屏幕空間幾何形狀,直到選擇了地形LOD一循環(huán)的從屬。更重要地,每像素LOD選擇并不會難以保持網(wǎng)格的嚴密性或當時的平滑性。
相反,自然空間中的LOD是基于觀察者的距離、使用一組關于觀察點的嵌套的矩形區(qū)域而選擇的。創(chuàng)建多個轉換區(qū)域以平滑地混合等級,并且通過使用零區(qū)域三角形滾壓等級邊界來避免T接合。上述LOD轉換方案允許裁剪等級的獨立轉換,并且修整等級而不是如Tanner 1998所述自動地無效。另外,嵌套的規(guī)則柵格支持紋理圖像,因而得到用于幾何形狀和圖像的統(tǒng)一的LOD結構。和紋理裁剪圖不同,上述技術不需要特殊的硬件。
完整的地形不需要作為規(guī)則柵格存儲在主要存儲器中。當?shù)匦我詨嚎s的格式存儲時,主要存儲器可以包括一個完整地形錐體的壓縮的表示。在一個這樣的例子里,等級以連續(xù)等級之間的壓縮剩余物的形式進行存儲。當合成了地形時,如果高速緩存了裁剪圖,不需要為了這個目的在主要存儲器中存儲任何東西。在一個這樣的例子中,因為視圖移動了,合成程序填充裁剪圖的等級。
幾何裁剪圖縱覽幾何裁剪圖使用一組m等級來高速緩存地形錐體,在連續(xù)的2次方(power-of two)分辨率(例如,圖2)表示嵌套的程度。在一個例子中,每個等級包括一個n×n頂點陣列,作為頂點緩沖器存儲在視頻存儲器中。要允許有效的遞增更新,螺旋形地訪問該陣列(也就是,使用x和y上的冪操作進行2D環(huán)繞尋址)。在不久的將來,圖形硬件也將允許頂點的該2D陣列作為圖像存儲。特別地,一個三通道圖像,其中3個通道(紅、綠、藍)存儲該頂點的X、Y、Z位置。在一個這樣的例子中,每個頂點包括(x,y,z,zc)坐標,其中z是該等級的高度值,zc是在下一個較粗糙等級中在(x,y)點的高度值,并被用作轉換變種,這將在后面討論。
對于裁剪圖的每個等級1,如附圖3所示那樣確定一組矩形區(qū)域確定為。clip_region(l)302是在該等級由n×n柵格所描述的自然區(qū)域。active_region(l)304是所描繪的子集的區(qū)域。如后面要討論的,想要的激活區(qū)是以觀察者為中心的,但是裁剪區(qū)域可以落在后面,導致激活區(qū)的修整。下一個較精細等級的clip_region(l+1)306也具有一個active_region(l+1)308。最后,該等級的render_region(l)310定義為render_region(l)=active_region(l)-active_region(l+1)。對于最精細的等級m,active_region(m+1)定義為空。當視圖改變時,更新激活和裁剪區(qū)域,如后面所述的“激活區(qū)域的計算(Computation of Active Regions)”和“幾何剪裁圖的更新(Geometry Clipmap Update)”。
下面的觀察是參照附圖3作出的。
(1)clip_region(l+1)clip_region(l)Θ1,其中Θ表示由標題距離的侵蝕。因為較精細等級值是在解壓縮或標量中的一個過程中從較粗糙的等級值預測的,所以裁剪區(qū)域被嵌套。該預測需要在所有邊上保持1個柵格單元。
(2)active_region(l)clip_region(l),由于描繪的數(shù)據(jù)是當前裁剪圖中數(shù)據(jù)的子集。
(3)active_region(l)的周長取決于“偶數(shù)的”頂點(如在附圖6中所討論的),來用較粗糙的等級l-1激活嚴密的邊界。
(4)active_region(l+1)active_region(l)Θ2,因為描繪區(qū)域是至少兩個柵格單元的寬度以允許等級之間持續(xù)的轉換。
在一個例子中,每個裁剪圖等級還包括相關聯(lián)的紋理圖像。存儲一個每通道8位的正常圖用于地表陰影,由于其比正常的每頂點存儲更有效率。對于真實的陰影,正常的圖具有兩倍于幾何形狀的分辨率,由于每頂點的正常圖是非常模糊的。在一個例子中,當更新裁剪圖時,從幾何圖形計算正常圖??赡芤圆煌姆直媛蚀鎯α硗獾膱D像,例如顏色域或地形屬性。類似于頂點陣列,為每個有效的更新螺旋形地訪問頂點。在一個例子中,為了在后面要討論的視圖圓錐截體選擇中使用,在每個裁剪等級中為每個本地地形保持zmin、zmax海拔界限。
圖4是用于描繪幀的典型方法400的流程圖。在一個例子中,下面的方法在每個幀上執(zhí)行。在一個例子中,在402,該方法為裁剪圖的每個等級確定激活區(qū)。通常,為最接近觀察點的地形選擇裁剪圖的較細密紋理等級。例如,如圖2所示,確定觀察點202是到裁剪圖地形的給定等級最近的。因而,使用裁剪圖地形204的較精細等級來顯示最接近觀察者的地形。至于從觀察者202的距離增加210,使用裁剪圖206、208的較粗糙等級。確定激活區(qū)的另一個例子將在下面討論(也就是,確定激活區(qū))。
在404,當觀察點相對于裁剪圖移動時,裁剪圖幾何形狀被更新。當觀察點相對于地形移動時,調整裁剪圖邊界等級以便使觀察點周圍的等級一般地保持如圖2所示的關系一也就是說用來自較精細裁剪圖等級的數(shù)據(jù)來填充離觀察點最近的視圖。因而,在從堪薩斯州到北卡羅萊納州的旅行中,在觀察點前面演變的地形具有一個展開的前沿。如附圖2所示,當觀察點向210移動時,來自該裁剪圖的每個等級的地形會演變,所以該觀察點保持在裁剪圖的中心。如示保持觀察點為中心是有幫助的,尤其是在觀察者能夠旋轉并反向觀看的情況中。下面討論更新裁剪圖的另一個例子(也就是,幾何形狀的裁剪圖更新)。
在406,激活區(qū)被修整到裁剪區(qū)域,并且描繪裁剪圖。下面討論該步驟的另一個例子(也就是,描繪算法)。
確定激活區(qū)取決于觀察的加細是由為裁剪圖的每個等級選擇激活區(qū)而確定的。在一個例子中,對于每個等級l,具有自然空間中柵格212間距gl=2-1,想要的激活區(qū)是以觀察點202的(x,y)位置為中心的尺寸為ngl×ngl214的空間。換句話說,想得到的裁剪圖是再次以觀察者為中心,并且很好地描繪每個等級的整體范圍。現(xiàn)在,考慮屏幕空間三角形的尺寸是如何隨著對裁剪圖尺寸n的選擇而變化的。目前假定地形具有很小的傾斜,所以每個三角形大概是邊長為gl的直角三角形。下面討論更通用的誤差分析(也就是,結果和討論)。
對于任何可視的自然點,屏幕空間的尺寸與在屏幕空間的深度成反比。如果觀察方向是水平的,在XY等級上測量屏幕空間深度。觀察者位于render_rigion(l)的中心,其具有外側邊長ngl和內(nèi)側邊長ngl/2。對于觀察域=90°,平均屏幕空間深度(在所有觀察方向上的)是大約(0.4)ngl。因而,大約的像素屏幕空間三角形尺寸s是由下面的算式給出的 其中W是窗口尺寸,是觀察的區(qū)域。對于默認值W=640像素和=90°,裁剪圖尺寸n=255得到很好的結果。這相應于3像素的屏幕空間三角形尺寸s。由于正常的圖是以該分辨率的2倍存儲的,這給每個紋理樣本大約1.5像素,這對于紋理采樣來說是一個合理的設定值。
當觀察方向不是水平的時,render_rigion(l)的屏幕空間深度比上述的(0.4)ngl大,因而屏幕空間三角形尺寸變得比s小。如果如果觀察者從地形的高處垂直向下看,三角形的尺寸非常小,混淆現(xiàn)象會變得明顯。分辨率要使不必要的精細的等級的描繪無效。特別地,觀察者在地形之上的高度是通過訪問裁剪圖的最精細有效等級來計算的。對于每個等級l,如果觀察者高度比(0.4)ngl大,則激活區(qū)設定為空。
簡單以觀察者為中心的區(qū)域的一個缺陷是,隨著視圖域的變窄,裁剪圖尺寸n必須隨著增加。一個校正將會使裁剪圖區(qū)域的位置和尺寸適應觀察截錐體。取而代之的是,使用以觀察者為中心的區(qū)域,因為其使視圖即刻繞著當前觀察點旋轉。很多應用程序都有這個需要,例如使用操縱桿“安全帽轉換器”讓用戶能夠查看所有方向的飛行模擬器。下面,視圖截錐體選擇描述了如何避免描繪在視圖部分之外的地形。
更新幾何裁剪圖當想得到的激活區(qū)隨著觀察者的移動而移動時,裁剪區(qū)域也應當相應地移動。在一個例子中,通過螺旋的訪問,當移動一個等級時不需要復制舊的數(shù)據(jù)。當一個裁剪區(qū)域被轉換時,用數(shù)據(jù)填充新出現(xiàn)的L形區(qū)域,其來自于對明確的地形的解壓縮或對程序形式的地形的合成,如下面討論的“地形壓縮”和“地形合成”。在一個例子中,從解壓縮過的地形填充較粗糙的等級314,并且合成較精細的等級是312。
當為了減少更新的頻率而轉換該裁剪區(qū)域時,會有一個變化,其可以預見觀察者未來的運動。由于解壓縮和合成都可以在很小的區(qū)域中有效地實現(xiàn),更新的間隔尺寸在當前還不是重要因素。
當觀察者很快地運動時,更新所有等級所需的處理會是復雜的。因而,以粗糙到精細的順序更新等級,并且在達到給定的處理預算時,緊接著停止更新。在一個例子中,確定在更新過的樣本總量超過n2之后,停止更新確定是有效的。由于在未更新(較精細)的等級中的裁剪區(qū)域落在后面了,其逐漸地修整相關聯(lián)的激活區(qū)域,直到它們變成空的。效果是快速移動(靠近觀察者)的地形丟失其高頻率的細節(jié),反而運行良好。一個有趣的結果是隨著觀察者更快地移動,描繪工作量居然減少了。
當使用壓縮或合成而更新裁剪圖時,較精細的等級是使用插入的再分方案從較粗糙的等級所預測的等級。在一個這樣的例子中,選擇了四點再分曲線插值的張量積形式,其具有掩膜加權(-1/16、9/16、9/16、-1/16)。參見例如Kobbelt,L.,Interpolatory Subdivision on Open Quadrilateral Nets with ArbitraryTopology,Eurographics 1996,409-420;以及 Dyn,N.,A 4-point InterpolatorySubdivision Scheme for Curve Design,CAGD 4,257-268 1987。
描繪算法一旦確定了想得到的激活區(qū)域,則使用表格1所示的算法描繪地形。
根據(jù)該算法,激活區(qū)被依據(jù)如上面“幾何裁剪圖縱覽”所論述的條件而被修整為裁剪區(qū)以及較粗糙的激活區(qū)。請注意如果active_region(k)是空的,則通過構建所有較精細的active_region(l),l>k的區(qū)域也是空的。較精細的等級具有空的激活區(qū)是非常常見的,這是由于它們的裁剪區(qū)沒有被及時更新(也就是,觀察者運動得很快),或是由于較精細的棋盤形布置是未獲保證的(也就是,觀察者在離地形相當高的地方)。
由于較精細的等級較靠近觀察者,從精細到粗糙的順序描繪等級以使用任意硬件閉合選擇。
圖5是用最佳的頂點高速緩存描繪典型描繪區(qū)域的示意圖。
在一個例子中,render_region(l)被分割成四個矩形區(qū)域502-508,其是使用圖5所示的三角形帶描繪的。最大帶長度是從最佳的頂點高速緩存中選擇的,上述帶組合在一起形成龐大的成批的基元。實際上,這些帶在長度上高達20個三角形。在視頻存儲器體系的所有等級上,柵格式順序存儲器的訪問運轉得很好。
為視覺的連續(xù)性而轉換區(qū)域迄今為止,上述算法不能解決在不同等級上描繪區(qū)域之間的縫隙,這歸咎于在邊界上兩次冪的配合不當。
圖6示出了裁剪圖等級之間的典型邊界。例如,嵌套的裁剪圖具有邊界608,在那里裁剪圖的較精細的等級遇到了較粗糙的等級。如上所述,一個較精細紋理等級604典型地接近使用了更大三角形網(wǎng)格復雜度的觀察點。如所示,較粗糙紋理的柵格602具有用于確定兩個三角形A和B的四個頂點。這與其鄰近的較精細紋理的柵格604相對比,該柵格具有用于確定8個三角形a-h的9個頂點。如可以預見的,在較精細和較粗糙網(wǎng)格之間的邊界提供了用戶也許能看到的可視縫隙。
因而,當較精細紋理網(wǎng)格變得接近等級邊界608時,較細紋理等級被移動到較粗糙紋理等級。在等級之間的移動實施于較精細紋理等級的頂點,以便向上達到較粗糙等級,該轉換對于觀察者來說不明顯。為了演示上述內(nèi)容,用垂直的y軸和水平的x軸標注等級邊界608,其中心在x=0、y=0的頂點(0,0)610。注意較粗糙等級的頂點全落在圖形的偶數(shù)x和偶數(shù)y的頂點值上(也就是,(0,0),(0,2),(2,0),(2,2))等。還注意到較精細等級的頂點落在圖形的奇數(shù)和偶數(shù)的x和y的頂點值上(也就是,偶數(shù)(0,0),(-2,0),(0,2),(-2,2);奇數(shù)(0,-1),(0,1),(-1,1),(-2,1),(-1,2))。因而,如果設定轉換寬度等于三個柵格612,那么較精細等級的奇數(shù)頂點會轉換為它們之下的較粗糙柵格的向下樣本值。向上到達邊界608,會完成到向下樣本的轉換,以便使在較粗糙等級(0,1)上的奇數(shù)點的地形高度值等于較精細等級的鄰近三角形的中間點(也就是,(0,0)和(0,2)的中間點)。
附圖7示出了包括轉換區(qū)域的典型嵌套裁剪圖。圖7示出了transition_region(l)702。要消除縫隙并且提供暫時的連續(xù)性,在每個render_region(l)714的外部邊界附近的幾何形狀被變形,以便使其平滑地轉換到較粗糙等級的幾何形狀。該變形是地形頂點空間(x,y)708柵格坐標的函數(shù),該柵格坐標是相對于觀察點(vx,vy)706的柵格坐標。因而該轉換不是以時間為基礎的而是跟蹤連續(xù)的觀察者位置706。
通過實驗,可以確定n/10柵格單元的min_width(l)710轉換寬度w運行良好。如果w非常小,等級邊界會變得明顯。并且如果w非常大,會不必要地丟失精細圖象細節(jié)。如果較精細active_region(l+1)712太接近較粗糙區(qū)域,那么它會有助于設定w=(n/10,min_width(l)),其中min_width(l)已知最小為2。
回想每個頂點存儲(x,y,z,zc),其中zc是下一個較粗糙等級l-1中的地形高度。在轉換區(qū)域中,根據(jù)如下公式確定頂點值的變形的高度值z′=(1+α)z+αzc其中按α=max(αx,αy)為αy并且只為αy計算混合參數(shù)α,其中αx=min(max((|x-vxl|-(xmax-xmin2-w-1))/w,0),1)]]>這里(vlx,vly)表示在clip_region(l)的柵格中的觀察點的連續(xù)坐標,以及active_region(l)704的整數(shù)范圍xmin和xmax。想要的特性是α估算到0,除了位于轉換區(qū)域中,其中α在外部周界線性地向上傾斜到1。在GPU頂點陰影中使用大約10條指令實現(xiàn)上述估算,所以其幾乎不會增加描繪成本。因而,外部邊界附近的轉換區(qū)使計時器等級l平滑地與下一個較粗糙等級l-1接合。
雖然幾何的轉換消除了縫隙,在一些例子的光柵化過程中,沿著邊界的T型交叉點還會導致產(chǎn)生落下的像素。要將鄰近的等級縫合成嚴密的網(wǎng)格,沿著描繪區(qū)域邊界描繪零寬度三角形。
紋理繪制如上所述,每個裁剪圖等級還存儲了在柵格化中使用的紋理圖像(例如,正常的地圖)。紋理繪制的一個選擇是使硬件MIP(mipmapping)貼圖控制紋理LOD。每個裁剪圖等級上的紋理會擁有其自己的MIP(mipmap)貼圖角椎體,因而額外需要33%的存儲器。注意該角錐體中較粗糙的MIP(mipmap)貼圖等級精確地與較粗糙裁剪圖等級中的子區(qū)域對應,所以理想地它們應當如在紋理裁剪圖中一樣被共享(參見例如Tanner1998),但是當前硬件并不支持該容量。更重要的是,在讓硬件控制MIP貼圖(mipmap)等級時存在實際的問題。如果存儲的紋理的分辨率不足夠高,一些情況中在描繪區(qū)域邊界上,在紋理分辨率中的急速轉換會是明顯的,因為MIP貼圖(mipmap)等級沒有到達下一個較粗糙的等級。在觀察者在地形表面上移動過程中,可以看到作為“前沿”的急速轉換。
相反,MIP貼圖(mipmapping)也被無效了,使用應用到幾何形狀上的相同的空間轉換區(qū)域,在紋理上執(zhí)行LOD。因而紋理LOD是基于觀察者距離的,而不是如在硬件MIP貼圖(mipmapping)中一樣基于屏幕空間的引出物。在這次近似中丟失的主要元素是在地表定位上的紋理LOD的相關性。當?shù)乇肀粌A斜地導向時,就再也不能訪問較粗糙的MIP貼圖(mipmap)以防止混淆現(xiàn)象。然而,圖形硬件通常支持各向異性的過濾,借此可以從原始的最佳等級結合更多樣本。因此,對于地表定向相關性來說,缺少MIP貼圖(mipmap)不是一個實際的問題。
基于空間的紋理LOD方案可以很容易地在GPU碎屑陰影中實現(xiàn)。當描繪等級l時,用來自等級l和l-1的紋理提供陰影,使用相同的α參數(shù)混合它們,該參數(shù)是已經(jīng)在用于幾何形狀轉換的頂點陰影中計算好的。
選擇視圖截錐體圖8示出了從上面觀察的視圖截錐體的典型圖解。返回到附圖5,每個繪制區(qū)域被分割成4個三角形區(qū)域。同樣,返回到裁剪圖的等級,為本地地形保持zmin和zmax邊界。用地形邊界[zmin,zmax]擠壓出每個2D三角形區(qū)域,以形成軸對準的邊界框。使用視圖截錐體的4邊角錐分割該框,并且將結果凸面集投影到XY等級。例如,對于用屏幕終端坐標a-d表示的屏幕視圖802,從該屏幕位置分割的相應區(qū)域范圍顯示在典型嵌套柵格804中,用相同的屏幕坐標a-d標注。軸對準三角形邊界集被用于修整給定的三角形區(qū)域。視圖截錐體選擇為視圖的90°區(qū)域減少了以大約以3為因數(shù)的描繪負載。
地形壓縮海拔地圖與現(xiàn)實緊密相關,與通常的顏色圖像相比時更是重要,并且因而為壓縮提供了巨大的機會。為了有效地與幾何裁剪圖結構交互,解壓縮算法必須在任何2次方的分辨率上支持“region-of-interest”(ROI)查詢。
下面描述錐體壓縮方案。地形錐體T1..Tm首先通過使用線性濾波器Tl-1=D(Tl)連續(xù)地將精細地形Tm向下采樣到較粗糙等級而創(chuàng)建。然后,從每個錐體等級Tl的下一個較粗糙等級Tl-1通過插入的再分U(Tl-1)預測該錐體等級Tl(例如,如“更新地形裁剪圖”中所論述的),并且使用圖像編碼器壓縮剩余的Rl=Tl-U(Tl-1)。預先計算最佳濾波器D(大小為11×11),以便通過解決給定地形的子集上的線性系統(tǒng),U(D(Tl))給出Tl的最佳L2近似值。由于該壓縮是有損耗的,Rl由 近似。因而,以粗糙到精細的順序重新構建等級為T~l=U(T~l-1)+R~l,]]>并且壓縮剩余的等級并將其重新定義為Rl=Tl-U(T~l-1).]]>由于較粗糙的等級是從遙遠的地方觀察的,第一個步驟是給它們的近似值 較低的絕對精確度。特別地,剩余的Rl由優(yōu)先于量化的2l-m測量。當存在用于幾何逼真度的校正調整時,可以發(fā)現(xiàn)這導致了很差的視覺逼真度,因為正常地圖和基于z的色彩都表現(xiàn)了量化的噪聲(因為它們是從解壓縮的幾何圖形中推斷出的)。該分辨率以相同的絕對精確度壓縮所有的等級剩余物。
使用PTC圖像編碼器壓縮量化的剩余物(例如,Malver,H.,F(xiàn)ast ProgressiveImage Coding without Wavelets,Data Compression Conference 2000,243-252),其具有幾個很好的特性。它們避免通過定義覆蓋基礎功能避免了模塊化的噪聲,然而基點被空間地局部化以允許有效的區(qū)域解壓縮。同樣,當編碼適合在2GB內(nèi)時,編碼器支持任何尺寸的圖像。在一個例子中,解壓縮發(fā)生在漸增地加載到視頻存儲器的過程中,并且因而十分快。
在32位的地址空間內(nèi)通過執(zhí)行作為流動計算的所有步驟,執(zhí)行壓縮預處理。對于40GB U.S.數(shù)據(jù),從原始地形Tm到壓縮的剩余物 的全部處理需要大約5小時,它們之間的大多是盤式I/O。壓縮誤差 的有效值將在下面的“結果和討論”中論述。壓縮的地形在視覺上與原始的是不可分辨的,也許除了與海岸線相關聯(lián)的明顯顏色轉換。
地形合成幾何裁剪圖提供了一個簡單自然的結構來使用隨機細分(參見例如,F(xiàn)ournier,A.et al.,Computer Rendering of Stochastic Models,Comm.of the ACM25(6),371-384 1982;Lewis,J.,Generalized Stochastic Subdivision,ACMTransactions on Graphics 6(3),167-190,1987)或多個分辨率紋理合成(參見例如,Wei,L.et al.,F(xiàn)ast Texture Synthesis Using Tree-structured Vector Quantization,ACMSIGGRAPH 2000,479-488)來生成新的細節(jié)。有一個約束是合成處理必須是空間地確定的,以便一直創(chuàng)建相同的地形。
通過向向上采樣的較粗糙地形添加無關聯(lián)的高斯噪聲來實現(xiàn)碎片噪聲置換。在每個等級l上的噪聲變化被換算成與真實地形中的相等(也就是,在“地形壓縮”中計算的剩余物Rl的變化)。插入細分的Cl平滑度對于避免地表折痕噪聲來說是關鍵的(參見例如,Miller,G,The Definition and Rendering of TerrainMaps,ACM SIGGRAPH 1986,39-48)。對于有效的估算,預先計算的高斯噪聲值存儲在一個表格中,并用頂點坐標上的模操作來作索引。尺寸大小為50×50的表格對于移動任何重新的圖案或可識別的帶狀構造來說是足夠的。
想要使用GPU碎片陰影來完成合成處理,所以幾何形狀數(shù)據(jù)將全部保存在視頻存儲器中。GPU已具有了需要的“頂點到紋理”容量,而且其應當被立刻曝光。目前如圖3所示CPU提供計算時間。
程序合成允許生成具有無限區(qū)域范圍和分辨率的地形,并且因而提供極大的潛力。另外,碎片噪聲提供合成的圖案。
結果和討論實驗包括兩個美國政府樣本。較小的一個是在10米間距的Puget Sound地區(qū)的16,3852個柵格,具有在1米垂直分辨率上的16位高度值。全分辨率柵格被指定到等級l=9,所以其在最粗糙等級l=1上的652區(qū)域范圍內(nèi)。數(shù)據(jù)從537MB壓縮到8.7MB,具有1.2米的均方值誤差(PSNR=20log10(zmax/rms)=71.4dB)。
較大的數(shù)據(jù)集是在30米間距的相鄰的美國的高度地圖(更精確地,在長度和緯度中均為1arc-sec)。其范圍是[126°W,66°W]×[24°N,50°N],因而形成了216,000×93,600個柵格。在m=11等級的裁剪圖中,它在最粗糙等級中占用了212×93個三角形。(即使其是由球狀坐標參數(shù)化的,其仍是描繪的等級。)它從40.4GB壓縮到353MB,帶有2.6米的均方值誤差(PSNR=64.9dB)。使用的PC的配置是3.0GHz奔騰4CPU、1GB的系統(tǒng)內(nèi)存、以及具有256MB視頻存儲器的ATI Radeon 9800XT GPU。
誤差的來源有兩個,壓縮誤差和LOD誤差,我們在這里對其分別分析。U.S.數(shù)據(jù)集是從40.4GB壓縮到353MB的,帶有2.6米的均方值誤差(PSNR=64.9dB)。Puget數(shù)據(jù)集從537MB壓縮到8.7MB,具有1.2米的均方值誤差(PSNR=20log10(zmax/rms)=71.4dB)。這些均方值誤差非常小-只有采樣間隔的大約10%。
對于U.S.數(shù)據(jù)集,等級的數(shù)量是m=11,并且壓縮后的地形在系統(tǒng)存儲器中占用了353MB。對于默認的裁剪圖尺寸n=255,幾何裁剪圖在視頻存儲器中需要16mn2=11MB用于頂點幾何圖形的存儲。由于GPU中的等級預測還是不可行的,在系統(tǒng)存儲器中復制z高度數(shù)據(jù),需要4mn2=3MB。正常的地圖具有兩倍的分辨率,而每個樣本只有3字節(jié),所以需要一個額外的12mn2=9MB。因而,整個存儲器使用了大約376MB,或每樣本僅僅0.019字節(jié)。如表格2所示,空間需要比前述的報告數(shù)據(jù)少得多。由于數(shù)據(jù)符合標準PC的存儲器,我們避免了磁盤訪問的運行時間。
對于尺寸為2552的m=11等級,以59MΔ/秒的描繪速度,用截錐體選擇得到120幀/秒(對于4x幀緩沖器多重采樣,它下降到95幀/秒)。結果表明現(xiàn)有的LOD方法沒有得到最佳的描繪處理量。
在一個例子中,用于更新裁剪圖的閾值處理預算是一個全n×n等級。表格3示出了用于這個最壞情況的更新步驟的執(zhí)行時間。其類似于與GPU處理的時間重疊的時間。在觀察者運行過程中,系統(tǒng)保持幾乎均勻的60幀/秒的速度。注意很快可能實現(xiàn)更有效地使用GPU執(zhí)行所有的步驟(除了解壓縮),這歸功于規(guī)則的柵格數(shù)據(jù)結構。
對于尺寸為2552的m=11等級,以59MΔ/秒的描繪速度,用截錐體選擇得到120幀/秒。(對于4x幀緩沖器多重采樣,它下降到95幀/秒)。用于更新裁剪圖的閾值處理預算是一個全n×n等級。表格3示出了用于該最壞情況的更新步驟的執(zhí)行時間。其類似于與GPU處理的時間重疊的時間。在觀察者移動的過程中,系統(tǒng)保持幾乎均勻的60幀/秒的速度。注意很快可能實現(xiàn)更有效地使用GPU執(zhí)行所有的步驟(除了解壓縮),這歸功于規(guī)則的柵格數(shù)據(jù)結構。
表格2是現(xiàn)有方法的運行時間空間的對比?,F(xiàn)有方法還需要存儲正常的地圖,用于在地表形成陰影(這里未包括)。在幾何裁剪圖中,由解壓縮的幾何圖形計算正常地圖。
表格3對比用于更新全n×n等級(n=255)的時間,其是一個示例性的更新處理預算。
對于m=11的等級,浮點精度還不是一個問題。要允許任何數(shù)量的等級,要有一個簡單的解決方案來使用雙精度將觀察點和觀察矩陣轉換成每個裁剪圖等級的本地坐標系統(tǒng)(參見例如,Cignoni,P.et al.,Planet-sized Batched DynamicAdaptive Meshes(P-BDAM),IEEE Visualization 2003)。
以前,屏幕空間三角形尺寸s是為給定裁剪圖尺寸n而估計的。該分析依賴于一個事實,即如果假定地形傾斜度很小,地形三角形具有緊湊形態(tài)。如果相反地形具有很大的傾斜度,三角形可以無限地伸長,并且它們的屏幕空間范圍沒有邊界,這看起來是有些不令人滿意的。
然而,更相關的測量是屏幕空間幾何形狀誤差,也就是,在描繪的網(wǎng)格和原始地形之間的屏幕投影差異。如果有地形幾何學的頻譜特性的知識,則可以分析該誤差。
對于每個地形等級Tl,誤差函數(shù)el=PL(Tl)-PL(Tm)關注于,PL表示在(x,y)領域上的分段線性網(wǎng)格插入。該功能涉及地形信號的(連續(xù))頻譜密度。由于等級l中的柵格間隔gl投影到屏幕空間中的s像素,誤差el(x,y)的屏幕空間投影在位置(x,y)最大。
e^l(x,y)=el(x,y)gls]]>(如果觀察方向不是水平的,誤差會小一些。)因而,給定一個地形數(shù)據(jù)集,計算êl的規(guī)格以為每個描繪的等級估算屏幕空間誤差,如表格4所示。
結果顯示均方值屏幕空間誤差比一個像素要小。這是沒有預料到的,由于三角形尺寸s僅有3個像素,并且上述等級三角形和較精細細節(jié)之間的差異還很小。更大的L∞(最大限度)誤差值是令人誤解的,因為所需要的地形數(shù)據(jù)包括,鑲嵌的重合失調噪聲,其制造了人為的陡坡,并且其只需一個錯誤的高度值就可以使統(tǒng)計數(shù)據(jù)偏離。相反,適合的作法是檢查99.9th百分比誤差,觀察其是否還是比一個像素小很多。
表格4分析了屏幕空間幾何圖形在像素方面的誤差。列示出了均方值、99.9th百分比和最大限度誤差。(n=255,W=640,=90°,也就是s=3)。
誤差分析顯示當仍在保持可接受的幾何的逼真度時,也許可以減小裁剪圖尺寸。然而,真實的限制因素是視覺逼真度,而其非常依賴地表陰影-這是正常繪圖的基本前提。因而,即使使用了較粗糙的幾何圖形,還是需要保存高分辨率的正常地圖。在我們的系統(tǒng)中,正常地圖是從幾何裁剪圖自身生成的。實際上,壓縮的MIP貼圖(mipmap)截錐體可以看作用于編碼正常地圖的有效方案,還有一個好處是提供載體幾何圖形。
通過適合單個的裁剪圖等級的尺寸,可以開發(fā)橫跨等級的屏幕空間誤差êl的不均勻度。例如,平滑的山會需要附近平滑地形上較精細的棋盤形地形(在屏幕空間中),而不是在較遠的山的輪廓上。如剛剛論述的,不得不證實地形陰影沒有負面的影響。Puget Sound和U.S.地形數(shù)據(jù)集看起來具有大致均勻的頻譜密度。在U.S.數(shù)據(jù)中,誤差在較粗糙等級開始減小,反映了一個事實,即粗略來看地球是平滑的。
壓縮后的地形錐體剩余物 可以存儲在服務器上,并且遞增地流向(基于用戶的運動)少量的客戶端。由于壓縮因數(shù)屬于50-100一類的,所以必要的帶寬很小。
預先過濾的MIP貼圖(mipmap)錐體是用于地形數(shù)據(jù)的自然表示。幾何裁剪圖高速緩存該錐體的嵌套的三角形區(qū)域范圍,以產(chǎn)生依賴視圖的近似值。框架的獨特方面在于LOD獨立于數(shù)據(jù)內(nèi)容。因而地形數(shù)據(jù)不需要任何加細標準的預先計算。與簡單柵格結構一起,其允許在飛行中漫不經(jīng)心地創(chuàng)建地形,或以高度壓縮的格式存儲。上述任一個性能在現(xiàn)有技術中都是不可行的。
在一個例子中,顯示在U.S.的200億樣本柵格之上的交互飛行,在存儲器中只占用400MB,在飛行中以60幀/秒的速度解壓縮。解壓縮后的數(shù)據(jù)具有2.6米的均方值誤差。屏幕空間LOD比一個像素小99.9th百分比,而且當時的描繪是平滑的。
使用規(guī)則的柵格的幾何圖形表示在使用頂點和圖像緩沖器即將來臨的聯(lián)合時,變得甚至更有吸引力。頂點緩沖器會變成通過2D螺旋狀坐標訪問的幾何圖像(參見例如,Gu,X.et al.,Geometry Images,ACM SIGGR APH 2002,355-361),并且這將極大地簡化幾何裁剪圖的執(zhí)行。更通常,該聯(lián)合會促使高度并行GPU光柵化程序除圖像之外還處理幾何圖形。
幾何裁剪圖使地形幾何學的LOD管理和其相關聯(lián)的紋理信號一致。該基于空間的LOD結構使低分辨率紋理在等級邊界上時被應用而不會出現(xiàn)可視的中斷。除了正常圖的運行時間創(chuàng)建之外,可以想像的例如陰影圖等非本地功能能夠以非常輕松的方式被簡單地計算。
幾何裁剪圖提供了一個機會,可以得到上述地形LOD方案所沒有的大量優(yōu)點簡單。作為用于不規(guī)則網(wǎng)格的三角形的處理,沒有指示器/基于索引的數(shù)據(jù)結構的遍歷,也沒有依賴于加細的跟蹤。
最佳描繪處理量。裁剪圖頂點駐留在視頻存儲器中,它們的柵格結構允許具有最佳頂點高速緩存重新使用的三角形帶描繪。
視覺連續(xù)性。內(nèi)部等級轉換區(qū)域分別使用頂點和碎片程序中的一些指令,為幾何圖形和紋理提供空間和時間的連續(xù)性。
穩(wěn)定的描繪。描繪速度幾乎是恒定的,由于棋盤形布置的復雜度獨立于本地地形粗糙程度。
直接的復雜度節(jié)流。即使具有固定的裁剪圖尺寸,所描繪的區(qū)域也可以是固定的,以減少描繪負載。
良好的遞降。當用戶快速地移動時,更新帶寬(要重新填滿裁剪圖)會成為瓶頸。如在紋理裁剪圖中,在規(guī)定的預算中升級盡可能多的等級。效果是可能快速移動地形且有較低的頻率細節(jié)。
地表陰影。如果必要,正常地圖可以很快地從幾何圖形中計算,并使用與幾何圖形相同的LOD結構。
幾何裁剪圖也能夠有這樣兩個新的運行時間功能壓縮。由于只有裁剪圖需要擴展成頂點數(shù)據(jù),地形錐體的剩余物可以以壓縮格式存儲。錐體等級之間的剩余物可以使用2D圖像編碼器來計算。很高的數(shù)據(jù)相關性允許壓縮因數(shù)在50到100左右。將地形整個地存儲在存儲器中,避免了頁面調度停頓。
合成。簡單柵格結構允許高速的地形合成,以便通過程序生成的細節(jié)放大被粗略地指定的幾何圖形。
局限性。在一些情況中,所描繪的網(wǎng)格的細節(jié)遠比現(xiàn)有LOD方案中的復雜。本來,由于幾何裁剪圖具有統(tǒng)一的細節(jié)(各處以及所有頻率上的),并且因而不能從本地適應性中受益。另一方面,網(wǎng)格是規(guī)則的并且駐留在視頻存儲器中,并且因而呈現(xiàn)了用于該最差情況的最佳描繪性能。另一個局限性是假定地形具有有邊界的頻譜密度。例如,一個高的類似于針的特征將會演變成視圖,這有一些太遲了。幸運的是,實際的地形運轉良好并且沒有表現(xiàn)出上述問題,而且建筑物、植物和其它組成了環(huán)境的對象被分別地使用其它LOD技術描繪。
計算環(huán)境附圖9和下面的論述想要為一個執(zhí)行操作所用的適合的計算環(huán)境提供簡短、通用的描述。將會在計算機程序的計算機可執(zhí)行指令的通用環(huán)境中描述本發(fā)明,上述計算機程序在計算機和/或網(wǎng)絡裝置上運行,本領域技術人員可以認識到本發(fā)明還可以在其它程序模塊的組合中實現(xiàn)。通常,程序模塊包括例行程序、程序、組件、數(shù)據(jù)結構等,其執(zhí)行特定任務或實現(xiàn)特定摘要數(shù)據(jù)類型。此外,本領域的技術人員可以理解本發(fā)明可以用其它計算機系統(tǒng)配置來實行,上述計算機系統(tǒng)配置包括多處理器、系統(tǒng)、基于微處理器的電子裝置、微型計算機、大型計算機、網(wǎng)絡應用程序、無線裝置等。還可以擴展在聯(lián)網(wǎng)的計算環(huán)境中實行,或在單個計算機中實行。
參照附圖9,用于執(zhí)行的典型系統(tǒng)包括一個傳統(tǒng)計算機920(例如個人計算機、膝上型電腦、服務器、大型和其它種類的計算機),還包括處理單元921、系統(tǒng)存儲器922和系統(tǒng)總線923,該總線將不同的系統(tǒng)組件連接到處理單元921,系統(tǒng)組件包括系統(tǒng)存儲器。處理單元可以是任意商用處理器,包括Intel x86,從Intel到其它的奔騰處理器和兼容的微處理器,包括Cyrix、AMD和Nexgen;阿爾法來自數(shù)字式;MIPS來自MIPS技術、NEC、IDT、西門子和其它的,并且PowerPC來自IBM和Motorola。成對的微處理器和其它的多個處理器結構也可以用作處理單元921。
系統(tǒng)總線可以是總線結構的多個類型的任意一種,其包括一個存儲器總線或存儲控制器、外圍總線和本地總線,其使用例如PCI、VESA、AGP、微通道、ISA和EISA等傳統(tǒng)總線結構。系統(tǒng)存儲器包括只讀存儲器(ROM)924和隨機訪問存儲器(RAM)925?;据斎?輸出系統(tǒng)(BIOS)包括基本例行程序,其幫助例如啟動期間在計算機920中的元件之間傳遞信息,該基本輸入輸出系統(tǒng)存儲在ROM924中。
計算機920還包括硬盤驅動器927、磁盤驅動器928,其例如用于從可移動磁盤929中讀出或寫入,還包括光盤驅動器930,其例如用于閱讀CD-ROM盤931,或從其它光學媒介讀出或寫入。硬盤驅動器927、磁盤驅動器928和光盤驅動器930分別通過硬盤驅動接口932、磁盤驅動器接口933和光盤驅動接口934,連接到系統(tǒng)總線923,驅動器和與其相聯(lián)的計算機可讀媒介提供了用于計算機920的數(shù)據(jù)、數(shù)據(jù)結構、計算機可執(zhí)行指令等的不可擦寫存儲。雖然上述的計算機可讀媒介涉及硬盤、可移動硬盤和CD,本領域普通技術人員可以理解磁帶、閃速存儲卡、數(shù)碼視頻任務、伯努利盒式磁帶等也可以在典型的操作環(huán)境中使用。
許多程序模塊可以存儲在驅動器和RAM925中,除了上述的技術956的實現(xiàn)之外還包括操作系統(tǒng)935、一個或多個應用程序936、其它程序模塊937和程序數(shù)據(jù)938。
用戶可以通過鍵盤940和例如鼠標942的指示裝置,向計算機920輸入命令和信息。上述和其它輸入裝置通常通過串行端口接口946,連接到處理單元921,上述串行端口946耦合到系統(tǒng)總線,但是也可能與其它接口相連接,例如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器947或其它類型的顯示裝置也通過一個接口連接到系統(tǒng)總線923上,例如視頻適配器948。除了監(jiān)視器之外,計算機典型地包括其它外圍輸出裝置(未求出),例如揚聲器和打印機。
計算機920在網(wǎng)絡環(huán)境中操作,該網(wǎng)絡環(huán)境使用邏輯連接到一個或更遠程計算機,例如遠程計算機949。遠程計算機949可以為服務器、路由器、對等設備或其他通用網(wǎng)絡節(jié)點,并且典型地包括很多或所有上述與計算機920相關的元件,雖然只示出了一個存儲器存儲裝置950。邏輯連接圖解為包括本地局域網(wǎng)(LAN)951和廣域網(wǎng)(WAN)952。上述網(wǎng)絡環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡、企業(yè)內(nèi)部互聯(lián)網(wǎng)和互聯(lián)網(wǎng)中是很普遍的。
當在LAN網(wǎng)絡環(huán)境中使用時,計算機920通過網(wǎng)絡接口或適配器953連接到本地網(wǎng)951。當在WAN網(wǎng)絡工作環(huán)境中使用時,計算機920典型地包括調制解調器954或其它在例如互聯(lián)網(wǎng)的廣域網(wǎng)952上建立通信(例如,經(jīng)過LAN951和網(wǎng)關或代理服務器955)的其它設備??梢允莾?nèi)置或外置的調制解調器954經(jīng)過串行端口接口946,連接到系統(tǒng)總線923。在網(wǎng)絡環(huán)境中,圖解為與計算機920或其端口相關的程序模塊或其的一部分可以存儲在遠程存儲器存儲裝置中??梢岳斫馑镜木W(wǎng)絡連接是典型的,并且可以使用在計算裝置之間無線或有線地建立一個通信鏈接。
備選方案參照圖解的例子,已經(jīng)描述并闡明了本發(fā)明的原理,可以理解能夠在排列和細節(jié)上調整例子,而不背離上述原理。另外,對于普通計算機科學家來說是明顯的,即可以將部分例子或全部例子與其它例子的其它部分全體或部分進行組合??梢岳斫膺@里描述的程序、進程或方法除非指明否則并不與計算機設備的任何特定類型相關,也不限于上述類型。通用或定制的計算機設備不同類型可以一起使用,或根據(jù)這里所討論的教導,來執(zhí)行操作。軟件中示出的所述的實施例的元件可以以硬件實現(xiàn),或者相反。來自一個例子的技術可以合并到其它例子中的任一個。
考慮到有很多可能的實施例,本發(fā)明的原理可以應用其中,應當意識到細節(jié)只是說明性的,并不能看成是限定本發(fā)明的范圍。我們寧可要求本發(fā)明所有這樣的實施例,以及可能落入下面的權利要求及其相等物的范圍和實質的所有
權利要求
1.一種計算機可執(zhí)行方法,提供了在地形描繪中細節(jié)的可變等級,該方法包括提供一個地形的細節(jié)的多等級表示,其中每個等級表示一個規(guī)則柵格;確定觀察者的觀察點;在一組從多個等級中得到的嵌套規(guī)則柵格中高速緩存一個地形視圖,其作為離觀察點的距離的函數(shù);以及當觀察點相對于地形運動時,遞增地重新填寫該組嵌套規(guī)則柵格。
2.權利要求1所述的方法,其中嵌套的規(guī)則柵格組高速緩存在視頻存儲器中。
3.權利要求1所述的方法,其中嵌套的規(guī)則柵格是以觀察點為中心的n×n范圍。
4.權利要求3所述的方法,其中嵌套的規(guī)則柵格組的等級在范圍是從0到n的25%的轉換區(qū)域中混合。
5.權利要求1所述的方法,其中地形的細節(jié)的多等級表示包括地形海拔和紋理圖像。
6.權利要求1所述的方法,其中嵌套的規(guī)則柵格組包括n×n的頂點陣列,上述柵格作為頂點緩沖器被高速緩存在視頻存儲器中。
7.權利要求6所述的方法,其中在描繪的過程中,螺旋形地訪問該陣列。
8.權利要求1所述的方法,其中一個規(guī)則柵格的頂點包括x、y、z和z’坐標,其中z坐標表示一個等級的地形海拔值,z’坐標表示下一個較粗糙等級的地形海拔值,z’值用在嵌套的規(guī)則柵格組的等級之間的轉換變體中。
9.權利要求1所述的方法,其中當遞增地重新填寫嵌套的規(guī)則柵格組時,由等級的幾何形狀計算正常的地圖。
10.一種計算機系統(tǒng),包括一中央處理單元;一圖形處理單元;以及一耦合到包含數(shù)據(jù)和可執(zhí)行的指令的存儲器的處理單元,包括規(guī)則柵格的多等級表示,每個等級表示在細節(jié)的不同等級上的地形;以及描繪部件包括可執(zhí)行指令,用于將多個等級的部分嵌套入嵌套的規(guī)則柵格組,以減少細節(jié)的等級,作為離觀察點的距離的函數(shù)。
11.權利要求10所述的計算機系統(tǒng),其中規(guī)則柵格的多個等級進一步包括紋理圖像。
12.權利要求10所述的計算機系統(tǒng),其中嵌套的規(guī)則柵格被嵌套入n×n的頂點陣列,并且作為頂點緩沖器而存儲在視頻存儲器中。
13.權利要求10所述的計算機系統(tǒng),其中描繪部件進一步包括用于在嵌套的規(guī)則柵格組的等級之間混合的可執(zhí)行指令。
14.權利要求13所述的計算機系統(tǒng),其中描繪部件進一步包括當觀察點相對于地形運動時,用于遞增地重新填寫嵌套的柵格組的可執(zhí)行指令。
15.權利要求14所述的計算機系統(tǒng),其中描繪部件進一步包括當遞增地重新填寫嵌套的規(guī)則柵格組時,用于為地形陰影創(chuàng)建一個正常圖的可執(zhí)行指令。
16.權利要求10所述的計算機系統(tǒng),其中描繪部件進一步包括用于將嵌套的規(guī)則柵格組的中心定位在觀察點附近的可執(zhí)行指令。
17.一種計算機可讀媒介,包括用于執(zhí)行一種方法的計算機可執(zhí)行指令,該方法包括提供多個規(guī)則柵格的表示,該柵格包括地形的細節(jié)的不同等級;相對于地形確定一個觀察點;并且創(chuàng)建一組從多個規(guī)則柵格中選擇的嵌套的規(guī)則柵格,以便當離觀察點的距離增加時,嵌套的規(guī)則柵格等級在細節(jié)的等級上遞降。
18.權利要求17所述的計算機可讀媒介,其中該方法進一步包括在嵌套的規(guī)則柵格組之間混合地形海拔值,以使得在較精細細節(jié)等級上的高度值在等級邊界上接近較粗糙細節(jié)等級的等級。
19.權利要求17所述的計算機可讀媒介,其中該方法進一步包括當觀察點相對于地形運動時,用于遞增地重新填寫嵌套的柵格組的可執(zhí)行指令。
20.權利要求19所述的計算機可讀媒介,其中包含在嵌套的規(guī)則柵格組中包含的每個等級是一個n×n的規(guī)則柵格,其在連續(xù)的2次方分辨率上減少。
全文摘要
地形的細節(jié)的多個等級以規(guī)則柵格存儲在存儲器中。在一個這樣的例子中,地形被高速緩存在一組從多個等級得到的嵌套的規(guī)則柵格中,作為離觀察者的距離的函數(shù)。在一個這樣的例子中,地形的細節(jié)的多個等級包括地形海拔和紋理圖像。如果觀察點相對于地形移動,嵌套的規(guī)則柵格被相對于觀察點在地形中的運動而重新填充。在一個這樣的例子中,引入轉換區(qū)域來幫助柵格等級之間的混合。在一個這樣的例子中,規(guī)則柵格作為頂點緩沖器存儲在視頻存儲器中。在一個這樣的例子中,頂點數(shù)據(jù)包括用于有效柵格等級邊界混合的來自另一個柵格等級的海拔值。
文檔編號G06T15/10GK1722179SQ20051009132
公開日2006年1月18日 申請日期2005年5月16日 優(yōu)先權日2004年5月14日
發(fā)明者F·W·L·皮特森, H·H·霍皮 申請人:微軟公司