專利名稱:圖形處理裝置和圖形處理方法
一般地說,本發(fā)明涉及改進(jìn)的數(shù)據(jù)處理系統(tǒng),特別是處理圖形數(shù)據(jù)的方法和裝置。更具體地說,涉及校正像素坐標(biāo)和紋理(texture)坐標(biāo)的方法和裝置。
數(shù)據(jù)處理系統(tǒng),例如個(gè)人計(jì)算機(jī)和工作站,通常用于運(yùn)行計(jì)算機(jī)輔助設(shè)計(jì)(CAD)應(yīng)用、計(jì)算機(jī)輔助制造(CAM)應(yīng)用以及計(jì)算機(jī)輔助軟件工程(CASE)工具。工程師、科學(xué)家、技術(shù)員以及其他人每天都在利用這些應(yīng)用程序。這些應(yīng)用涉及復(fù)雜的計(jì)算(例如有限元分析)去模擬結(jié)構(gòu)中的應(yīng)力。其他應(yīng)用包括化學(xué)的或分子的模擬應(yīng)用。CAD/CAM/CASE應(yīng)用就傳遞給用戶的信息而論通常是圖形功能很強(qiáng)的。數(shù)據(jù)處理系統(tǒng)用戶可以利用其他圖形功能強(qiáng)的應(yīng)用,例如桌面出版應(yīng)用。通常,這些應(yīng)用程序的用戶需要和要求數(shù)據(jù)處理系統(tǒng)能特別快速地提供圖形信息。
處理圖形數(shù)據(jù)流以在視頻顯示終端上提供圖形顯示,需要特別快的圖形系統(tǒng)以快速響應(yīng)提供顯示。在這些類型的圖形系統(tǒng)中,圖元(primitive)數(shù)據(jù)被接收供處理和顯示。圖元是用作結(jié)構(gòu)單元供創(chuàng)建圖像的圖形元素,如點(diǎn)、線、三角形、多邊形或四邊形。一個(gè)圖元由一個(gè)或多個(gè)頂點(diǎn)來定義。一個(gè)頂點(diǎn)定義一個(gè)點(diǎn),一個(gè)邊的端點(diǎn),或一個(gè)多邊形的兩邊相遇的拐角點(diǎn)。頂點(diǎn)還有與其件隨的數(shù)據(jù),其中這些數(shù)據(jù)包括諸如位置坐標(biāo)、顏色、法線(normal)以及紋理坐標(biāo)。送到圖形系統(tǒng)的命令規(guī)定應(yīng)如何處理這些圖元及其他數(shù)據(jù)以供顯示。
由于在處理圖形數(shù)據(jù)時(shí)涉及大量的數(shù)據(jù)和計(jì)算,特別是對于三維應(yīng)用,許多這些計(jì)算已從中央處理單元卸載到圖形適配器。通過在圖形適配器中使用多處理器系統(tǒng)或硬連線的幾何引擎,使這些幾何計(jì)算加快了速度。多處理器處理具有實(shí)現(xiàn)將來的過程或算法的靈活性,但編程困難并增加開發(fā)圖形適配器所需的費(fèi)用和時(shí)間。另一方面,硬連線的幾何引擎對編程而言是很簡單明了的。利用硬連線的幾何引擎,使得在這些引擎中實(shí)現(xiàn)這些圖形功能的硬件最佳化,以減小完成圖形功能所需的時(shí)間,這是人們所希望的。一些這樣的功能包括例如把坐標(biāo)從一種坐標(biāo)系統(tǒng)變換到另一種坐標(biāo)系統(tǒng),縮放坐標(biāo),剪切對象和轉(zhuǎn)動(dòng)對象等。
所以,有一種改進(jìn)的方法和裝置來實(shí)現(xiàn)圖形功能,使得減少完成這些功能所需的時(shí)間,這會是很有好處的。
本發(fā)明提供一種用在圖形系統(tǒng)中的方法和裝置。該圖形系統(tǒng)包括一個(gè)輸入,其中該輸入接收圖形數(shù)據(jù),其中的圖形數(shù)據(jù)包括對象的位置坐標(biāo)和深度坐標(biāo)。提供了一個(gè)輸出,其中該輸出傳送處理過的圖形數(shù)據(jù)。該圖形系統(tǒng)還含有多個(gè)處理部件,其中這多個(gè)處理部件產(chǎn)生處理后的圖形數(shù)據(jù)。在這多個(gè)處理部件中的第一處理部件與輸入相連,而在這多個(gè)處理部件中的最后一個(gè)處理部件與輸出相連。在這多個(gè)處理部件中的一個(gè)選定處理部件接收位置坐標(biāo)和深度坐標(biāo),對深度坐標(biāo)求倒數(shù)以形成深度坐標(biāo)的倒數(shù),并用深度坐標(biāo)的倒數(shù)乘位置坐標(biāo)。
相信是本發(fā)明特征的新特點(diǎn)將在所附權(quán)利要求中提出。然而,結(jié)合附圖閱讀下文中對實(shí)施示例的詳細(xì)描述,將能最好地理解發(fā)明本身和最佳使用方式及其進(jìn)一步的目的和優(yōu)點(diǎn),這里
圖1是根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例在其中可以實(shí)現(xiàn)本發(fā)明的一個(gè)數(shù)據(jù)處理系統(tǒng)的圖形顯示;圖2是根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例的數(shù)據(jù)處理系統(tǒng)的方框圖;圖3顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例對圖形數(shù)據(jù)進(jìn)行的處理;圖4是根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例的幾何引擎的方框圖;圖5顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例的頂點(diǎn)片段描述;圖6是一個(gè)表,顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例在一特定級受影響的片段;圖7是一個(gè)表,顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例在一特定級所需要的片段;圖8是一個(gè)表,顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例用于在各級之間傳送數(shù)據(jù)的信號;圖9A和圖9B是根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例的一個(gè)透視分割單元的方框圖;圖10顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例的進(jìn)入坐標(biāo)和輸出坐標(biāo);圖11是根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例在透視分割單元中用于控制第一級的狀態(tài)機(jī)圖;圖12是根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例在透視分割單元中用于控制第二級的狀態(tài)機(jī)圖;以及圖13顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例的數(shù)據(jù)流。
現(xiàn)在參考附圖,特別是參考圖1,圖中描繪了根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例在其中實(shí)現(xiàn)本發(fā)明的一個(gè)數(shù)據(jù)處理系統(tǒng)。所描繪的計(jì)算機(jī)100包括系統(tǒng)單元110,視頻顯示終端102,鍵盤104,存儲器裝置108,以及鼠標(biāo)106,其中的存儲器裝置108可以包括軟盤驅(qū)動(dòng)器和其他類型的永久或可卸存儲介質(zhì)。個(gè)人計(jì)算機(jī)100還可以包括其他輸入裝置,如游戲桿、觸屏墊、觸摸屏、跟蹤球、送話器等。計(jì)算機(jī)100可用任何適當(dāng)?shù)挠?jì)算機(jī)實(shí)現(xiàn),如IBM RS/6000計(jì)算機(jī)或Intelli Station計(jì)算機(jī),它們都是位于紐約州的Armonk的國際商用機(jī)器公司的產(chǎn)品。雖然所描繪的圖形顯示是一個(gè)計(jì)算機(jī),但可在其他類型的數(shù)據(jù)處理系統(tǒng)(如網(wǎng)絡(luò)計(jì)算機(jī))中實(shí)現(xiàn)本發(fā)明的其他實(shí)施例。計(jì)算機(jī)100最好還包括一個(gè)圖形用戶界面,它可由駐留在計(jì)算機(jī)可讀介質(zhì)中的系統(tǒng)軟件在計(jì)算機(jī)100中進(jìn)行操作來實(shí)現(xiàn)。
接下來轉(zhuǎn)向圖2,圖中描繪了根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)200是在一個(gè)數(shù)據(jù)處理系統(tǒng)(如圖1中的計(jì)算機(jī)100)中使用的部件之一例。數(shù)據(jù)處理系統(tǒng)200利用外圍部件互連(PCI)局部總線結(jié)構(gòu)形式的總線202。雖然所描繪的例子利用PCI總線,但其他總線結(jié)構(gòu),如加速圖形端口(AGP)和工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA),也可以使用。在這些例子中處理單元204、存儲器206以及圖形適配器208連接到總線202。在所描繪的例子中處理單元204包括一個(gè)或多個(gè)微處理器。
在這個(gè)例子中,圖形適配器208處理圖形數(shù)據(jù)供顯示裝置210上顯示。圖形數(shù)據(jù)是從處理單元204所執(zhí)行的應(yīng)用程序那里接收的。圖形適配器208包括光柵引擎212,幾何引擎214,幀緩存器216以及視頻控制器218。光柵引擎212接收來自應(yīng)用程序的圖形數(shù)據(jù)。在這些例子中,光柵引擎包含用于使圖像光柵化以供顯示的硬件和/或軟件。光柵引擎214用于將文本和圖像轉(zhuǎn)變成像素矩陣以形成位圖供屏幕上顯示。在所描繪的例子中,光柵引擎212把所收到的圖形數(shù)據(jù)發(fā)送到幾何引擎214,它提供處理圖元和其他圖形數(shù)據(jù)的功能,以產(chǎn)生圖像供光柵引擎212去處理。在這些例子中,本發(fā)明的機(jī)制位于幾何引擎214中。
幀緩存器216是一個(gè)存儲器區(qū),用于保持一幀數(shù)據(jù)。幀緩存器216通常用于屏幕顯示,其大小是屏幕上最大圖像區(qū)的大小。幀緩存器216形成圖形適配器208上的一個(gè)單獨(dú)存儲庫,用于在位像“畫”在屏幕上時(shí)保持該圖像。視頻控制器218取幀緩存器216中的數(shù)據(jù)并在顯示器210上產(chǎn)生顯示。通常,視頻控制器218將循環(huán)穿過幀緩存器216,一次掃描一行。
現(xiàn)在轉(zhuǎn)到圖3,圖中描繪了根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例對圖形數(shù)據(jù)的處理。對圖形數(shù)據(jù)的處理可分成三級。在第一級,應(yīng)用程序300產(chǎn)生供顯示的圖形數(shù)據(jù)。這些級總是在計(jì)算機(jī)主中央處理單元中運(yùn)行,如圖2中的處理單元204。所產(chǎn)生的數(shù)據(jù)作為一系列點(diǎn)或頂點(diǎn)用于代表一個(gè)對象,這些點(diǎn)或頂點(diǎn)根據(jù)應(yīng)用程序300提供的圖元類型按預(yù)先確定的方式連接起來。第二級涉及幾何引擎302,它負(fù)責(zé)把從應(yīng)用程序300接收的輸入頂點(diǎn)轉(zhuǎn)換成供屏幕上觀看的形式。通常,與轉(zhuǎn)換頂點(diǎn)一起,幾何引擎302還負(fù)責(zé)產(chǎn)生來自光源的色彩供獻(xiàn),根據(jù)到觀看者的距離產(chǎn)生一些因素,這些因素允許一對象變得不那么可以看到,以及把場景前切成給定的觀看尺寸。幾何引擎302可以在中央處理單元中實(shí)現(xiàn),也可在適配器中實(shí)現(xiàn)。在這些例子中,幾何引擎302是作為圖2中的幾何引擎214和圖形引擎208實(shí)現(xiàn)的。第三級,光柵引擎304取已經(jīng)轉(zhuǎn)換成屏幕坐標(biāo)的頂點(diǎn)并內(nèi)插其色彩或映射頂點(diǎn)之間的圖像以把一對象的頂點(diǎn)表示轉(zhuǎn)變成實(shí)心的對象。在這個(gè)例子中,光柵引擎304可以作為圖2的圖形適配器208中的光柵單元212來實(shí)現(xiàn)。在所描繪的例子中,與多處理器引擎相反,幾何引擎302是一個(gè)硬連線的幾何引擎。
本發(fā)明提供一種裝置去實(shí)現(xiàn)坐標(biāo)校正功能,這些功能通常是在軟件中實(shí)現(xiàn)的。更具體地說,本發(fā)明的機(jī)制提供了在圖2的幾何引擎214內(nèi)校正像素坐標(biāo)和紋理坐標(biāo)的能力。像素坐標(biāo)是X、Y和Z坐標(biāo),而紋理坐標(biāo)是S、T、R和Q坐標(biāo)。本發(fā)明提供一種改進(jìn)的方法和裝置,用于在這些例子中的圖3所示幾何引擎302內(nèi)的單一級或處理部件中校正和處理這些坐標(biāo)。在這些例子中,這些功能是在幾何引擎內(nèi)的單一處理部件中實(shí)現(xiàn)的。
現(xiàn)在轉(zhuǎn)到圖4,圖中描繪了根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例的幾何引擎的方框圖。幾何引擎400表現(xiàn)為若干級或處理部件,它們可在幾何引擎中實(shí)現(xiàn),如圖2中的幾何引擎214。在這個(gè)例子中,幾何引擎400包括幾何單元402,光柵接口單元404和光柵接口單元406。數(shù)據(jù)由光柵接口單元404接收,供幾何單元402中處理。該數(shù)據(jù)是從光柵引擎中接收的,如圖2中的光柵引擎210。處理后的數(shù)據(jù)用光柵接口單元406返回到光柵引擎。本發(fā)明的機(jī)制是在幾何單元402的處理部件內(nèi)實(shí)現(xiàn)的。具體地說,處理部件在硬件中實(shí)現(xiàn)處理圖形數(shù)據(jù)的方程式。本發(fā)明的機(jī)制通過把方程式優(yōu)化到更簡單的形式并在處理部件中實(shí)現(xiàn)這些簡化了的方程式,從而降低了硬件的復(fù)雜性。
在這個(gè)例子中,幾何單元402是含有一組處理部件的圖形流水線,它包括頂點(diǎn)打包單元408,正常/模擬觀看變換單元410,歸一化單元412,紋理坐標(biāo)產(chǎn)生單元414,光照單元416,紋理/投影變換單元418,剪切單元420,霧因子發(fā)生單元422,透視分割單元424,視點(diǎn)變換單元426以及頂點(diǎn)漏斗(funnel)單元428。這些處理部件也稱作“級(stage)”。
頂點(diǎn)打包單元408是幾何單元的頂級,它組裝頂點(diǎn)的屬性域。頂點(diǎn)定義一個(gè)點(diǎn),一個(gè)邊的端點(diǎn),或多邊形的兩邊交匯處的拐角點(diǎn)。每個(gè)頂點(diǎn)含有幾何流水線中任何級使用的每個(gè)可能的數(shù)據(jù)片段。這些片段是數(shù)據(jù),例如位置坐標(biāo)、色彩、法線和紋理坐標(biāo)。正常/模擬觀看變換單元410用于將正常矢量從對象空間變換到視覺空間。這種變換依賴于模擬觀看變換,它是模擬觀看矩陣的逆轉(zhuǎn)置。在正常/模擬觀看變換單元410中的模擬觀看變換通過平移、縮放和旋轉(zhuǎn)目標(biāo)來把對象坐標(biāo)變換成眼坐標(biāo)。
歸一化單元412把正常矢量改變?yōu)閱挝婚L度矢量,其大小為1.0而保持原始矢量的方向。紋理坐標(biāo)產(chǎn)生單元414產(chǎn)生紋理坐標(biāo)用于顯示圖元的紋理。紋理坐標(biāo)產(chǎn)生單元412產(chǎn)生紋理坐標(biāo),如對象線性的、眼線性的以及球形的。
光照單元416計(jì)算每個(gè)頂點(diǎn)的陰影和色彩。具體地說,光照單元416根據(jù)對象的取向、對象的材料性質(zhì)、布景的性質(zhì)以及任何規(guī)定的光源來產(chǎn)生對象的每個(gè)頂點(diǎn)的色彩。紋理/投影變換單元418通過平移、縮放和旋轉(zhuǎn)對象來變換紋理坐標(biāo)。此外,紋理/投影變換單元418通過平移、縮放和旋轉(zhuǎn)對象把眼坐標(biāo)變換成剪切坐標(biāo),把對象移動(dòng)到“觀看空間(viewing volume)”中。通常這一空間是與XYZ坐標(biāo)系正交的一個(gè)立方體,其延伸量為±W。透視投影使較遠(yuǎn)的對象看起來較小,而正交投影并不使較遠(yuǎn)的對象看起來較小。
剪切單元420把對象剪切到觀看空間的大小。霧因子發(fā)生單元422通過使遠(yuǎn)離觀看者的對象不那么能看得見來使對象逐漸消失在遠(yuǎn)處(大氣效應(yīng))。
透視分割單元424的用途是通過除以第四坐標(biāo)W將剪切坐標(biāo)變換到歸一化裝置坐標(biāo)[-1,+1]。在這些例子中,本發(fā)明的機(jī)制是在透視分割單元424中實(shí)現(xiàn)的。本發(fā)明的機(jī)制提供了使用W對像素坐標(biāo)(X、Y和Z)及紋理坐標(biāo)(S、T、R和Q)二者的校正。視點(diǎn)變換單元426用于把歸一化裝置坐標(biāo)變換成屏幕或窗口坐標(biāo)。裝置坐標(biāo)是由適配器用于顯示圖像的坐標(biāo)。歸一化裝置坐標(biāo)是歸一化到0和1之間的裝置坐標(biāo)。
再有,本發(fā)明的機(jī)制使用乘法而不是除法來調(diào)整這些坐標(biāo)。代替以深度值W除這些坐標(biāo),產(chǎn)生了深度值W的倒數(shù)。這個(gè)倒數(shù)1/W與像素坐標(biāo)及紋理坐標(biāo)相乘。此外,本發(fā)明的機(jī)制使用兩級。在第一級中發(fā)生深度值W的倒數(shù)。在這一級中的第一FIFO用于保持像素坐標(biāo)和紋理坐標(biāo),直至產(chǎn)生了深度值的倒數(shù)。當(dāng)?shù)诙壗邮誛的倒數(shù)以及像素坐標(biāo)和紋理坐標(biāo)時(shí),發(fā)生像素坐標(biāo)及紋理坐標(biāo)的乘法。本發(fā)明的機(jī)制允許在同一時(shí)間量中完成所有這些坐標(biāo)的乘法,在這個(gè)例子中是5個(gè)時(shí)鐘周期。
頂點(diǎn)漏斗單元428取這些頂點(diǎn)的片段數(shù)據(jù)并把它們放到一個(gè)總線上供光柵接口單元使用。在這個(gè)例子中,這些片段數(shù)據(jù)被漏入64位數(shù)據(jù)字中供總線上傳送。
在幾何單元402中所示片段和分級是基于OpenGL中指定的片段和操作,OpenGL是在OpenGL圖形系統(tǒng)中定義的其說明書中(1.2版)可從Silicon Graphics公司得到。
在這個(gè)例子中,幾何引擎400在頂點(diǎn)打包單元408接收數(shù)據(jù),每次一個(gè)字。所造成的頂點(diǎn)發(fā)送給光柵引擎,每次一個(gè)字。
現(xiàn)在轉(zhuǎn)到圖5,圖中顯示了根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例對頂點(diǎn)片段數(shù)據(jù)的描述。表500顯示構(gòu)成頂點(diǎn)的不同片段。列502顯示片段,列504是它們在幾何引擎中的使用,列506是它們在光柵引擎中的使用。這些片段在圖4中的頂點(diǎn)打包單元408中被組合,它們包含用于描述那個(gè)特定頂點(diǎn)的信息。
當(dāng)一個(gè)頂點(diǎn)穿過幾何流水線(例如幾何引擎400)時(shí),一個(gè)給定的片段(例如圖4中顯示的那些片段)可基于該級影響那個(gè)特定片段的程序被更新。當(dāng)一個(gè)片段對其后各級不再有意義時(shí),該片段便停止向流水線下方傳送。在幾何流水線中的每級或處理部件用一簡單的啟動(dòng)命令編程,使其或者影響一給定頂點(diǎn)片段或者把那個(gè)數(shù)據(jù)從前一級傳送到它的輸出端。
轉(zhuǎn)到圖6,圖中的表顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例在一特定級中受影響的片段。表600顯示各級(如圖4中的幾何引擎400中的那些級)的分解以及根據(jù)特定級的程序可能改變的片段。表600包括列602標(biāo)識不同的階段。受影響的片段示于列604,它標(biāo)識受列606中所示命令影響的不同片段。這些命令用于在表600中所示各階段啟動(dòng)或禁止對各種片段的處理。特別是,下面所示例子顯示有選擇地啟動(dòng)光照級以及把片段fad、fs、bad以及bs與光照級產(chǎn)生的數(shù)據(jù)組合起來的能力。
在圖7中的表顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例在一特定級中所要求的片段。表700在列702中顯示各級,在列704中顯示每級所要求的片段。在這個(gè)例子中,光照級使用如下片段產(chǎn)生光照效果nx、ny、nz、cca、ccr、ccg、ccb以及PScc。片段fad、fs、bad。及bs是從流水線外部的源(如在主機(jī)處理器中執(zhí)行的應(yīng)用程序)接收的片段。本發(fā)明的機(jī)制允許只是選擇光照級的輸出或把那個(gè)輸出與從該源接收的片段組合。另一種情況是,從該源接收的片段可以不受影響地穿過光照級。
現(xiàn)在轉(zhuǎn)到圖8,表中顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例在各級之間傳送數(shù)據(jù)所用的信號。在這些例子中各級之間的數(shù)據(jù)傳送用于傳送兩類數(shù)據(jù)命令數(shù)據(jù)和頂點(diǎn)數(shù)據(jù)??梢詡魉蛢深惷?。一類是包含一個(gè)命令字和一個(gè)數(shù)據(jù)字的命令數(shù)據(jù)對。另一類命令涉及數(shù)據(jù)串,在其中存在一個(gè)命令字和多個(gè)數(shù)據(jù)字。
表800顯示一組信號Valid(有效)、ready(準(zhǔn)備好)、cmd Bit及參cdSelect,用于在列802中所示各級之間傳送數(shù)據(jù)。在列804和806中顯示一個(gè)傳送是否會發(fā)生。在列808中顯示一個(gè)傳送命令的信號的可應(yīng)用性。列810中顯示一個(gè)傳送數(shù)據(jù)字的信號的可應(yīng)用性。列812中顯示在傳送一頂點(diǎn)中的可應(yīng)用性。valid(有效)信號表示有一個(gè)命令或數(shù)據(jù)或頂點(diǎn)需要傳送到下一級。ready(準(zhǔn)備好)信號表示一級已準(zhǔn)備好要傳送數(shù)據(jù)。如表中可見,這個(gè)信號可應(yīng)用于命令、數(shù)據(jù)和頂點(diǎn)。信號cmdBit表示一個(gè)命令要被傳送過該接口。信號cdSelect表示是否存在一個(gè)命令數(shù)據(jù)而不是存在頂點(diǎn)數(shù)據(jù)。這些信號考慮到命令以及X和Y坐標(biāo)數(shù)據(jù)是在圖4中的幾何單元402內(nèi)的相同線上被傳送的。
現(xiàn)在轉(zhuǎn)到圖9A和圖9B,圖中顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例的透視分割單元的流程圖。部分900和部分902提供了圖4中的透視分割單元424的更詳細(xì)說明。
在標(biāo)識這些圖中的信號時(shí),TFG表示該信號是用于因子產(chǎn)生單元,而VTX是用于頂點(diǎn)。透視分割單元的部分900構(gòu)成這一單元的穿過部分。根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例,部分902完成對像素坐標(biāo)和紋理坐標(biāo)的透視分割。再有,透視分割單元包含兩級,即第一級923和第二級925。在第一級中產(chǎn)生深度值W的倒數(shù)。在第二級中深度值的倒數(shù)與像素坐標(biāo)及紋理坐標(biāo)相乘。
在部分902中,控制數(shù)據(jù)存儲在FIFO1控制器904中。這一控制數(shù)據(jù)包括各種頂點(diǎn)流命令,如ENABLE_PERSPECTIVEDIVISION,GE_TEX_PARMS0,GE_TEX_PARMS1,SHD_TEX_PARMS0,SHD_TEX_PARMS1,以及SAVE/RESTORE CONTEXT。命令ENABLE_PERSPECTVEDIVISION用于啟動(dòng)透視分割單元內(nèi)的處理。命令GE_TEX_PARMS0用于透視分割單元啟動(dòng)后啟動(dòng)和禁止對紋理坐標(biāo)變量S0、T0、R0、及Q0的除操作。命令GE_TEX_PARMS1用于透視分割單元啟動(dòng)后啟動(dòng)和禁止對紋理坐標(biāo)變量S1、T1、R1及Q1的除操作。命令SHD_TEX_PARMSO用于透視分割單元啟動(dòng)后啟動(dòng)和禁止對紋理坐標(biāo)變量S0、T0、R0及Q0的除操作。命令SHD_TEX_PARMS1用于透視單元啟動(dòng)后對紋理坐標(biāo)變量S1、T1、R1及Q1的除操作。命令SAVE/RESTORE CONTEXT用于保存或恢復(fù)一個(gè)32位字中的3位。在這些例子中,這3位用于啟動(dòng)透視除,啟動(dòng)對第一組紋理坐標(biāo)的處理和啟動(dòng)對第二組紋理坐標(biāo)的處理。這些命令可以通過T_FG_VTX_X和T_FG_VTX_Y傳送。該命令可以通過T_FG_VTX和T_FG_VTX_Y傳送。
傳送的片段存儲在片段FIFO1 906中。FIFO1控制904和片段FIFO1 906是透視分割單元中的第一級的部分。這一控制數(shù)據(jù)和片段是從霧因子發(fā)生單元908接收的,它是一個(gè)霧因子發(fā)生單元,如圖4中的霧因子發(fā)生單元422。與(AND)門910接收控制數(shù)據(jù),如T_FG_VLD指示的Valid(有效)信號。此外,控制信號SM1_RDY和ready(準(zhǔn)備好)信號FIFO1_ready被輸入到與門910。當(dāng)片段FIFO1有空間接收增加的數(shù)據(jù)時(shí),便產(chǎn)生“準(zhǔn)備好”信號。SM1_ready是從一狀態(tài)機(jī)中接收的,在下面的圖11中將詳細(xì)描述它。當(dāng)透視分割單元準(zhǔn)備好要接收新增加的數(shù)據(jù)以供處理時(shí),便使用與門912產(chǎn)生一個(gè)“準(zhǔn)備好”信號T_PD_ready發(fā)送給霧因子發(fā)生單元908。與門912從狀態(tài)機(jī)接收一個(gè)SM1_RDY信號,并從FIFO1控制904接收一個(gè)FIFO1_ready信號。
與門914和與門916用于把片段和控制數(shù)據(jù)從FIFO1控制904和片段FIFO1_906傳送到FIFO2控制918和片段FIFO2 920。FIFO2控制918和片段FIFO2 920構(gòu)成透視分割單元中的第二級。
與門914接收一個(gè)“有效”信號FIFO1_valid和一個(gè)“準(zhǔn)備好”信號FIFO2_ready_out,以及一個(gè)SM2_RDY信號?!坝行А毙盘柺窃赪已被求倒數(shù)之后由FIFO1控制904產(chǎn)生的?!皽?zhǔn)備好”信號是在視點(diǎn)變換級準(zhǔn)備好接收數(shù)據(jù)時(shí)由FIFO2控制918產(chǎn)生的。SM2_RDY信號是由一狀態(tài)機(jī)產(chǎn)生的,將在下文中針對圖12加以描述。當(dāng)所有數(shù)據(jù)已被接收而且計(jì)算已經(jīng)完成時(shí),與門914產(chǎn)生“有效”信號STAGE2_VALID。
在圖9B中,在透視分割單元的部分902中,像素?cái)?shù)據(jù)和紋理數(shù)據(jù)被接收到片段FIFO1 906中。像素坐標(biāo)X、Y和Z由片段FIFO1 906接收,如信號T_FG_VTX_X、T_FG_VTX_Y和T_FG_VTX_Z分別指示的那樣。此外,乘法器922接收一個(gè)Y坐標(biāo)T_FG_VTX_Y以及一個(gè)存儲控制信號。乘法器922用于在新數(shù)據(jù)和被恢復(fù)的數(shù)據(jù)之間切換。紋理坐標(biāo)S、T、R及Q也被接收到片段FIFO1 906中。在這個(gè)例子中,有兩組紋理坐標(biāo)可以被接收,如信號T_FG_VTX_S0、T_FG_VTX_T0、T_FG_VTX_R0、T_FG_VTX_Q0、T_FG_VTX_S1、T_FG_VTX_T1、T_FG_VTX_R1以及T_FG_VTX_Q1指出的那樣。這些紋理坐標(biāo)的值分別作為紋理坐標(biāo)S1、T1、R1、Q1、S2、T2、R2和Q2輸出。深度值W也從霧因子發(fā)生單元908接收,如信號T_FG_VTX_W指出的那樣。這個(gè)深度值在放入W FIFO1 926之前由倒數(shù)器924處理,W FIFO1 926是片段FIFO1 906的組成部分。倒數(shù)器924產(chǎn)生深度值的倒數(shù)以形成1/W,如信號級1_W所指示的那樣。在所描繪的例子中,倒數(shù)器924在5個(gè)時(shí)鐘周期內(nèi)產(chǎn)生一個(gè)W倒數(shù)。
多路轉(zhuǎn)換器928、930、932和934分別為乘法器936、938、940和942選擇數(shù)據(jù)。這些多路轉(zhuǎn)換器從片段FIFO1 906接收數(shù)據(jù)。鎖存器944-964用于保持送給多路轉(zhuǎn)換器之前的數(shù)據(jù)。鎖存器966-972用于保持送給多路轉(zhuǎn)換器之前取自鎖存器928-934的數(shù)據(jù)。多路轉(zhuǎn)換器928接收像素坐標(biāo)X、Y和Z。多路轉(zhuǎn)換器930接收紋理坐標(biāo)S1、T1、和R1,而多路轉(zhuǎn)換器932接收紋理坐標(biāo)S2、T2和R2。多路轉(zhuǎn)換器934用于接收紋理坐標(biāo)Q1和Q2。
乘法器A 936將像素坐標(biāo)與取自W FIFO1 926的深度值倒數(shù)相乘。每個(gè)時(shí)鐘周期向乘法器A 936發(fā)送一個(gè)像素坐標(biāo)。由乘法器A936對像素坐標(biāo)做乘法占用3個(gè)時(shí)鐘周期。在這個(gè)例子中,像素坐標(biāo)按如下順序與深度值W的倒數(shù)相乘X、Y和Z。在X坐標(biāo)值與1/W相乘期間,鎖存器944和946鎖存Y和Z的值。在下一個(gè)時(shí)鐘周期,Z值鎖存在鎖存器946中,而Y值與1/W在乘法器A 936中相乘。在第三個(gè)時(shí)鐘周期,Z坐標(biāo)值與1/W相乘。在這些例子中,乘法器A 936、乘法器B 938、乘法器C 940和乘法器D 942使用一個(gè)二值或二時(shí)鐘周期操作來乘值。結(jié)果,乘法器A936對像素坐標(biāo)的處理占用5個(gè)時(shí)鐘周期。
乘法器B 938用于以1/W乘紋理坐標(biāo)S1、T1和R1。這些坐標(biāo)都是在3個(gè)時(shí)鐘周期內(nèi)被處理。在這些例子中這些坐標(biāo)按下列順序做乘法S1、T1和R1。乘法器C 940用于以1/W乘紋理坐標(biāo)S2、T2和R2。這些坐標(biāo)都是在3個(gè)時(shí)鐘周期內(nèi)被處理。這些坐標(biāo)按下列順序做乘法S2、T2和R2。乘法器D 942用于以1/W乘紋理坐標(biāo)Q1和Q2。在這些例子中這兩個(gè)坐標(biāo)的乘法是在2個(gè)時(shí)鐘周期上完成,其坐標(biāo)Q1首先做乘法。
乘法器A 936、乘法器B 938、乘法器C 940及乘法器D 942的輸出被送到多路轉(zhuǎn)換器974—994。這些多路轉(zhuǎn)換器用于將處理過的像素和紋理坐標(biāo)發(fā)送到片段FIFO2 920內(nèi)的適當(dāng)位置。這些FIFO條目位于片段FIFO 920中。像素坐標(biāo)放在FIFO條目901、903和905中。紋理坐標(biāo)放在FIFO條目907-921中。
再有,在透視分割單元被禁止的情況下,多路轉(zhuǎn)換器974-994可用于直接從片段FIFO1 906中接收值。在這種情況中,來自片段FIFO1906的值被直接傳送到片段FIFO2 920中。這些值從片段FFIO2 920傳送到視點(diǎn)變換單元,例如圖4中的視點(diǎn)變換單元426。
現(xiàn)在轉(zhuǎn)到圖10,圖中說明根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例的進(jìn)入坐標(biāo)和輸出坐標(biāo)。表1000說明像素坐標(biāo)和紋理坐標(biāo)的輸入坐標(biāo)變量。這些是由透視分割單元(如圖9A和圖9B中所示透視分割單元)接收的值。輸入的像素坐標(biāo)變量是X、Y和Z,而輸入的紋理坐標(biāo)變量是S0、T0、R0、Q0、S1、T1、R1和Q1。再有,深度值W用于透視分割單元中。輸出像素坐標(biāo)是X/W、Y/W和Z/W。輸出紋理坐標(biāo)S0/W、T0/W、R0/W、Q0/W、S1/W、T1/W、R1/W和Q1/W。如上所述,在這些例子中深度值W的倒數(shù)與輸入的坐標(biāo)相乘。
現(xiàn)在轉(zhuǎn)到圖11,圖中描繪了根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例在透視分割單元中用于控制第一級的狀態(tài)機(jī)。狀態(tài)機(jī)1100是狀態(tài)機(jī)的一個(gè)例子,它可用于處理第一級,例如由圖9A和圖9B中的FIFO1控制904及片段FIFO1 906形成的第一級。更具體地說,狀態(tài)機(jī)1100用于處置對深度值W求倒數(shù)。在狀態(tài)機(jī)1100中顯示的各種信號對應(yīng)于圖9A和圖9B中所示信號。過程在“準(zhǔn)備好”狀態(tài)ST0開始并進(jìn)入狀態(tài)ST1,如果T_FG_VALID、FIFO1_READY、/T_FG_CDSELECT以及ENABLE_PD存在的話。ENABLE_PD用于啟動(dòng)該級的功能。T_FG_CDSELECT是圖8中所示cdselect命令。符號“/”表示信號T_FG_CDSELECT是處于“非”或“逆”狀態(tài)。響應(yīng)這些條件,狀態(tài)機(jī)1100使SM1_RDY和SM1_W_VLD復(fù)位,它們分別是“準(zhǔn)備好”和“有效”信號?!皽?zhǔn)備好”信號發(fā)送到圖9中的與門910并指出該系統(tǒng)已準(zhǔn)備好接收數(shù)據(jù)。當(dāng)它被復(fù)位時(shí),該系統(tǒng)是未準(zhǔn)備好接收數(shù)據(jù)。其后,狀態(tài)機(jī)1100在每個(gè)時(shí)鐘周期上從ST1移到狀態(tài)ST2,然后到狀態(tài)ST3,再到ST4。這些狀態(tài)代表求深度值W倒數(shù)的過程所占用的時(shí)鐘周期。換句話說,每個(gè)狀態(tài)移動(dòng)發(fā)生在一個(gè)時(shí)鐘周期上。
狀態(tài)機(jī)1100移到狀態(tài)ST5,如果FIFO1(例如圖9A和圖9B中的片段FIFO1 906)是半滿的話。在這個(gè)例子中霧因子發(fā)生單元含有兩級。當(dāng)?shù)谝粋€(gè)頂點(diǎn)被接收時(shí),該單元是半滿的,因而能再接收一個(gè)頂點(diǎn)供處理?!坝行А毙盘柺且嬷獔D9中的FIFO 926去從倒數(shù)器924中加載數(shù)據(jù)。如果FIFO1為空的,則狀態(tài)機(jī)1100從狀態(tài)ST4移回到“準(zhǔn)備好”狀態(tài)ST0并設(shè)置SM1_RDY和SM1_W_VLD。在這個(gè)例子中,所有有效信號為高值。例如,一個(gè)信號是準(zhǔn)備好的,如果該信號是高值的話。
在狀態(tài)ST5,狀態(tài)機(jī)1100返回到狀態(tài)ST0并設(shè)置信號SM1_RDY和使信號SM1_W_VLD復(fù)位。從狀態(tài)ST0,狀態(tài)機(jī)1100可以移到狀態(tài)ST5,如果T_FG_VALID、FIFO1_READY、T_FG_CDSELECT及SM1_W_VLD存在的話。在從“準(zhǔn)備好”狀態(tài)ST0移到狀態(tài)ST5時(shí),狀態(tài)機(jī)1100設(shè)置SM1_RDY和使SM1_W_VLD復(fù)位。
現(xiàn)在轉(zhuǎn)到圖12,圖中描繪了根據(jù)本發(fā)明的一個(gè)最佳實(shí)施實(shí)施例在透視分割單元中用于控制第二級的狀態(tài)機(jī)。狀態(tài)機(jī)1200是狀態(tài)機(jī)的一個(gè)例子,它可用于處理第二級,例如由圖9A和圖9B中的FIFO2控制918及片段FIFO2 920形成的第二級。更具體地說,狀態(tài)機(jī)1200用于處置像素坐標(biāo)和紋理坐標(biāo)與第一級中產(chǎn)生的深度值倒數(shù)的乘法。
狀態(tài)機(jī)1200在“準(zhǔn)備好”狀態(tài)S0開始并移到狀態(tài)S1,如果FIFO1_VALID、FIFO2_READY OUT、/FIFO1_CDSELECT以及ENABLE_PD存在的話。在移到狀態(tài)S1時(shí),狀態(tài)機(jī)1200使SM2_RDY和SM2_ZR_VLD復(fù)位。SM2_RDY信號指出該系統(tǒng)已準(zhǔn)備好接收數(shù)據(jù)供處理。使這一信號復(fù)位則指出處理正在進(jìn)行而且不能接收數(shù)據(jù)。SM2_ZR_VLD指出Z值已做乘法并需要放入FIFO。然后狀態(tài)機(jī)1200移到狀態(tài)S2。在從狀態(tài)S2移到S3時(shí),狀態(tài)機(jī)設(shè)置SM2_XSQ_VLD。狀態(tài)機(jī)1200從狀態(tài)S3移到狀態(tài)S4并使SM2_XSQ_VLD復(fù)位和設(shè)置SM2_YTQ_VLD。這兩個(gè)信號表明x和y值已被處理并準(zhǔn)備好放入FIFO。當(dāng)一個(gè)信號被復(fù)位時(shí),它不再是準(zhǔn)備好的了。
狀態(tài)機(jī)1200從狀態(tài)S4移到狀態(tài)S5,如果FIFO2是半滿的話。否則,如果FIFO是空的,則狀態(tài)機(jī)1200移回到“準(zhǔn)備好”狀態(tài)S0并設(shè)置SM2_RDY,使SM2_YTQ_VLD復(fù)位以及設(shè)置SM2_ZR_VLD。
狀態(tài)機(jī)1200可以從“準(zhǔn)備好”狀態(tài)S0移到狀態(tài)S5,如果FIFO1_VAL1D、FIFO2_READY_OUT、FIFO1_CDSELECT、SM2_ZR_VLD、SM2_RDY以及SM2_ZR_VLD存在的話。當(dāng)頂點(diǎn)后面跟隨一個(gè)命令時(shí)便發(fā)生這種狀況并提供時(shí)間處理該命令。在從“準(zhǔn)備好”狀態(tài)S0移到狀態(tài)S5時(shí),狀態(tài)機(jī)1200使SM2_RDY復(fù)位并設(shè)置SM2_ZR_VLD。
現(xiàn)在轉(zhuǎn)到圖13,圖中顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例的數(shù)據(jù)流。圖13中所示數(shù)據(jù)流是針對穿過圖9A和圖9B所示透視分割單元的數(shù)據(jù)。
行1300標(biāo)識時(shí)鐘周期,而列1302標(biāo)識裝置和部件。在這個(gè)例子中,在時(shí)鐘周期零,深度值W1由一倒數(shù)器(1/W)接收,如圖9B中的倒數(shù)器924。在這個(gè)值的倒數(shù)產(chǎn)生之前要過去5個(gè)時(shí)鐘周期。在時(shí)鐘周期5,值1/W被放入FIFO1,它是片段FIFO1 908。倒數(shù)器接收第二個(gè)深度值W2供處理。在時(shí)鐘周期7,乘法器A開始用1/W乘X。乘法器A作為乘法器A 936實(shí)現(xiàn)。乘法器B用1/W乘紋理坐標(biāo)S1,乘法器B是作為乘法器B 938實(shí)現(xiàn)的。乘法器C用1/W乘紋理坐標(biāo)S2并作為乘法器C 940實(shí)現(xiàn)。乘法器D用1/W乘紋理坐標(biāo)Q1并作為乘法器D 940實(shí)現(xiàn)。
在這些例子中,乘法器是兩級乘法器,需要兩個(gè)時(shí)鐘周期以產(chǎn)生一個(gè)結(jié)果。在這個(gè)例子中,在時(shí)鐘周期8,乘法器A接收Y坐標(biāo)并用1/W乘它,而同時(shí)發(fā)生X坐標(biāo)的最后相乘過程。乘法器B接收紋理坐標(biāo)T1,乘法器C接收紋理坐標(biāo)T2,而乘法器D接收紋理坐標(biāo)Q2。這些坐標(biāo)均乘以1/W。如能看到的那樣,對先前接收的坐標(biāo)繼續(xù)進(jìn)行乘法。在時(shí)鐘周期9,乘法器A接收像素坐標(biāo)Z,乘法器B接收紋理坐標(biāo)R1,而乘法器C接收紋理坐標(biāo)R2。在此時(shí)乘法器D不接收另一個(gè)坐標(biāo),因?yàn)榕c其他乘法器相比,它連接兩個(gè)多路轉(zhuǎn)換器,而其他乘法器連接3個(gè)多路轉(zhuǎn)換器。在時(shí)鐘周期9,不存在要發(fā)送到多路乘法器D的其他數(shù)據(jù)。乘法器D結(jié)束用1/W對紋理坐標(biāo)Q2的乘法。
在時(shí)鐘周期10,倒數(shù)器接收另一個(gè)深度值W3。此外,深度值W2的倒數(shù)由FIFO1接收。在時(shí)鐘周期10沒有新的像素或紋理坐標(biāo)被接收,而是乘法器A、乘法器B和乘法器C完成對所接收坐標(biāo)值的乘法。在時(shí)鐘周期11,乘法的像素坐標(biāo)和紋理坐標(biāo)被接收或放在FIFO2中,它是作為片段FIFO2 920實(shí)現(xiàn)的(圖9A和圖9B)。
倒數(shù)器在透視分割單元的第一級中處理深度值,而像素坐標(biāo)和紋理坐標(biāo)是在透視分割單元的第二級中與深度值的倒數(shù)相乘。一旦開始了,便可以每5個(gè)時(shí)鐘周期輸出一個(gè)頂點(diǎn)的像素和紋理坐標(biāo)。在這些例子中,當(dāng)透視分割單元接收數(shù)據(jù)供處理時(shí),在第一次輸出一個(gè)頂點(diǎn)之前的延時(shí)是12個(gè)時(shí)鐘周期。取決于倒數(shù)器的具體設(shè)計(jì),在產(chǎn)生倒數(shù)值之前可能發(fā)生多些或少些時(shí)鐘周期。
這樣,本發(fā)明的機(jī)制允許用深度值W對像素坐標(biāo)和紋理坐標(biāo)進(jìn)行校正或調(diào)節(jié)。本發(fā)明的機(jī)制允許同時(shí)對像素坐標(biāo)和紋理坐標(biāo)二者進(jìn)行調(diào)節(jié)。再有,需要較少的時(shí)間完成這種調(diào)節(jié),因?yàn)槭菍ψ鴺?biāo)使用乘法而不是除法來完成這種調(diào)節(jié)。
重要的是應(yīng)該指出,盡管本發(fā)明是在全功能數(shù)據(jù)處理系統(tǒng)的環(huán)境中描述的,但本領(lǐng)域普通技術(shù)人員將會理解,本發(fā)明的過程能以指令的計(jì)算機(jī)可讀介質(zhì)形式或多種形式發(fā)布,而且不管實(shí)際用于進(jìn)行發(fā)布的信號承載介質(zhì)的特定類型如何,本發(fā)明都同樣適用。計(jì)算機(jī)可讀介質(zhì)的例子包括可記錄型介質(zhì),如軟盤、硬盤驅(qū)動(dòng)器、RAM、CD-ROM、DVD-ROM,以及傳輸型介質(zhì),如數(shù)字和模擬通信鏈路,使用射頻和光波傳輸?shù)葌鬏斝问降挠芯€或無線通信鏈路。計(jì)算機(jī)可讀介質(zhì)可采取編碼格式的形式,并在具體的數(shù)據(jù)處理系統(tǒng)中解碼供實(shí)際使用。
已給出本發(fā)明的描述,這是為了說明和描述的目的,而不是要把本發(fā)明完全地限定于所公開的形式。對于本領(lǐng)域的普通技術(shù)人員而言,許多修改和變化將是顯然的。對實(shí)施例的選擇和描述是為了最好地解釋本發(fā)明的原理和實(shí)際應(yīng)用,并使本領(lǐng)域其他普通技術(shù)人員能理解本發(fā)明具有各種修改的各種實(shí)施例,以適用于預(yù)期的特定用途。
權(quán)利要求
1.一種用于的在圖形適配器中顯示對象的方法,該方法包含接收該對象的位置坐標(biāo)和紋理坐標(biāo);對與該位置和紋理坐標(biāo)相關(guān)聯(lián)的深度性坐標(biāo)求倒數(shù)以形成一個(gè)倒數(shù)坐標(biāo);用這倒數(shù)坐標(biāo)乘位置坐標(biāo)和紋理坐標(biāo)以形成調(diào)整后的位置坐標(biāo)和調(diào)整后的紋理坐標(biāo);以及使用調(diào)整后的位置坐標(biāo)和調(diào)整后的紋理坐標(biāo)顯示該對象。
2.一種圖形流水線,包含一個(gè)輸入端,其中的輸入端接收圖形數(shù)據(jù),其中的圖形數(shù)據(jù)包括一個(gè)對象的位置坐標(biāo)和深度坐標(biāo);一個(gè)輸出端,其中的輸出端發(fā)送處理過的圖形數(shù)據(jù);多個(gè)處理部件,其中這多個(gè)處理部件產(chǎn)生處理過的圖形數(shù)據(jù),其中在這多個(gè)處理部件中的第一處理部件與輸入端相連,而這多個(gè)處理部件中的最后一個(gè)處理部件與輸出端相連,而且其中在這多個(gè)處理部件中的一個(gè)選定的處理部件接收位置坐標(biāo)和深度坐標(biāo),對深度坐標(biāo)求倒數(shù)以形成深度坐標(biāo)倒數(shù),并用這深度坐標(biāo)倒數(shù)乘位置坐標(biāo)。
3.權(quán)利要求2的圖形流水線,其中選定的處理部件包含第一級,其中的第一級接收位置坐標(biāo)和深度坐標(biāo)并求深度坐標(biāo)的倒數(shù);以及第二級,其中的第二級用深度坐標(biāo)倒數(shù)乘位置坐標(biāo)。
4.權(quán)利要求2的圖形流水線,其中的圖形數(shù)據(jù)包括紋理坐標(biāo),而且其中選定的處理部件用深度坐標(biāo)倒數(shù)乘紋理坐標(biāo)。
5.權(quán)利要求4的圖形流水線,其中選定的處理部件包含第一級,其中的第一級接收位置坐標(biāo)、紋理坐標(biāo)和深度坐標(biāo)并求深度坐標(biāo)的倒數(shù);以及第二級,其中的第二級用深度坐標(biāo)倒數(shù)乘位置坐標(biāo)和紋理坐標(biāo)。
6.權(quán)利要求5的圖形流水線,其中對一對象的位置坐標(biāo)和紋理坐標(biāo)的處理是在5個(gè)時(shí)鐘周期內(nèi)發(fā)生的。
7.一種圖形適配器,包含配置成接收圖形數(shù)據(jù)的輸入端;幀緩存器,處理過的圖形數(shù)據(jù)存儲在其中供顯示;與輸入端及幀緩存器相連的光柵引擎,其中光柵引擎使處理過的圖形數(shù)據(jù)光柵化以供顯示;以及與光柵引擎相連的幾何引擎,其中的幾何引擎從光柵引擎接收圖形數(shù)據(jù),處理圖形數(shù)據(jù)以形成處理過的圖形數(shù)據(jù),并把處理過的圖形數(shù)據(jù)回送到光柵引擎,而且其中的幾何引擎包括一組處理部件,在該組處理部件中的一個(gè)選定的處理部件接收位置坐標(biāo)和深度坐標(biāo),對深部坐標(biāo)求倒數(shù)以形成深度坐標(biāo)倒數(shù)并用深度坐標(biāo)倒數(shù)乘位置坐標(biāo)。
8.權(quán)利要求7的圖形適配器,其中的圖形數(shù)據(jù)包括紋理數(shù)據(jù),而且其中選定的處理部件用深度坐標(biāo)倒數(shù)乘紋理坐標(biāo)。
9.權(quán)利要求8的圖形適配器,其中選定的處理部件包含第一級,其中的第一級接收位置坐標(biāo)、紋理坐標(biāo)和深度坐標(biāo)并求深度坐標(biāo)的倒數(shù);以及第二級,其中的第二級用深度坐標(biāo)倒數(shù)乘位置坐標(biāo)和紋理坐標(biāo)。
10.權(quán)利要求7的圖形適配器,其中對一對象的位置坐標(biāo)和紋理坐標(biāo)的處理是在5個(gè)時(shí)鐘周期內(nèi)發(fā)生的。
11.用于顯示一對象的圖形適配器,該圖形適配器包含接收裝置,用于接收該對象的位置坐標(biāo)和紋理坐標(biāo);求倒數(shù)裝置,用于求與位置坐標(biāo)和紋理坐標(biāo)相關(guān)聯(lián)的深度坐標(biāo)的倒數(shù),以形成倒數(shù)坐標(biāo);乘法裝置,用于以倒數(shù)坐標(biāo)乘位置坐標(biāo)和紋理坐標(biāo),以形成調(diào)整后的位置坐標(biāo)和紋理坐標(biāo);以及顯示裝置,用于以調(diào)整后的位置坐標(biāo)和調(diào)整后的紋理坐標(biāo)來顯示該對象。
12.在計(jì)算機(jī)可讀介質(zhì)中的供顯示對象用的一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包含第一組指令,用于接收該對象的位置坐標(biāo)和紋理坐標(biāo);第二組指令,用于把與位置和紋理坐標(biāo)相關(guān)聯(lián)的深度坐標(biāo)變成其倒數(shù)以形成坐標(biāo)倒數(shù);第三組指令,用于以這坐標(biāo)倒數(shù)乘位置坐標(biāo)和紋理坐標(biāo)以形成調(diào)整后的位置坐標(biāo)和調(diào)整后的紋理坐標(biāo);以及第四組指令,用于以這調(diào)整后的位置坐標(biāo)和調(diào)整后的紋理坐標(biāo)顯示該對象。
全文摘要
在圖形系統(tǒng)中的一種方法和裝置。該圖形系統(tǒng)包括一個(gè)輸入端用于接收圖形數(shù)據(jù),圖形數(shù)據(jù)包括對象的位置坐標(biāo)和深度坐標(biāo)。存在一個(gè)輸出端用于發(fā)送處理后的圖形數(shù)據(jù)。該圖形系統(tǒng)還包含多個(gè)處理部件,用于產(chǎn)生處理后的圖形數(shù)據(jù)。多個(gè)處理部件中的第一處理部件與輸入端相連,而多個(gè)處理部件中的最后一個(gè)處理部件與輸出端相連。多個(gè)處理部件中的一個(gè)選定的處理部件接收位置坐標(biāo)和深度坐標(biāo),求深度坐標(biāo)的倒數(shù),并用該深度坐標(biāo)倒數(shù)乘位置坐標(biāo)。
文檔編號G06T15/10GK1329329SQ0112127
公開日2002年1月2日 申請日期2001年6月14日 優(yōu)先權(quán)日2000年6月15日
發(fā)明者理查德·A·馬里諾 申請人:國際商業(yè)機(jī)器公司