国产精品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>

      多邊形表面線條z緩沖器值的調整的制作方法

      文檔序號:6405951閱讀:203來源:國知局
      專利名稱:多邊形表面線條z緩沖器值的調整的制作方法
      技術領域
      本發(fā)明總目的是用一個具有Z緩沖器的圖形適配器使得在計算機圖形系統(tǒng)中能夠實現(xiàn)上面畫有線條的多邊形的三維影象。通常,圖形適配器會使表面線條的一些線段消失,這是由于數(shù)據不足而引起的,下面將對此進行詳細的說明。
      圖形適配器的主要部件中有一個存儲與一個圖象元(象素)的深度有關的值的Z緩沖器。Z緩沖器來消除被遮擋的表面,使得在適配器準備給一個象素上色時Z緩沖器能檢查所要上色的象素是否處在大于(深于)顯示在屏幕上的這個現(xiàn)存的象素的深度上。如果要上色的象素較深,則適配器不作任何處理。否則適配器就將該象素上色,並且用新的深度值對Z緩沖器進行更新。
      當對多邊形表面上的線條上色時就存在一個問題。就數(shù)字上來說,線條和表面都處于相同的深度。也就是說,表面和線條在Z緩沖器中存有相同的值。這樣就會發(fā)生差錯,因為有一些象素要上線條的顏色,而另外一些象素則要上多邊形表面的顏色。此外,用相對線條上色的處理比在一個顯示器上所提供的象素組更為精確一些。具體地說,線條上色處理被迫要用那些實際上並不處在這根線條上的象素,以及由于不知道線條所屬表面的法線,該處理必需對那些離線象素的深度進行估計。因此,由于處理估計不精確使得線條的深度大于多邊形表面的深度的這些線象素就會像是隱去了。
      應該注意到通過大大改動目前所使用的各種圖形適配器的硬件設計或微程序設計可以將一根法線與各個離線象素聯(lián)系起來。然而作這些改動需要對各圖形適配器進行改型或重新設計微程序,這樣處理極費時,成本也高。因此,就非常希望對于由這些誤差而引起的各種問題能提供一種軟件解決的方法。
      與原有技術不同,本發(fā)明提供了一種設置線條和多邊形表面之間的關系的方法,使得多邊形表面看成是更深一些,從而使這些線條可見(亦即上色)。一個標準的Z緩沖器通??梢詷擞浀纳疃戎抵涤驈?2**23至2**23-1,使得較大的值標記進入屏幕(顯示器)更深。因此為了在線條和多邊形表面具有相同的數(shù)字深度時保證將線條而不是多邊形表面上色,在考慮多邊形上的一根線條時必需將多邊形看成比這根線條更深一些,從而由圖形適配器重疊寫出。本發(fā)明通過始終將與一個多邊形表面有關的各深度值標記得比線條各深度值更大(更深)一些來達到這個目的。這是通過對每個多邊形一次計算出一個作為該多邊形表面法線的函數(shù)的偏置或位移量再依照各線條使用的輸出范圍調整為每個多邊形上色的適配器輸出的Z緩沖器值域來實現(xiàn)的。例如,如果一個多邊形處于其法線正指出屏幕的位置上,則偏置為最小,然而,如果這多邊形實際是側向的,則偏置就大,以補償在深度估計處理(在本發(fā)明的畫線部分內)中所產生的較大的誤差。
      應該指出在畫多邊時這種Z緩沖器調整作用並不會改變多邊形的外形??赡芨鶕疃任矘嗽陬伾嫌行┎幻黠@的變化(如顏色總亮度的256分之一的值對于人的眼睛來說是察覺不出來的),或者在多邊形表面和不在該面上的任何線條的交點上有一個孤立的象素誤差。因此,重要的是應使Z緩沖器調整盡量小。
      通過以上簡解,對于熟悉該項技術的來說參照附圖從下面的說明和所附權利要求就可明白本發(fā)明的目的、特征和優(yōu)點。


      圖1為采用本發(fā)明的Z緩沖器調整處理的一個系統(tǒng)的方框圖;
      圖2為說明本發(fā)明處理過程的流程圖;
      圖3畫出了一個在笛卡爾坐標系中的多邊形,在這多邊形的表面上畫有一根線條。
      參見圖1,圖中以方框圖形式示出了一個采用本發(fā)明處理的系統(tǒng)。用戶軟件程序10具有一個子程序庫12,使得圖形用戶可以提出專用程序申請。用戶軟件10提供畫一個表面上有一些線條的多邊形的實際申請。本發(fā)明包含在用戶軟件10內,用標記數(shù)14標記。這里提供了一種處理,使得多邊形表面上的線條可見,盡管由于所考慮的多邊形表面和線條都處于相同的數(shù)學深度而有些誤差也沒有關系。標記數(shù)16所表示的是幾何微程序,該微程序接收來自子程序庫12的諸如矩陣、成型坐標頂點等與所考慮的多邊形表面和線條有關的信息。然后,幾何微程序16將接收到的多邊形和線條的信息變換成設備坐標值。這個變換有效地將“完全坐標”(用戶規(guī)定的繪圖坐標,它是獨立于設備的三維笛卡爾坐標)映射成與設備有關的坐標。設備坐標根據顯示環(huán)境來投射多邊形表面和線條。也就是說,設備坐標與諸如屏面面積和Z緩沖器深度值等所使用的實際顯示硬件有關。設備坐標然后被加到光柵微程序18。光柵微程序18還接收子程序庫12和用戶程序10發(fā)來的信息和指令。光柵微程序18利用設備坐標和庫12發(fā)來的信息確定每個象素的色(r、g、b)值和Z緩沖器深度值。這里使用的光柵微程序18和幾何微程序16是指由諸如西列克圖形公司(Silicon Graphics Inc.)制造的工作站所例舉的那些概念。粗略地說,幾何微程序是將頂點變換到顯示設備坐標系內的那個硬件/固件部分,而光柵微程序則是對多邊形內部進行內插、正確地將色值和Z緩沖器值裝入存儲設備或顯示設備的位平面的那個硬件/固件部分。幀緩沖器20實際地為每一個象素指定和存儲r、g、b值。應該指出,每個象素的彩色(r、g、b)值要根據在Z緩沖器內有關這個象素的數(shù)據計算。因此,只有r、g、b值被傳送到顯示微程序和硬件22,然后顯示微程序和硬件22將這些值轉換成能在諸如CRT這樣的屏幕24上顯示的模擬電壓信號。本發(fā)明處理提供給光柵微程序18的這些信息和指令,使得與線條和多邊形表面相應的各象素的r、g、b值顯示在屏幕24上,並且線條始終是可見的。
      圖2為說明本發(fā)明處理過程的流程圖,其中在步1處理啟動。在步2確定首先要畫的是線條還是多邊形。如果在步2得出首先要畫的是線條,則在步2a將Z緩沖器設置到一個具體的值域。通常,大多數(shù)圖形適配器都有一個Z緩沖器,這個Z緩沖器也就是一個能夠記錄與每個象素有關的深度值的存儲設備。Z緩沖器一般用來消除被遮擋的表面。也就是說,如果第一根線條看成比含有一些相同的象素的相應線條更深入到屏幕內,則與較深的那根線條相應的這些象素就略去不計。因此,靠近指示器(顯示器表方)的那根線條得到顯示。通常,使用的是具有24位容量的Z緩沖器,它提供了一個從-2**23到(2**23)-1的值域。步2a將這Z緩沖器的值域設置到總深度值域的一個百分數(shù),如總值域的百分之七十五(75%)。為了設置Z緩沖器的值域通常要做的是將一對值置入寄存器,光柵微程序18要用到這一對值。因此,可計算得缺席值域為從-2**23到(2**22)-1(一些Z緩沖器通常配置成那些最大的正值是較深的,也就是說離屏面較遠)。因此,步2a有效地將Z緩沖器的深度值值域限制在認為是最接近屏面的值的75%。在步2b,將線條畫(將與線條相應的象素上色)入到先前置為最近的75%的Z緩沖器值的值域內。這是一個比較簡單的任務,因為一個程序能夠規(guī)定將一根線條映射到Z緩沖器值的任何子集內。因此,線條將始終被畫入最接近屏面的那部分Z緩沖器,也就是說,一根線條的可能最深點會處在一個Z緩沖器的總深度值的75%處。
      步3計算多邊形的法線,這是通過在多邊形表面上取三個不共線的點求出向量積來實現(xiàn)的。用戶軟件10已知這三點的笛卡爾坐標,因此確定表面法線是一個比較簡單的操作。
      在步4,將在步3所確定的法線的坐標映射成設備坐標。設備坐標與一個取決于設備的坐標系有關,通常用來表示該設備的顯示空間。因此,映射成設備坐標的所計算得的法線與具體所使用的顯示系統(tǒng)圖形適配器和所顯示的整個景象有關,而與一個上面畫有線條的具體多邊形表面無關。將法線映射到設備坐標上是用幾何微程序16以及觀察和/或投影矩陣的逆轉置來完成的,如前參照圖1所作說明。
      其次,在步5和步5a計算出相應于多邊形表面和線條的深度值之間的位移量或偏置。這個位移量用以下表示或計算,它是算得的多邊形表面法線與從多邊形表面到觀察者(顯示器24的用戶)的向量(該向量在設備坐標中與Z軸平行,因此大大簡化了運算)之間夾角的正切。
      (X*X)+(y*y)|z|]]>
      以上正切表示式中的x、y、z是在步4所確定的設備坐標的法線的各個分量。這個計算式再乘以一個協(xié)調常數(shù)K(步5a)就得出實際位移量。協(xié)調常數(shù)用來對不同級別的分辨力進行補償。詳細地說,一個24位Z緩沖器(具有2**24個不同可取值)和屏幕上的象素(一般沿屏幕平面在x軸或y軸上至多只有2**11個值)之間的分辨力級別不同由協(xié)調常數(shù)加以補償。常數(shù)k使由于過小的位移量(一個基本側向的多邊形可能有時使線條的一些部分不可見)或過大的位移量(由于深度尾數(shù)的關系顯示的彩色可能稍有偏離,通常各種該差將限制在256級彩色強度的一級以內,肉眼不能察覺出來)可能引起的各種該差為最小。
      還應當注意,太大的位移量會使一個單象素誤差在多邊形和一根非面上的線條的交點處成為可見的。在這個交點處,由于該線條相對多邊形表面的視在移動,該線條就會有稍多一些是可見的。按照本發(fā)明,采用協(xié)調常數(shù)為4096可以得出良好的結果。這個值是用于全屏幕圖象的。對于顯示在比較小的區(qū)域內的圖象,由于分辨力級別差異較大,采用較大的協(xié)調常數(shù)較為合適。對于一個24位的Z緩沖器已經定出一個很寬的常數(shù)范圍,給出良好的結果。因此,可以使用任何能獲得合理結果的協(xié)調常數(shù)k,這並不偏離本發(fā)明的范圍。
      在步6確定所計算得的位移量(為正切表示式乘以常數(shù)k)是否大于Z緩沖器值域的25%。如果大于25%,則本發(fā)明所作的處理是通過Z緩沖器的值域設置為從-2**22到(2**23)-1將位移量限制到Z緩沖器值域的25%(步10)。如果所計算得的位移量小于或等于25%,則步7將多邊形的Z緩沖器的值域設置為從-2**23+位移量到2**22+(位移量-1)。這位移量為可以畫在多邊形表面上的各線條的深度值與多邊形表面的有效深度值之間的差值。位移量必需限制在25%以內,因為任何大于25%的位移量都會引起對Z緩沖器的值域來說是無效的值。因此,賦予多邊形表面一個大于線條的Z緩沖器的深度值,這就保證了光前畫的線條始終是可見的,保證了多邊形表面始終會被認為深于該線條。
      步8對多邊形上不認為是深于線條的那部分(這部分中不含與線條的象素同位的象素)象素進行勾畫或上色。由于多邊形和線條現(xiàn)在都已畫出,在步9本發(fā)明的處理是確定是否還有其它圖形程序需要處理。如果有,處理返回到步2,確定需要處理的是一根線條還是多邊形。如果沒有其它圖形程序需要處理,則進至步11結束。
      參見圖3,其中在笛卡爾坐標系中示出了一對相交的多邊形26和28。此外也示出了多邊形26表面上的一根線條30。希望用既與多邊形26又與多邊形28不同的顏色畫出線條30?,F(xiàn)將參照圖2和圖3來說明本發(fā)明的一個例子。首先為了簡便起見假設Z緩沖器的深度值容量為1000(0-999)。步1處理過程啟動,步2確定要處理的是線條還是多邊形,而步2a對于本例來說將Z緩沖器的值域設置為總容量的75%(深度值值域為0-749),這是最靠近屏幕表面的值域。然后在步2b將線條30畫入這個值域。步3算出在笛卡爾坐標內平面(多邊形)26的法線,步4將該法線映射到設備坐標。
      然后在步5和5a內計算Z緩沖器的位移量。在步5計算出正切表示式,再在步5a乘以常數(shù)k。假設對于本例而言位移量等于15。步6確定該位移量是否大于Z緩沖器容量的25%。如果是,則位移量被設置成等于25%(步10)。然而在該例中15小于Z緩沖器值域(1000)的25%。因此過程進至步7,設置對多邊形26的Z緩沖器的值域。對本例而言,多邊形Z緩沖器的值域將為0+15至749+15,可以看到多邊形26怎樣會始終有一個在值域15至764內的Z緩沖器的深度值。這些值在一個深于線條Z緩沖器深度值值域(0-749)的值域(15-760)內。因此,多邊形26上與線條30相交的那部分將始終被看作更深一些,從而被光柵微程序18在確定r、g、b值時略去不計。在步8畫出多邊形26,步9確定是否還有其它圖形程序需要處理。在本例中處理完成,本發(fā)明的處理在步11結束。
      雖然已經示出和說明了一些優(yōu)選實例,但應該理解其中可以作出許多變更和修改而並不偏離所附權利要求的范圍。
      權利要求
      1.一種在一個計算機圖形系統(tǒng)中顯示一個表面上含有一根線條的多邊形的方法,該方法的特征是它由下列各步組成設置一個深度值值域;顯示處在所述值域內的一個深度上的所述線條;位移所述深度值值域,位移量取決于所述多邊形表面的取向;以及顯示處在所述經位移的值域內的一個深度上的所述多邊形,所述多邊形表面的深度大于所述線條的深度。
      2.一種按照權利要求1的方法,該方法的特征是所述設置值域的步由下列各步組成提供存儲一組深度值的裝置;以及規(guī)定部分所述存儲裝置與所述深度值值域相應。
      3.一種按照權利要求2的方法,該方法的特征是所述位移值域的步由下列各步組成計算所述多邊形表面的一根法線;將計算得的法線的坐標映射為取決于一個專用顯示設備的坐標;計算一個位移量;將所述位移量限制到一個預定值;以及將所述位移量加到所述深度值值域。
      4.一種按照權利要求3的方法,該方法的特征是所述計算位移量的步由下列各步組成計算所述多邊形的法線與從觀察者眼睛到所述多邊形表面的向量之間的夾角的正切;以及將所計算得的正切乘以一個常數(shù)得出所述位移量。
      5.一種按照權利要求3的方法,該方法的特征是所述限制位移量的步由下列各步組成確定所述位移量是否大于所述存儲裝置總容量的預定百分數(shù);以及將所述位移量限制到所述預定百分數(shù)。
      6.一種在一個計算機圖形系統(tǒng)內顯示一個在表面上含有一根線條的多邊形的方法,該方法的特征由下列各步表征提供存儲一組深度值的裝置;規(guī)定部分所述存儲裝置與深度值的一個值域相應;顯示處在所述值域內的一個深度上的所述線條;計算所述多邊形表面的一根法線;計算所述多邊形法線與觀察者眼睛到所述多邊形表面的向量之間的夾角的正切;將所計算得的正切乘以一個常數(shù)得到一個位移量;將所述深度值值域位移所述位移量;以及顯示處在所述經位移的值域內的一個深度上的所述多邊形,所述多邊形表面的深度大于所述線條的深度。
      7.一種顯示一個表面上含有一根線條的多邊形的計算機圖形系統(tǒng),該系統(tǒng)的特征是具有下列裝置設置一個深度值值域的裝置;顯示處在所述值域內的一個深度上的所述線條的裝置;位移所述深度值值域的裝置,位移量取決于所述多邊形表面的取向;以及顯示處在經位移的值域內的一個深度上的所述多邊形的裝置,所述多邊形表面的深度大于所述線條的深度。
      8.一種按照權利要求7的系統(tǒng),該系統(tǒng)的特征是所述設置一個值域的裝置由下列裝置組成存儲一組深度值的裝置;以及規(guī)定部分所述存儲裝置與所述深度值值域相應。
      9.一種按照權利要求8的系統(tǒng),該系統(tǒng)的特征是所述位移值域的裝置由下列裝置組成計算所述多邊形表面的一根法線的裝置;將所計算得的法線的坐標映射為取決于一個專用顯示設備的坐標的裝置;計算一個位移量的裝置;將所述位移量限制到一個預定值的裝置;以及將所述位移量加至所述深度值值域的裝置。
      10.一種按照權利要求9的系統(tǒng),該系統(tǒng)的特征是所述計算一個位移量的裝置由下列裝置組成計算所述多邊形法線與從觀察者眼睛到所述多邊形表面的矢量之間的夾角的正切的裝置;以及將所計算得的所述正切乘以一個常數(shù)得出所述位移量的裝置。
      11.一種按照權利要求9的系統(tǒng),該系統(tǒng)的特征是所述限制位移量的裝置由下列裝置組成確定所述位移量是否大于所述存儲裝置總容量的預定百分數(shù)的裝置;以及將所述位移量限制到所述預定百分數(shù)。
      12.一種顯示一個表面上含有一根線條的多邊形的計算機圖形系統(tǒng),該系統(tǒng)的特征是具有下列裝置存儲一組深度值的裝置;規(guī)定部分所述存儲裝置與一個深度值值域相應的裝置;顯示處在所述值域內的一個深度上的所述線條的裝置;計算所述多邊形表面的一根法線的裝置;計算所述多邊形法線與觀察者眼睛到所述多邊形表面的矢量之間的夾角的正切的裝置;將所算得的所述正切乘以一個常數(shù)得出一個位移量的裝置;將所述深度值值域位移所述位移量的裝置;以及顯示處在所述經位移的值域內的一個深度上的所述多邊形的裝置,所述多邊形表面的深度大于所述線條的深度。
      全文摘要
      在一個圖形環(huán)境中提供了一種系統(tǒng)和方法,保證畫在一個多邊形表面上的一根線條對一個該圖形系統(tǒng)的用戶來說始終可見。在配有Z緩沖器的環(huán)境中,其中所含的深度值值域被設置到總容量的75%,這是被認為最接近顯示屏幕表面的。然后線條被畫入Z緩沖器深度值的這75%的集中。再根據在設備坐標中的多邊形法線計算出位移量。將這位移量加到以前所設置的Z緩沖器深度值的75%的值域。然后在等于以前所設置的值域加上位移量的一個深度上畫出多邊形。
      文檔編號G06T15/40GK1051255SQ90109079
      公開日1991年5月8日 申請日期1990年11月12日 優(yōu)先權日1989年11月21日
      發(fā)明者格登·G·福蘇姆 申請人:國際商業(yè)機器公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1