專利名稱:用于圖形系統(tǒng)的再循環(huán)濃淡樹混合器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機圖形,尤其,涉及諸如家用視頻游戲平臺之類的交互式圖形系統(tǒng)。還是尤其,本發(fā)明涉及實施用于多紋理和其它效果地濃淡樹的再循環(huán)光照模型硬件。
背景技術(shù):
我們中間許多人都已經(jīng)看到過包括驚人的逼真的恐龍、外星人、生氣勃勃的玩具以及其它怪誕的生物之類的影片。計算機圖形有可能制作這種動畫片。使用這種技術(shù),計算機圖形藝術(shù)家可以指定每個目標(biāo)的外貌應(yīng)該是怎樣的,以及它的外貌應(yīng)隨時間作出怎樣的變化,然后計算機塑造這些目標(biāo),并把它們顯示在諸如你的電視機或計算機屏幕之類的顯示器上。計算機關(guān)心執(zhí)行許多任務(wù),根據(jù)每個目標(biāo)在布景中的位置和方向、看起來光射擊到每個目標(biāo)的方向、每個目標(biāo)的表面紋理以及其它因素,要求確保所顯示的圖象的每個分量都是彩色的,而且形狀正確。
因為計算機圖形產(chǎn)生是復(fù)雜的,所以計算機產(chǎn)生的三維圖形在幾年之前僅限于昂貴的專業(yè)化的飛行模擬器、高級圖形工作站和超級計算機。公眾只有在電影和昂貴的電視廣告中看到這些計算機系統(tǒng)產(chǎn)生的某些圖象,但是我們大多數(shù)人不能與產(chǎn)生圖形的計算機實際地交互活動。從可得到相對不昂貴的3維圖形平臺開始,所有這些情況已經(jīng)都改變了,例如,現(xiàn)在可得到用于個人計算機的諸如Nintendo 64和各種3維圖形卡。現(xiàn)在有可能在你的家或辦公室中用相對不昂貴的計算機圖形系統(tǒng)與有刺激的3維動畫和仿真片進行交互活動。
過去,圖形系統(tǒng)設(shè)計師面對的一個問題是如何在圖形系統(tǒng)中有效地實現(xiàn)光照模型。一般,濃淡處理是執(zhí)行光計算和從它們確定象素色彩/渾濁度的過程。一般,在通常使用中有3種主要類型的濃淡處理平坦、Gouraud和Phong。這些相應(yīng)于計算每多邊形、每頂點和每象素的光。已經(jīng)建立許許多多種濃淡處理模型。沒有一種模型受到所有用戶的歡迎并且適合于所有的應(yīng)用。因此,已經(jīng)建議數(shù)種設(shè)計方法以提供在編程器選擇和濃淡處理模型規(guī)格方面的可塑造性。
在R.L.Cook題為“濃淡樹”的文章中(SIGGRAPH 84,223-231頁),作者描述一種特殊用途語言,在這種特殊用途語言中,把光照模型建立成稱為濃淡樹的樹表達(dá)式。一般說來,濃淡樹是許多節(jié)點的樹,每個節(jié)點從它的子節(jié)點取得參數(shù),并為它的母節(jié)點產(chǎn)生參數(shù)。例如,參數(shù)可以是照明等式(例如,鏡面系數(shù)或表面法線(Normal))的項。其它參數(shù)可以包括大氣效應(yīng)(例如,薄圖象模糊)或投影。RenderMan接口使用濃淡樹來提供用于多種用途的用戶定義的光照模型和系統(tǒng)定義的光照模型。
在已經(jīng)在非—實時繪制圖形系統(tǒng)中廣泛地使?jié)獾瓨涞耐瑫r,當(dāng)試圖適應(yīng)濃淡樹在實時繪制的情況中提供的可塑造性時發(fā)現(xiàn)了問題。例如,極其希望在諸如家用視頻游戲平臺和個人計算機圖形卡之類的低成本實時繪制系統(tǒng)中提供濃淡樹的可塑造性。
圖形系統(tǒng)設(shè)計師面對的另一個問題是如何有效地提供所謂的單—掃描多紋理的特性?;旧?,紋理是一門技術(shù),用于有效地塑造一個表面的特性。例如,作為替代塑造每個分立磚塊和在磚墻中的砂漿線的幾何圖形,有可能把磚墻的圖象電子地“粘合”到表面上??梢允褂眠@種紋理能力以顯著地增加圖象的復(fù)雜度而無需相應(yīng)地增加塑造和處理的成本。
已知為多紋理的紋理的擴展允許把兩個或多個紋理施加到相同的表面上。例如,你想建立一個從天外空間看地球的圖象。你可以把地球塑造成球形并對它施加兩個不同的紋理。第一個紋理可以是大陸和海洋的圖象。第二個紋理可以是云覆蓋層的圖象。通過使云覆蓋紋理圖象相對于大陸/海洋紋理圖象移動,你可以建立極真實動態(tài)的映射紋理圖象。
某些圖形加速器支持多紋理,其中在相同的繪制掃描(rendering pass)期間訪問兩個或多個紋理。例如,見微軟的Direct X 6.0 SBK(1998);Segal等人的“開放GL圖形系統(tǒng)規(guī)范”(版本1.2.1)(1998年3月)(www.OpenGL.org)。某些PC圖形加速器卡還提供單掃描多紋理。然而,進一步改進是可能的。
發(fā)明內(nèi)容
本發(fā)明提供通用化的濃淡樹混合器,可以把它使用于多紋理和許多其它可塑造的混合效果。根據(jù)本發(fā)明提供的一個方面,可以控制在圖形流水線中的再循環(huán)光照模型硬件,以提供許多獨立的可控制的混合級。光照模型硬件包括中間存儲器,用于存儲以前混合操作的結(jié)果。對于每個混合級,光照模型硬件可以選擇不同的輸入和執(zhí)行不同的操作。因此,可以使用成本相當(dāng)?shù)秃托⌒偷墓庹漳P陀布我獾貙嵤?fù)雜的濃淡樹。
根據(jù)本發(fā)明提供的另一個方面,把第一紋理映射操作的結(jié)果提供給再配置光照模型。光照模型根據(jù)第一紋理映射操作的結(jié)果執(zhí)行混合操作。然后使光照模型再配置,并進行連接以接收又一個紋理操作的結(jié)果。再配置的光照模型把它的以前的結(jié)果和又一個紋理操作的結(jié)果進行組合以提供混合的輸出。
根據(jù)本發(fā)明提供的又一個方面,可以使光照模型再循環(huán)任何要求的次數(shù),以任意地實施復(fù)雜的濃淡處理模型。可以對每個再循環(huán)或“級”編程,使之具有許多要求的混合操作中的任何一個混合操作,并從許多彩色、渾濁度或深度源所選擇的一個進行混合。考慮到實時繪制定時限制,在特定實施中可以限制再循環(huán)的次數(shù),但是合理的再循環(huán)級的個數(shù)(例如,15個)在實施許多復(fù)雜濃淡處理模型方面可以提供較大的可塑造性。
根據(jù)本發(fā)明提供的另一個方面,在硬件中實施再循環(huán)濃淡樹象素混合器以使每級的處理時間最少。更詳細(xì)地,本發(fā)明的較佳實施例提供相當(dāng)?shù)偷男酒嫉孛娣e,包括加速硬件的可編程紋理光照模型/象素混合器的多用途紋理—環(huán)境處理子系統(tǒng),它在多個周期/級上使經(jīng)計算的彩色、渾濁度和其它數(shù)據(jù)進行循環(huán)。紋理環(huán)境子系統(tǒng)可以組合每一頂點的光、紋理、光柵化的彩色、渾濁度和深度,以形成供顯示的象素參數(shù)??梢栽诩y理環(huán)境子系統(tǒng)中通過混合單元獨立地處理彩色(例如,RGB(紅綠藍(lán)))和阿爾法分量(alpha component)的混合操作,所述混合單元包括一組彩色/阿爾法組合器(光照模型)硬件,可以在多個處理級上再使用以實施多紋理和其它效果。在所有級中間可以共享可選擇的當(dāng)前—彩色/渾濁度輸入/輸出寄存器以存儲中間結(jié)果??梢詫庹漳P陀布诿總€級進行再配置,以提供支持單個繪制掃描多紋理和其它效果的特定混合/濃淡處理操作鏈。
附圖簡述
從下面結(jié)合附圖對本發(fā)明的實施例的詳細(xì)描述中,對本發(fā)明提供的這些和其它特性和優(yōu)點將更好和更完全地了解,在所有的附圖中,用相同的標(biāo)記作相應(yīng)的識別,其中
圖1是示例交互計算機圖形系統(tǒng)的總視圖2是圖1的示例計算機圖形系統(tǒng)的方框圖3是在圖2中的示例圖形和音頻處理器的方框圖4是在圖3中示出的示例3維圖形處理器的方框圖5是圖4的圖形和音頻處理器分示例邏輯流程圖6示出示例再使用再循環(huán)光照模型;
圖7示出使用再循環(huán)光照模型實施的示例濃淡處理流水線;
圖8示出示例再循環(huán)光照模型方框圖9示出示例再循環(huán)光照模型方框圖10示出示例再循環(huán)光照模型操作方框圖11示出示例再循環(huán)光照模型實施;
圖12A和12B示出示例色彩交換特性;
圖13示出示例紋理環(huán)境單元實施;
圖14示出示例圖象模糊計算單元;
圖15示出再循環(huán)光照模型怎樣用于多紋理的例子;
圖16示出使用再循環(huán)光照模型的示例多紋理處理;
圖17示出使用再循環(huán)光照模型的示例多—紋理流水線;
圖18示出示例多—紋理流水線控制;
圖19示出示例紋理環(huán)境單元控制寄存器;以及
圖20A和20B示出另外兼容實施的例子。
本發(fā)明的示例實施例的詳述
圖1示出示例交互3維計算機圖形系統(tǒng)50??梢允褂孟到y(tǒng)50來玩帶有有趣的立體聲的交互3維視頻游戲。還可以把它用于許多其它應(yīng)用。
在本例子中,系統(tǒng)50能夠交互地以實時處理3維世界的數(shù)字顯示或模塊。系統(tǒng)50可以從任何任意的觀察點顯示3維世界的某一些或全部。例如,系統(tǒng)50可以根據(jù)來自手持控制器52a、52b或其它輸入裝置的實時輸入交互地改變觀察點。這允許玩游戲者通過在世界內(nèi)或世界外的某人的眼睛看到世界??梢园严到y(tǒng)50用于不需要實時3維交互顯示的應(yīng)用(例如,2維顯示形成和/或非—交互顯示),但是可以把極快速顯示高質(zhì)量3維圖象的能力應(yīng)用于建立非常真實和激動的游戲或其它圖形交互作用。
使用系統(tǒng)50玩視頻游戲或其它應(yīng)用時,用戶首先把主單元54連接到他或她的彩色電視機56或其它顯示裝置,通過連接在兩者之間的電纜58。主單元54產(chǎn)生用于控制彩色電視機56的視頻和音頻兩個信號。視頻信號是控制顯示在電視屏幕59上的圖象的信號,而音頻信號是通過電視立體聲揚聲器61L、61R的再現(xiàn)聲音的信號。
用戶還需要把主單元54連接到電源。電源可以是傳統(tǒng)的AC(交流)適配器(未示出),可以把它插入家中的壁式電氣插座,并把家用電轉(zhuǎn)換成適于對主單元54供電的較低DC(直流)電壓信號。在其它實施中可以使用電池。
用戶可以使用手持控制器52a、52b來控制主單元54。例如,可以使用控制器60來指定顯示在電視機56上的字符在3維世界中移動的方向(上或下、左或右、靠近或離開)。控制器60還提供其它應(yīng)用的輸出(例如,菜單選擇、指針/光標(biāo)控制等等)??刂破?2可以采取多種形式。在本例中,所示出的控制器52的每一個包括諸如搖桿、按鈕和/或方向開關(guān)之類的控制器60??梢酝ㄟ^電纜或通過電磁(例如,射頻或紅外)波無線地把控制器52連接到主單元54。
對于游玩諸如游戲之類的應(yīng)用程序,用戶選擇他或她希望玩的存儲視頻游戲或其它應(yīng)用程序的一個合適的存儲媒體62,并把該存儲媒體插入在主單元54中的槽64。例如,存儲媒體可以是特殊地編碼和/或加密的光盤和/或磁盤。用戶可以操作電源開關(guān)66以接通主單元54,并導(dǎo)致主單元根據(jù)存儲在存儲媒體62上的軟件開始運行視頻游戲或其它應(yīng)用程序。用戶可以操作控制器52以把輸入提供給主單元54。例如,操作控制器60可能導(dǎo)致游戲或其它應(yīng)用程序的啟動。移動其它控制60可能導(dǎo)致動畫式的字符沿不同方向移動,或改變用戶在3維世界中的觀察點。根據(jù)存儲在存儲媒體62中的特定軟件,在控制器52上的各種控制60在不同的時間可以執(zhí)行不同的功能。
總系統(tǒng)的示例電子線路
圖2示出系統(tǒng)50的示例部件的方框圖。主要部件包括
·主處理器(CPU)110;
·主存儲器112;以及
·圖形和音頻處理器114。
在該例子中,主處理器110(例如,加強型IBM Power PC 750)通過圖形和音頻處理器114接收來自手持控制器108(和/或其它輸入裝置)的輸入。主處理器110交互地響應(yīng)用戶的輸入,并執(zhí)行視頻游戲或其它節(jié)目,實施視頻游戲或其它節(jié)目是,例如,通過外部存儲媒體62經(jīng)由海量存儲器接入裝置106(諸如光盤驅(qū)動)提供的。作為在視頻游戲的情況下的一個例子,除了許多交互和控制功能之外,主處理器110可以執(zhí)行碰撞檢測和動畫處理。
在該例子中,主處理器110產(chǎn)生3維圖形和音頻命令,并把它們發(fā)送到圖形和音頻處理器114。圖形和音頻處理器114處理這些命令以在顯示器59上產(chǎn)生有趣的可視圖象和在立體聲揚聲器61R、61L或其它合適的聲音—產(chǎn)生裝置上產(chǎn)生有趣的立體聲。
示例系統(tǒng)50包括視頻編碼器120,它接收來自圖形和音頻處理器114的圖象信號,并把圖象信號轉(zhuǎn)換成適合于在諸如計算機監(jiān)視器或家用彩色電視機56之類的標(biāo)準(zhǔn)顯示裝置上顯示的模擬和/或數(shù)字視頻信號。系統(tǒng)50還包括音頻codec(壓縮器/解除壓縮器)122,它對數(shù)字音頻信號壓縮和解除壓縮,還可以按需要在數(shù)字和模擬音頻信令格式之間轉(zhuǎn)換。音頻codec 122可以通過緩沖器124接收音頻輸入并把它們提供給圖形和音頻處理器114供進行處理(例如,與處理器產(chǎn)生的其它音頻信號混合和/或通過海量存儲器接入裝置106的流式傳輸?shù)囊纛l輸出的接收)。在該例子中,圖形和音頻處理器114可以在音頻存儲器126(所述存儲器可用于音頻任務(wù))中存儲與音頻有關(guān)的信息。圖形和音頻處理器114把所產(chǎn)生的音頻輸出信號提供給音頻codec 122,用于解除壓縮和轉(zhuǎn)換成模擬信號(例如,通過緩沖放大器128L、128R),所以可以通過揚聲器61R、61L使它們再現(xiàn)。
圖形和音頻處理器114具有與各種附加裝置進行通信的能力,所述各種附加裝置是可能存在于系統(tǒng)50中的。例如,可以使用并行數(shù)字總線130與海量存儲器接入裝置106和/或其它部件進行通信??梢允褂么型庠O(shè)總線132與許多外圍設(shè)備或其它裝置進行通信,例如,所述其它裝置包括
·可編程只讀存儲器和/或?qū)崟r時鐘134;
·modem(調(diào)制解調(diào)器)136或其它網(wǎng)絡(luò)接口(而它可以把系統(tǒng)50連接到諸如互聯(lián)網(wǎng)或其它數(shù)字網(wǎng)絡(luò)之類的電信網(wǎng)絡(luò)138,可以從/到所述網(wǎng)絡(luò)下載或上載程序指令和/或數(shù)據(jù));以及
·快閃存儲器140。
可以使用又一個外部串行總線142與附加的擴展存儲器144(例如,存儲器卡)或其它裝置進行通信??梢允褂眠B接器把各種裝置連接到總線130、132、142。
示例圖形和音頻處理器
圖3是示例圖形和音頻處理器114的方框圖。在一個實施例中,圖形和音頻處理器114可以是一個單片ASIC(專用集成電路)。在該例子中,圖形和音頻處理器114包括
·處理器接口移動接收子系統(tǒng)150;
·存儲器接口/控制器152;
·3維圖形處理器154;
·音頻數(shù)字信號處理器(DSP)156;
·音頻存儲器接口158;
·音頻接口和混頻器160;
·外圍設(shè)備控制器162;以及
·顯示控制器164。
3維圖形處理器154執(zhí)行圖形處理任務(wù)。音頻數(shù)字信號處理器156執(zhí)行音頻處理任務(wù)。顯示控制器164訪問來自主存儲器112的圖象信息并把它提供給視頻編碼器120,供在顯示裝置56上顯示。音頻接口和混頻器160與音頻codec122連接,并且也可以混合從不同源(例如,來自海量存儲器接入裝置106的流式傳輸、音頻DSP 156的輸出、以及經(jīng)由音頻codec 122接收的外部音頻輸入)來的音頻。處理器接口150提供在主處理器110和圖形和音頻處理器114之間的數(shù)據(jù)和控制接口。
存儲器接口152提供在圖形和音頻處理器114和存儲器112之間的數(shù)據(jù)和控制接口。在該例子中,主處理器110通過作為圖形和音頻處理器114的分量的處理器接口150和存儲器接口152訪問主存儲器112。外圍設(shè)備控制器162提供在圖形和音頻處理器114和上述各種外圍設(shè)備之間的數(shù)據(jù)和控制接口。音頻存儲器接口158提供與音頻存儲器126的接口。
示例圖形流水線
圖4示出示例3維圖形處理器154的更詳細(xì)的視圖。3維圖形處理器154包括除了許多其它部件之外還包括命令處理器200和3維圖形流水線180。主處理器110把數(shù)據(jù)流(例如,圖形命令流和顯示清單)傳遞到命令處理器200。主處理器110具有一個兩級超高速緩沖器115以使存儲器等待時間最小,還具有集中寫緩沖器111,用于針對圖形和音頻處理器114的未超高速緩存的數(shù)據(jù)流。集中寫緩沖器111把部分超高速緩沖器存儲界收集到完整的超高速緩沖器存儲界,并且一次一個超高速緩沖器存儲界把數(shù)據(jù)發(fā)送到圖形和音頻處理器114,用于最大總線使用。
命令處理器200接收來自主處理器110的顯示命令,并對它們進行分析——從共享存儲器112得到處理它們所需要的任何附加數(shù)據(jù)。命令處理器200把頂點命令的流提供給圖形流水線180,用于2維和/或3維處理和繪制。圖形流水線180根據(jù)這些命令產(chǎn)生圖象??梢园阉a(chǎn)生的圖象信息傳遞到主存儲器112,供顯示控制器/視頻接口單元164訪問,單元164把流水線180的幀緩沖輸出顯示在顯示器56上。
圖5是圖形處理器154的邏輯流程圖。主處理器110可以把圖形命令流210、顯示清單212以及頂點陣列214存儲在主存儲器112中,并通過總線接口150把指針傳遞到命令處理器200。主處理器110把圖形命令存儲在位于主存儲器110中的一個或多個圖形先進先出(FTFO)緩沖器210中。命令處理器200讀取
·從主存儲器112通過片上FIFO存儲緩沖器216來的命令流,所述片上FIFO存儲緩沖器216接收和緩沖用于同步/流控制和負(fù)載平衡的圖形命令;
·從主存儲器112通過片上調(diào)用FIFO存儲緩沖器218來的顯示清單212;以及
·從命令流和/或在主存儲器112中的頂點陣列214通過頂點超高速緩沖器220來的頂點屬性。
命令處理器220執(zhí)行命令處理操作220a,它把屬性類型轉(zhuǎn)換成浮點格式,并把所產(chǎn)生的完整的頂點多邊形數(shù)據(jù)傳遞到用于繪制/光柵化的圖形流水線180??删幊檀鎯ζ髋袃?yōu)電路130(見圖4)對圖形流水線180、命令處理器200、和顯示控制器/視頻接口單元164之間共享主存儲器112判定優(yōu)先權(quán)。
圖4示出圖形流水線180可以包括
·變換單元300;
·設(shè)置/光柵化器400;
·紋理單元500;
·紋理環(huán)境單元600;以及
·象素核心程序700。
變換單元300執(zhí)行多種2維和3維變換和其它操作300a(見圖5)。變換單元300可以包括一個或多個矩陣存儲器300b,用于存儲在變換處理300a中使用的矩陣。變換單元300把每頂點的輸入幾何從目標(biāo)空間變換到屏幕空間;并變換輸入紋理坐標(biāo)和計算投影紋理坐標(biāo)(300c)。變換單元300還可以執(zhí)行多邊形裁剪/挑選300d。也通過變換單元300b執(zhí)行的照明處理300e提供每頂點照明計算,在一個實施例中計算多達(dá)8個獨立的照明。變換單元300還可以執(zhí)行紋理坐標(biāo)產(chǎn)生(300c),用于浮雕型凸出映射效果和多邊形裁剪/挑選操作(300d)。
設(shè)置/光柵化器400包括設(shè)置單元,它接收來自變換單元300的頂點數(shù)據(jù),并把三角形設(shè)置信息發(fā)送到一個或多個執(zhí)行邊緣光柵化、紋理坐標(biāo)光柵化和色彩光柵化的光柵化器單元(400b)。
紋理單元500(它可能包括片上紋理存儲器(TMEM)502)執(zhí)行各種與紋理有關(guān)的任務(wù),例如包括
·取得來自主存儲器112的紋理504;
·紋理處理(500a)包括,例如,多紋理處理、后—超高速緩沖器紋理解除壓縮、紋理濾波、浮雕、通過使用投影紋理和帶阿爾法透明度和深度的BLIT的陰影和照明;
·凸出映射處理,用于計算凸出映射的紋理坐標(biāo)位移、偽紋理和紋理傾斜效果(500b);以及
·間接紋理處理(500c)。
對于有關(guān)塊500a、500b和500c的操作的詳述,在題為“在圖形系統(tǒng)中用于直接和間接紋理處理的方法和設(shè)備”(代理人提要第732-961號)的共同受讓的未定專利申請第
號和2000年8月23日提出的它的相應(yīng)的臨時申請第60/226,891號中揭示了用于執(zhí)行規(guī)則的和間接的紋理查找操作的示例圖形流水線電路和過程的更詳細(xì)的描述,在此引用該兩專利作為參考。
在圖形流水線的較佳示例結(jié)構(gòu)中,使用“再循環(huán)”紋理流水線結(jié)構(gòu)來實施紋理單元500,所述“再循環(huán)”紋理流水線結(jié)構(gòu)使用單個紋理地址坐標(biāo)/數(shù)據(jù)處理單元,該單元對邏輯的直接和間接紋理坐標(biāo)數(shù)據(jù)的處理進行交錯,并提供紋理查找數(shù)據(jù)反饋路徑(500d),用于使從單個紋理獲取單元獲取的間接紋理查找數(shù)據(jù)再循環(huán)而返回紋理地址坐標(biāo)/數(shù)據(jù)處理單元。
紋理單元500把經(jīng)濾波的紋理值輸出到紋理環(huán)境單元600,用于紋理環(huán)境處理(600a)。紋理環(huán)境單元600混合多邊形和紋理色彩/阿爾法/深度,還可以執(zhí)行紋理圖象模糊處理(600b),以得到基于反距離的圖象模糊效果。紋理環(huán)境單元600可以提供多個級,以執(zhí)行許多其它感興趣的與環(huán)境有關(guān)的功能,例如,基于色彩/阿爾法/深度調(diào)制、浮雕、紋理細(xì)節(jié)、紋理交換、箝位和深度混合的功能。
如在圖5中所示,在示例實施例中的紋理環(huán)境單元600a包括再循環(huán)光照模型602。在該例子中,再循環(huán)光照模型602包括基于硬件的一般用途混合器,它可以在許多選擇的輸入之間進行混合,而且可以保留所混合的結(jié)果,用于在接連著的混合操作中進一步混合。在該例子中,再循環(huán)光照模型602包括可以執(zhí)行許多不同混合操作的可再使用混合邏輯。在該例子中,再循環(huán)光照模型602可以保留許多截然不同的以前混合結(jié)果,并可以用這些以前混合結(jié)果的任何結(jié)果和新提供的值進行混合。這允許再循環(huán)光照模型602通過接連著的再循環(huán)級執(zhí)行任何判優(yōu)濃淡樹。例如,見Cook的濃淡樹,SIGGRAPH Proceedings,223-231頁(1984年7月)。再循環(huán)光照模型602可以執(zhí)行的濃淡樹的復(fù)雜度受到在給定繪制掃描中再循環(huán)光照模型602可以再循環(huán)的總次數(shù)的限制。在示例實施例中,再循環(huán)光照模型602在示例實施例中提供多達(dá)15個再循環(huán)級,但是不同的實施提供不同的再循環(huán)級數(shù)目。
一旦紋理環(huán)境單元600產(chǎn)生混合的色彩/阿爾法/z輸出,象素核心程序700就執(zhí)行深度(z)比較(700a)和幀緩沖象素混合(700b)。在該例子中,象素核心程序700把數(shù)據(jù)存儲到嵌入式(片上)幀緩沖存儲器702。圖形流水線180可以包括一個或多個嵌入式DRAM存儲器702以本地地存儲幀緩沖和/或紋理信息。根據(jù)當(dāng)前有效的繪制模式,也可以在圖形流水線180中較早級處執(zhí)行z比較700a’(例如,如果不需要阿爾法混合,則可以較早地執(zhí)行z比較)。象素核心程序700包括復(fù)制操作700c,它周期性地把片上幀緩沖器702寫入主存儲器112供顯示器/視頻接口單元164訪問。還可以使用復(fù)制操作700c把嵌入式幀緩沖器702內(nèi)容復(fù)制到在主存儲器112中的紋理,用于動態(tài)紋理合成效果。在復(fù)制—出操作期間,可以執(zhí)行反—假名和其它濾波。由顯示器/視頻接口單元164每幀讀出圖形流水線180的幀緩沖器輸出(最終把它存儲在主存儲器112中)。顯示器控制器/視頻接口164提供數(shù)字RGB(紅綠藍(lán))象素值,供在顯示器102上顯示。
示例再循環(huán)光照模型
圖6示出示例再循環(huán)光照模型實施例的高級方框圖,而圖7示出可以使用圖6的再循環(huán)光照模型實施的示例光照模型流水線的邏輯圖。如在圖6中所示,再循環(huán)光照模型602接收許多不同的輸入,并產(chǎn)生可以反饋回它的輸入的一個輸出。
更詳細(xì)地,可以在下述任何輸入類型中選擇在示例實施例中的再循環(huán)光照模型602
·光柵化的色彩/阿爾法;
·紋理色彩/阿爾法;
·計算的色彩/阿爾法;
·其它。
在示例實施例中,光柵化器400可以提供光柵化的色彩/阿爾法。例如,光柵化的色彩/阿爾法可以是Gouraud濃淡象素,所述Gouraud濃淡象素是根據(jù)變換單元300在每一頂點的基礎(chǔ)上執(zhí)行照明計算而通過光柵化器400確定的。紋理色彩/阿爾法可以是通過紋理單元500執(zhí)行的直接或間接紋理映射操作的結(jié)果。再循環(huán)光照模型602根據(jù)可編程混合操作把這些值的任何一個/全部和/或常數(shù)進行混合,以在它的輸出處提供經(jīng)計算的色彩/阿爾法值??梢园呀?jīng)計算的色彩/阿爾法值作為輸入反饋回再循環(huán)光照模型602,供在接連著的混合操作中使用。
可以把再循環(huán)光照模型602的每個獨立地受控制的再循環(huán)稱為一個“級”。在示例實施例中,通過在專用集成電路(ASIC)中的高速硬件邏輯來實施再循環(huán)光照模型602。通過允許任何需要數(shù)目的濃淡/混合級而同時降低硬件復(fù)雜度和所需要的集成電路不動產(chǎn),對提供許多受到獨立控制的邏輯級的高速硬件邏輯再循環(huán)功能性提供了靈活性。在示例實施例中的每個再循環(huán)光照模型602級對色彩(RGB)和阿爾法(透明度)計算獨立的混合操作??梢詮脑S多不同操作通過運行在主處理器110上的應(yīng)用程序?qū)υ谑纠龑嵤├械幕旌嫌嬎氵M行編程,例如,所述許多不同操作包括
·調(diào)制;
·調(diào)制2x;
·調(diào)制4x;
·加;
·加符號;
·加符號2x;
·減;
·加平滑;
·混合散射阿爾法;
·混合紋理阿爾法;
·混合因子阿爾法;
·混合當(dāng)前阿爾法;
·混合預(yù)—乘的紋理阿爾法;
·調(diào)制阿爾法和加色彩;
·調(diào)制色彩和加阿爾法;
·調(diào)制反阿爾法和加色彩;
·調(diào)制反色彩和加阿爾法;
·鏡面色彩和紋理(多個級);
·浮雕(多個級);
·紋理細(xì)節(jié)(多個級);
·其它操作。
圖7示出可以由再循環(huán)光照模型602提供的示例再循環(huán)濃淡流水線。這個邏輯流水線提供多個順序的混合級,每個混合級把一個經(jīng)計算的色彩/阿爾法與一個紋理色彩/阿爾法和/或一個光柵化的色彩/阿爾法進行混合。在示例實施例中,可以提供多達(dá)16個不同的混合操作級,每級接收內(nèi)插的紋理和光柵色彩/阿爾法。光柵化器400(見圖5)的編程指定8個紋理坐標(biāo)組中的哪一個和8個物理紋理504中的哪一個使用于通過再循環(huán)光照模型602提供的紋理內(nèi)插。光柵化器400還可以控制把兩個光柵化色彩中的哪一個使用于給定的再循環(huán)光照模型602級。
示例再循環(huán)光照模型實施例
圖8示出適合于在紋理環(huán)境單元600中使用的再循環(huán)光照模型602的示例實施例的方框圖。在所示的例子中,再循環(huán)光照模型602包括許多多路復(fù)用器656,用于在待通過混合操作符658操作的各種不同輸入(例如,紋理色彩/阿爾法、光柵化的色彩/阿爾法以及以前混合操作的結(jié)果)之間進行選擇??梢园鸦旌喜僮鞣?58的結(jié)果存儲在在示例實施例中的4個中間寄存器660中的任何一個寄存器中。然后輸入多路復(fù)用器656可以選擇這些寄存器660中的任何一個,用于在接連著的混合級中的進一步混合操作。
在示例實施例中,再循環(huán)光照模型8對每個混合級提供色彩分量操作和分開的阿爾法分量操作。對于給定的級,塊658執(zhí)行的操作對于色彩分量和阿爾法分量可以是不同的。通過運行在主處理器110中的應(yīng)用程序可以獨立地控制色彩和阿爾法分量操作。對于每個再循環(huán)級提供獨立的色彩和阿爾法操作控制的這種能力允許再循環(huán)光照模型602優(yōu)先執(zhí)行操作的復(fù)數(shù)阿爾法(透明度)樹,在處理速度方面沒有增加成本。把再循環(huán)光照模型602的最后級產(chǎn)生的阿爾法輸入到阿爾法比較塊662。例如,這個阿爾法比較操作662的結(jié)果可以使用于有條件地屏蔽色彩和/或z寫入到嵌入式幀緩沖器702。
在示例實施例中,把最后混合級的最終混合輸出存儲在寄存器660(4)中,用于色彩輸出和/或阿爾法門限值662。還對z-紋理提供z紋理路徑。見Leather等人的題為“Z-紋理”(代理人參考號723-965)的未定的共同受讓美國專利申請第
號和2000年8月23日提出的它的相應(yīng)的臨時申請第60/226,913號,在此引用該兩專利作為參考。
示例輸入多路復(fù)用器配置
圖9示出示例再循環(huán)光照模型多路復(fù)用器配置656。如在圖9中所示,4個多路復(fù)用器656a…656d中的每一個可以選擇許多不同色彩輸入中的一個,所述不同色彩輸入包括
·寄存器660(1)的內(nèi)容;
·寄存器660(2)的內(nèi)容;
·寄存器660(3)的內(nèi)容;
·寄存器660(4)的內(nèi)容;
·紋理色彩;
·紋理阿爾法;
·常數(shù)(寄存器)色彩;
·常數(shù)(寄存器)阿爾法;
·光柵化的色彩;
·光柵化的阿爾法;
·幾個有用的固定常數(shù);
·可編程常數(shù);
·復(fù)制到其它紋理色彩通道的紋理色彩分量(該特性對于點積、強度計算和色彩空間轉(zhuǎn)換是有用的);
·其它輸入。
可以對每個再循環(huán)光照模型獨立地指定到多路復(fù)用器656的輸入控制。在示例實施例中的多路復(fù)用器656的輸出是無符號的8-位值或有符號的10位值,但是其它實施可以提供不同的精度。
示例混合計算/操作
圖10示出示例混合/濃淡操作符658。在示例實施例中,再循環(huán)光照模型602可以對每個級執(zhí)行計算,可以把該計算歸納為
R=(D+(-1)sub*((1-C*A+C*B)+bias<<shift
在示例實施例中的計算塊664中的變元A、B、和C選擇自
·4個色彩寄存器;
·光柵化的色彩(散射或鏡面);
·紋理;
·上述色彩的阿爾法分量或所定義的常數(shù);
·固定常數(shù);
·可編程常數(shù)。
在示例實施例中,計算塊664在值A(chǔ)、B和C上操作。把計算塊664的輸出通過任意的否定塊666傳遞,并通過加法器668與“D”多路復(fù)用器656(D)的輸出和一個任意的偏置值相加。可以通過定標(biāo)塊670對所產(chǎn)生的總和進行定標(biāo),并在存儲在寄存器660(1)、660(2)、660(3)、660(4)中任何一個之前通過箝位塊672
箝位,用于輸出和/或接連著進一步進行混合。
在示例實施例中,定標(biāo)塊670可以通過0.5、1、2或4進行定標(biāo)—但是其它實施可以提供其它定標(biāo)系數(shù)。箝位塊672可以支持許多不同的箝位模式。在一個實施例中,輸入值A(chǔ)、B、C可以是在一個實施中的無符號8-位值,輸入值D可以是有符號的10-位值,而箝位塊672的輸出可以是有符號的10-位值。
圖11示出再循環(huán)光照模型602的更詳細(xì)的實施。在該例子中,通過硬件乘法器664b、664c、“1-f”補碼塊664a和加法器664d實施計算塊664。在該例子中,乘法器664b使B和C輸入相乘,并把所產(chǎn)生的積提供給加法器664d的一個輸入。其它乘法器664c使A輸入和值(1-C)相乘,并把它所產(chǎn)生的積提供給加法器664d的其它輸入。該硬件計算在圖10中示出的通過塊664計算的公式。把加法器664提供的所產(chǎn)生的積輸出到符號反向塊666。
在圖11所示的實施例中,提供附加比較器674,以對多路復(fù)用器656輸出A和D進行比較,使用比較的結(jié)果在多路復(fù)用器656輸出C和0值之間進行選擇(通過多路復(fù)用器676)。在數(shù)據(jù)路徑中提供附加的多路復(fù)用器678,以在符號操作符666和多路復(fù)用器676的輸出(即,比較操作的結(jié)果)之間進行選擇。通過在一個再循環(huán)級中執(zhí)行所有混合計算和比較結(jié)果操作,這種比較可以節(jié)省再循環(huán)級。在示例實施例中的比較器674可以同時比較一、二或三個通道,以提供8-位、16-位或24-位比較。
在圖11中示出的示例實施例中,定標(biāo)操作670提供的定標(biāo)具有任何下述因子;
·0.5
·1;
·2
·4。
在示例實施例中,通過多路復(fù)用器670e選擇不同的定標(biāo)塊670a、670b、670c、670d,用于提供給箝位塊672。
在圖11中示出的示例實施例中,在通過塊664計算之前,可以通過“色彩交換”塊680任意地傳遞到多路復(fù)用器656的輸入??梢允褂蒙式粨Q塊680把每個色彩分量(R、G或B)廣播到其它兩個色彩分量。見圖12A、12B。例如,可以把這個特征使用于點積、強度計算和色彩空間轉(zhuǎn)換。
在圖11中示出的示例實施例包括對于固定和可編程常數(shù)的支持。在一個實施例中,使用常數(shù)選擇來選擇通過常數(shù)選擇寄存器確定的任意的常數(shù)值,所述常數(shù)選擇寄存器指定是否使用多個固定定義值之一或多個可編程色彩寄存器值之一。在混合操作中,這種可編程和固定常數(shù)提供了靈活性。在其它實施例中,可以使用較少的固定常數(shù)(例如,,1.0)作為替代。
例如,可以對諸如在DirectX 6.0或7.0的D3D中規(guī)定的不同的混合操作設(shè)置圖11的數(shù)據(jù)路徑。在示例實施例中,使用7個參數(shù)對再循環(huán)光照模型602混合級進行編程
·變元A;
·變元B;
·變元C;
·變元D;
·sub;
·bias;
·shift。
下面是一些混合操作的例子
SelectArg(選擇變元)
R=(0,0,0,D,0,0,0)=D
Modulate,Modulate2X,Modulate4X(調(diào)制,調(diào)制2X,調(diào)制4X)
R=(0,B,C,0,0,0,0)=B*C
把變元B和C的分量一起相乘??梢允褂?或4的定標(biāo)系數(shù)增加亮度
R=(0,B,C,0,0,0,1)=B*C*2
R=(0,B,C,0,0,0,2)=B*C*4
Add(加)
把變元的分量加在一起
R=(A,0,0,D,0,0,0)=A+D
AddSigned,AddSigned2X(有符號加,有符號加2X)
使變元的分量帶有-0.5偏置而相加,使值的有效范圍從-0.5到0.5。可以把結(jié)果乘以2而增加亮度
R=(A,0,0,D,0,-0.5,0)=A+D-0.5
R=(A,0,0,D,0,-0.5,1)=(A+D-0.5)*2
Subtract(減)
從第一變元的分量減去第二變元的分量
R=(A,0,0,D,1,-0,0)=D-A
AddSmooth(加平滑)
對于輝光、圖象模糊等數(shù)學(xué)地校正基本加操作。然而,它可能突然飽和而導(dǎo)致人工制造輪廓??雌饋磔^好而數(shù)學(xué)的正確性較差的方法是減去積
R=(A,0,C,C,0,0,0)=C+A*(1-C)
BlendDiffuseAlpha,BlendTextureAlpha,BlendFactorAlpha,BlendCurrentAlpha(混合散射阿爾法,混合紋理阿爾法,混合因子阿爾法,混合當(dāng)前阿爾法)
執(zhí)行線性混合,所使用的阿爾法來自來自頂點(CDMA光柵化的阿爾法)的內(nèi)插阿爾法,來自當(dāng)前紋理的阿爾法(C=紋理阿爾法),參數(shù)阿爾法(C=常數(shù)阿爾法),和/或當(dāng)前色彩的阿爾法(C=計算的阿爾法)
R=(A,B,CA,0,0,0,0)=A*(1-CA)+B*CA
BlendTextureAlphaPM(混合預(yù)—乘的紋理阿爾法)
具有預(yù)—乘阿爾法的線性混合
R=(A,0,CA,D,0,0,0)=D+A*(1-CA)
ModulateAlpha_AddColor(調(diào)制阿爾法_加色彩)
用第一變元的阿爾法調(diào)制第二變元并把結(jié)果加到第一變元。
RGBA=(0,BA,CRGB,BRGB,0,0,0)=BRGB*CRGB
ModulateColor_AddAlpha(調(diào)制色彩_加阿爾法)
調(diào)制變元,然后加第一變元的阿爾法
RGBA=(0,BRGB,CRGB,BA,0,0,0)=BRGB*CRGB+BA
ModulateInvAlpha_AddColor(調(diào)制反向阿爾法_加色彩)
相似于ModulateAlpha_AddColor,但是它使用第一變元的阿爾法的反量
RGBA=(ARGB,0,CA,CRGB,0,0,0)=(1-CA)*ARGB+CRGB
ModulateInvColor_AddAlpha(調(diào)制反向色彩_加阿爾法)
相似于ModulateColor_AddAlpha,但是它使第一色彩的反量
RGBA=(ARGB,0,CA,CRGB,0,0,0)=(1-CA)*ARGB+CRGB
ModulateInvColor_AddAlpha(調(diào)制反向色彩_加阿爾法)
相似于ModulateColor_AddAlpha,但是它使第一色彩的反量
RGBA=(ARGB,0,CRGB,CA,0,0,0)=(1-CRGB)*ARGB+CA
Specular Color and Texture(鏡面色彩和紋理)
除了上述操作之外,通過使用多個級可以得到更復(fù)雜的混合。例如
最終色彩=鏡面紋理*鏡面色彩+散射紋理*散射色彩
使用兩級可以實施,如
1. R=(0,TSPEC,CSPEC,0,0,0,0)=TSPEC*CSPEC
2. R=(0,TDIFF,CDIFF,0,0,0,0)=TSPEC*CSPEC+TDIFF*CDIFF
Embossing(浮雕)
這個例子用于浮雕
最終色彩=(散射色彩+常數(shù)*(法線1-法線2))*材料紋理
使用3級可以實施,如
1. R=(0,TNORM1,常數(shù),CDIFF,0,0,0)=TNORM1*常數(shù)+CDIFF
2. 1.R=(0,TNORM2,常數(shù),R,1,0,0)=(TNORM1-TNORM2)*常數(shù)+CDIFF
3. R=(R,0,TMAT,0,0,0,0,0)=((TNORM2)*常數(shù)+CDIFF)*TMAT
Detail Texture(紋理細(xì)節(jié))
這個例子用于紋理細(xì)節(jié)。不同的紋理具有0.5的偏置。
最終色彩=基本紋理+(不同紋理A-0.5)+(不同紋理B=0.5)
可以實施,如
1. R=(0,0,0,TBASE,0,0,0)=TBASE
2. R=(TDIFFA,0,0,R,0,0,0)=TBASE+TDIFFA-0.5
3. R=(TDIFFB,0,0,R,0,0,0)=TBASE+TDIFFA-0.5+TDIFFB-0.5
在示例實施例中,箝位塊672可以提供下面任何箝位模式
阿爾法功能支持
示例實施例再循環(huán)光照模型602支持不同的阿爾法功能。注意在示例實施例中,阿爾法比較操作不是再循環(huán)級的一部分,而是在完成再循環(huán)之后執(zhí)行的。見圖11。在示例實施例中,阿爾法功能把源阿爾法和使用任何一個下述操作的基準(zhǔn)阿爾法進行比較,所述各種操作如下
·always(始終);
·never(從不);
·not equal(不等于);
·equal(等于);
·less(小于);
·greater than or equal(大于或等于);
·less or equal(小于或等于);
·greater than(大于)。
在示例實施例中組合兩種功能,使用
·AND(與);
·OR(或);
·XOR(異或);
·XNOR(異或非);
如果在象素四邊形中所有有效象素的阿爾法測試都失敗,則廢棄四邊形,因此不更新幀緩沖器702。下面是一些例子說明可以實施些什么
例1
Asrc>Aref0 AND Asrc<Aref1
例2
Asrc>Aref0 OR Asrc<Aref1
可以使用再循環(huán)光照模型602的阿爾法功能(例如,在與非—再循環(huán)阿爾法比較的組合中)以提供模擬濃淡樹的透明樹。尤其,可以使用再循環(huán)光照模型602的阿爾法功能來提供在M個阿爾法輸入上的N個邏輯阿爾法操作,其中N和M可以是任何整數(shù)。例如,可以使用阿爾法比較和阿爾法邏輯操作的組合來提供非光真實感效果(諸如卡通輪廓)。例如,見Law等人的題為“在圖形系統(tǒng)中用于提供非—光真實感卡通輪廓的方法和設(shè)備”(代理人提要723-973)的共同受讓的未定美國專利申請第
號和2000年8月23日提出的它的相應(yīng)的臨時申請第60/226,915號,在此引用該兩專利申請作為參考。
示例Z紋理
通過使用紋理映射修改屏幕z值,使光照模型602用深度支持光標(biāo)(sprites)。一旦啟動,光照模型602把4個z值發(fā)送到象素核心程序700,每4個代替基準(zhǔn)z和兩個斜率。通過把z紋理象素加到4個基準(zhǔn)z或用z紋理象素代替基準(zhǔn)z而得到每個z值。見上面參考的共同一受讓的z紋理專利申請。
圖13示出包括光照模型602的紋理環(huán)境單元600的示例方框圖。在示例實施例中的紋理環(huán)境單元600除了包括命令部分694和光照模型602之外還包括圖象模糊操作符690和圖象模糊混合器操作符692。有關(guān)塊690和692的操作的詳述,見Law等人的題為“在圖形系統(tǒng)中用于改進圖象模糊效果的方法和設(shè)備”(代理人參考號723-954)的共同受讓的未定美國專利申請第
號和2000年8月23日提出的它的相應(yīng)的臨時申請第60/227,032號,在此引用該兩專利申請作為參考。
用于多紋理的再循環(huán)光照模型的使用例子
圖15示出可以怎樣地把再循環(huán)光照模型602使用于多紋理。在示例實施例中,再循環(huán)紋理單元500能夠顯示相應(yīng)于給定表面的紋理映射輸出的序列。例如,它可以在一個實施中把多達(dá)8個不同的紋理映射到同一原始表面。再循環(huán)紋理單元500可以提供產(chǎn)生紋理映射輸出的相應(yīng)序列的直接(和間接)紋理操作。在示例實施例中,再循環(huán)光照模型602在每個映射紋理輸出變成可得到時接收每個映射紋理輸出,并把映射紋理輸出和原始表面輸出/阿爾法信息(從通過變換單元300執(zhí)行的照明操作得到的)和/或其它以前產(chǎn)生的紋理映射進行混合。再循環(huán)光照模型602在流水線方式中執(zhí)行它的混合操作,以致再循環(huán)光照模型602混合紋理單元500以前產(chǎn)生的紋理輸出的同時,紋理單元正在產(chǎn)生在序列中的又一個紋理輸出。
在示例實施例中,再循環(huán)光照模型602保留中間混合結(jié)果,以待進一步與再循環(huán)紋理單元500提供的另外的信息進行混合。紋理單元500產(chǎn)生在紋理映射輸出的序列中最后一個紋理之后不久,再循環(huán)光照模型602可以執(zhí)行相應(yīng)的最終混合操作,并通過用于深度緩沖的圖象模糊塊600b輸出混合結(jié)果,最后與幀緩沖器702的內(nèi)容進行色彩混合,并顯示。
圖16示出使用在圖6中示出的再循環(huán)光照模型602的示例多紋理過程。在圖16的示例無一限制例子中,變換單元300產(chǎn)生紋理坐標(biāo)數(shù)據(jù)(塊1002)。然后系統(tǒng)50使所產(chǎn)生的紋理坐標(biāo)數(shù)據(jù)與特定紋理映射相關(guān)聯(lián),并且紋理單元500從紋理映射(塊1004)取得相應(yīng)的紋理象素(紋理數(shù)據(jù))。同時,配置再循環(huán)光照模型602以執(zhí)行預(yù)定的混合/濃淡操作,并把所得到的紋理數(shù)據(jù)提供給用于混合(塊1008)的再循環(huán)光照模型602。再循環(huán)光照模型602可以把所取得的紋理數(shù)據(jù)與某些其它輸入和/或所保留的以前的結(jié)果(塊1010)進行混合。例如,再循環(huán)光照模型602可能把所取得的紋理數(shù)據(jù)與通過照明塊300e(相應(yīng)于在每一頂點的基礎(chǔ)上在多邊形上執(zhí)行Gouraud濃淡操作)產(chǎn)生的色彩或渾濁度進行混合。在某些情況中,混合操作1010可能進行把所取得的紋理數(shù)據(jù)與以前取得的紋理數(shù)據(jù)混合的操作。有時,混合操作1010可能在所取得的紋理數(shù)據(jù)上執(zhí)行變換,或可能進行傳遞所取得的紋理數(shù)據(jù)的簡單動作,以把所取得的紋理數(shù)據(jù)存儲在再循環(huán)光照模型602中,用于接連著的混合操作。
再循環(huán)光照模型602臨時存儲混合操作1010的輸出作為中間結(jié)果(塊1012)。然后整個過程可以再循環(huán)任何次數(shù)以取得紋理數(shù)據(jù)的混合附加組。在示例實施例中,在紋理單元500執(zhí)行塊1004、1008的同時,再循環(huán)光照模型602可以執(zhí)行塊1010、1012,以取得附加的紋理映射。
圖17示出使用再循環(huán)光照模型602的示例多—紋理流水線。圖17示出,每次再循環(huán)光照模型602再循環(huán),它就提供附加的受獨立控制的混合級,所述混合級能夠把新數(shù)據(jù)組與以前混合操作提供的任何或所有混合結(jié)果進行混合。
因為示例較佳實施例系統(tǒng)50是一個實時繪制系統(tǒng),再循環(huán)紋理單元500可以再循環(huán)的次數(shù)受到它相對于圖象幀之間的時間的每次再循環(huán)所取的時間量(例如,一秒的1/30或1/60)的限制。在一個實施例中,在單個繪制掃描中再循環(huán)紋理單元500可以執(zhí)行的再循環(huán)的總次數(shù)可能是8次,雖然不同的實施可能提供不同的再循環(huán)次數(shù)。在示例實施例中,再循環(huán)光照模型602可以再循環(huán)的次數(shù)約等于紋理單元500可以再循環(huán)次數(shù)的兩倍??梢允褂迷傺h(huán)光照模型602提供的附加的再循環(huán),以執(zhí)行許多加強型和有趣的圖象效果,例如包括圖象模糊、z紋理、環(huán)境映射、浮雕、紋理細(xì)節(jié)和其它圖象效果。在紋理單元500不能使級得到紋理的期間,最好把輸入到再循環(huán)光照模型602的紋理設(shè)置成零。
圖18示出示例控制步驟,用于控制再循環(huán)光照模型602以提供多—紋理操作。在該特定例子中,主處理器110可以指定許多不同的頂點214點亮和/或通過變換單元300變換。變換單元300可以產(chǎn)生供紋理單元500應(yīng)用的合適的紋理坐標(biāo),而光柵化器400可以根據(jù)照明計算使頂點光柵化??梢栽诟鶕?jù)許多紋理映射504的一系列紋理映射操作中使用如此產(chǎn)生的紋理坐標(biāo)??梢园堰@些紋理映射結(jié)果順序地提供給許多順序的再循環(huán)光照模型602級,以提供多紋理混合。
示例寄存器接口
圖19提供寄存器內(nèi)容的詳細(xì)示例定義。下面進一步示出在圖19中示出的各種寄存器的更詳細(xì)的說明
寄存器 名稱格式說明
gen_mode ntev 4 指定當(dāng)前紋理級計數(shù)(1-16)。
tev_color_env_idest 2 指定目的地寄存器
shift 2 當(dāng)在模擬混合模式中時,這個字段
指定使輸出移位的量
當(dāng)在比較模式中時,(偏置=3,僅 revB),字段指定比較的大 小和分量選擇。
clamp 1 指定箝位操作(見第9部分)。
sub 1 當(dāng)在模擬混合模式中時,這個字段指定混合結(jié)果的加或減
當(dāng)在比較模式中時,(偏置=3,僅revB),字段指定比較的大小和分量選擇
bias 2 指定偏置的值。
clamp 1 指定箝位操作(見第9部分)。sub 1 指定混合結(jié)果的加或減。
當(dāng)在比較模式中時,(偏置=3,僅revB),段指定比較功能
bias 2 指定偏置的值。
sela 3 指定變元A
selb 3 指定變元B,selb與sela相似。
selc 3 指定變元C,selc與sela相似。
seld 3 指定變元D,seld與sela相似。
tsel 2 指定紋理色彩交換模式。
(rev A)
sela 4 指定變元A。
selb 4 指定變元B,selb與sela相似。
selc 4 指定變元C,selc與sela相似。
seld 4 指定變元D,seld與sela相似。
tev_color_env_i dest 2 指定目的地寄存器
shift 2 指定移位量
當(dāng)在比較模式中時,(偏置=3,僅revB), 字段指定比較的大小和分量選擇
mode 2 指定箝位模式(見第9部分)。僅Rev.A.!
(RevA)
tsel,2 指定紋理和光柵化器色彩交換模式。
rsel(RevB)
tev_r,as2.8 指定紋理當(dāng)前色彩值。
registerl_i
tev_g,bs2.8 指定紋理當(dāng)前色彩值。
registerh_i
tev_kr,ka 0.8指定不變色彩值。該特性僅施加于rev B。
kregisterl_i
tev_kg,kb 0.8指定不變色彩值。該特性僅施加于rev B。
kregisterh_i
tev_r,as2.8 指定紋理當(dāng)前色彩值。
registerl_i
tev_range_中心 10指定用于距離調(diào)節(jié)的屏幕的x中心。
adj_c
emb1 啟動距離調(diào)節(jié)。
rev_range_adj_k r2k,u4.8 指定距離調(diào)節(jié)功能。
r2k+1
tev_fog_param_0 a s11e8 指定屏幕的“a”參數(shù)到眼睛空間轉(zhuǎn)換函數(shù)
tev_fog_param_1 b-mag u0.24指定屏幕的“b”參數(shù)到眼睛空間轉(zhuǎn)換函數(shù)
tev_fog_param_2 b-shf 5 指定預(yù)—偏移屏幕z的量。這等效于“b”參數(shù)的指數(shù)+1的值。
tev_fog_param_3 fsel 3 指定圖象模糊類型如下
proj 1 指定我們是否有透視的或正交的投影。
c s11e8 指定在距離調(diào)節(jié)之后從眼睛—空間Z減去的量。
tev_fog_r,g,b 8 指圖象模糊色彩值。
color
tev_alphafunc op03 指定在什么情況下強迫象素的阿爾法0為1。
op13 指定阿爾法操作1。相似于op0。
loicc 2 指定在組合兩個阿爾法操作中的邏輯操作。
a0 8參考阿爾法0。
a1 8參考阿爾法1。
tev_env_z_0 zoff u24.0指定使用在z紋理中的z偏置。
tev_env_z_1 type 2 指定z紋理類型。
op 2 啟動z紋理。
tev_ksel_i kcsel,5 對16個狀態(tài)中的每一個選擇不變色彩/定標(biāo)。僅把該特性施加于rev B。
(Rev b)kasel
xr,xg,指定4個交換模式中的一個。在每級期間,“tsel”選擇紋理的
xb,xa,交換模式,而“rsel”選擇光柵化色彩的交換模式。
在復(fù)位時,使這些值初始化如下(用于revA兼容性)
下面是示例應(yīng)用程序編程接口調(diào)用
GXSetTevOp
說明這是一個方便的功能,設(shè)計成使紋理環(huán)境單元的初始編程更容易。這個宏調(diào)用帶有預(yù)定義變元的GXSetTevColorIn、GXSetTevColorOp、GXSetTevAlphaIn和GXSetTevAlphaOp來實施熟悉的紋理組合功能。
為了啟動再循環(huán)光照模型級的接連著的組,應(yīng)用程序應(yīng)該調(diào)用GXSetNumTevStages功能。
在下面的表中,Cv是級的輸出色彩,Cr是以前級的輸出色彩,而Ct是紋理色彩。Av是級的輸出阿爾法,Ar是以前級的輸出阿爾法,而At是紋理阿爾法。作為特殊情況,在第一再循環(huán)光照模型級處使用光柵化色彩(GX_CC_RASC)作為Cr和使用光柵化阿爾法(GX_CA_RASC)作為Ar,因為在那里沒有以前級。
變元id=級識別符,mode=預(yù)定色彩組合模式。
示例用途
void GXSetTevOp(GXTevStageID id,GXTevMode mode);
GXTevStageID
經(jīng)計算的值
GX_TEVSTAGEO
GX_TEVSTAGE1
GX_TEVSTAGE2
GX_TEVSTAGE3
GX_TEVSTAGE4
GX_TEVSTAGE5
GX_TEVSTAGE6
GX_TEVSTAGE7
GX_TEVSTAGE8
GX_TEVSTAGE9
GX_TEVSTAGE10
GX_TEVSTAGE11
GX_TEVSTAGE12
GX_TEVSTAGE13
GX_TEVSTAGE14
GX_TEVSTAGE15
GX_MAX_TEVSTAGE
說明
紋理環(huán)境(再循環(huán)光照模型)級名稱。
GXTevMode
經(jīng)計算的值
GX_DECAL
GX_MODULATE
GX_REPLACE
GX_PASSCLR
GX_BLEND
說明設(shè)置紋理環(huán)境控制。
6XSetNumTevStages
說明
該功能啟動許多接連著的紋理環(huán)境(再循環(huán)光照模型)級。輸出象素色彩(在圖象模糊和混合之前)是最后級的結(jié)果。最后再循環(huán)光照模型級必須寫入寄存器GX-TEVPREV,見GXSetTevColorOp和GXSetTevAlphaOp。至少應(yīng)啟動一個再循環(huán)光照模型級。如果啟動Z-紋理,則在最后級上查找Z紋理,見GXSetZTexture.
使用GXSetTevOrder設(shè)置照明色彩、紋理坐標(biāo)和紋理映射與再循環(huán)光照模型級的關(guān)聯(lián)性。使用GXSetNumTexGens設(shè)置可得到的紋理坐標(biāo)數(shù)目。使用GXSetNumChans設(shè)置可得到的色彩通道數(shù)目。
GXInit將把nStages設(shè)置成1作為默認(rèn)值。
變元nStages
活動再循環(huán)光照模型級的數(shù)目。最小值是1,最大值是16。
示例用途void GXSetNumTevStages(u8 nStages);
GXSetTevColorIn
說明
這個功能設(shè)置紋理環(huán)境(再循環(huán)光照模型)色彩組合器單元的輸入操作數(shù)。輸入操作數(shù)a、b和c是RGB色彩的輸入操作數(shù),其中每個分量是無符號的8-位(0<=a,b,c<=255)。d輸入操作數(shù)是RGB色彩,其中每個分量是有符號的10-位輸入(-1024<=d<=1023)。
在輸入操作數(shù)是阿爾法值(GX_CC_A0、GX_CC_A1、GX_CC_A2、GX_CC_APREV、GX_CC_TEXA、GX_CC_RASA)的情況中,在3個色彩通道上重復(fù)阿爾法值(R=A、G=A、B=A)。
使用功能GXSetTevColorOp設(shè)置通過這個再循環(huán)光照模型級執(zhí)行的功能。
通過默認(rèn)值把這個級的輸出引導(dǎo)到寄存器GX-TEVPREV(見GXInit),但是可能通過GXSetTevColorOp直接設(shè)置。
也可以使用存儲再循環(huán)光照模型級的輸出所使用的寄存器作為輸入,GX_CC_C0、GX_CC_C1、GX_CC_C2、GX_CC_CPREV。你可以使用GXSetTevColor或GXSetTevColorS10對這些帶有不變色彩值的寄存器進行編程。
每個寄存器可以存儲無符號的8-位數(shù)或有符號的10-位數(shù)每分量(RGB)。如果選擇有符號的10-位數(shù)作為輸入a、b、或c,則把數(shù)縮短到8-位。不作出轉(zhuǎn)換該數(shù)的嘗試,簡單地廢棄最高有效位。
輸入操作數(shù)GX_CC_RASC和GX_CC_RASA是每一頂點照明公式的結(jié)果。輸入操作數(shù)GX_CC_TEXC和GX_CC_TEXA是這個級的紋理輸入。在通過設(shè)置操作數(shù)GX-TC_TEXRRR、GX-TC_TEXGGG或GX-TC_TEXBBB輸入之前,紋理色彩輸入GX_CC_TEXC可以使它的色彩分量進行交換。你可以選擇每再循環(huán)光照模型級的交換操作數(shù)之一。在示例實施例中,在同一級中使用GX-TC_TEXRRR和GX-TC_TEXGGG兩者是不合法的。
GXSetTevOrder與帶有特定色彩和紋理的光照模型級相關(guān)聯(lián)。
變元
示例用途
void GXSetTevColorIn(
GXTevStageID stage,
GXSetTevColorArg a,
GXSetTevColorArg b,
GXSetTevColorArg c,
GXSetTevColorArg d);
GXSetTevAlphaIn
說明
本功能對紋理環(huán)境(再循環(huán)光照模型)阿爾法組合器單元的一個級設(shè)置輸入操作數(shù)。輸入操作數(shù)a、b和c是無符號的8-位輸入(0<=a,b,c<=255)。d輸入操作數(shù)是有符號的10-位輸入(-1024<=d<=1023)。
每個光照模型級執(zhí)行下述功能
reg=(d(op)((1.0-c)*a+c*b)+bias)*scale;
由op(操作)、bias(偏置)和scale(定標(biāo))描述的操作是可以使用GXSetTevAlphaOp功能進行編程的。
通過默認(rèn)值引導(dǎo)該級的輸出到寄存器GX-TEVPASS(見GXInit),但是可能通過GXSetTevAlphaOp直接設(shè)置。根據(jù)通過GXSetTevClampMode設(shè)置的箝位模式,可以把結(jié)果箝位到兩個范圍,0到255或-1024到1023。當(dāng)輸入a、b和c是來自有符號的10-位數(shù)(以前再循環(huán)光照模型級的結(jié)果或輸入常數(shù))時,只使用8個最低有效位。不作出轉(zhuǎn)換該數(shù)的嘗試,簡單地廢棄較高位。
也可以使用存儲再循環(huán)光照模型級的輸出所使用的寄存器作為輸入,GX_CA_A0、GX_CA_A1、GX-CA_A2、GX_CC_APREV。你可以使用GXSetTevColor或GXSetTevColorS10對這些帶有常數(shù)阿爾法值的寄存器進行編程。
輸入操作數(shù)GX-CA-RASA是每一頂點照明公式的結(jié)果。輸入操作數(shù)GX_CA_TEXA是該級的紋理阿爾法輸入。你可以使用GXSetTevOrder選擇與這些輸入相當(dāng)?shù)纳屎图y理。
變元
示例用途
void GXSetTevAlphaIn(
GXTevStageID stage,
GXSetTevAlphaArg a,
GXSetTevAlphaArg b,
GXSetTevAlphaArg c,
GXSetTevAlphaArg d);
GXSetTevColorOp
說明
這個功能對紋理環(huán)境(再循環(huán)光照模型)單元的這個級的色彩組合器功能設(shè)置op、scale、bias和箝位操作。該功能還指定輸出寄存器,out_reg,它將包含色彩組合器功能的結(jié)果。色彩組合器功能為
out_reg=(d(op)((1.0-c)*a+c*b)+bias)*scale;
使用GXSetTevColorIn功能設(shè)置輸入?yún)?shù)a、b、c和d。輸入a、b和c是無符號的8-位輸入(0<=a,b,c<=255)。d輸入是有符號的10-位輸入(-1024<=d<=1023)。根據(jù)箝位啟動和當(dāng)前的箝位模式,結(jié)果out_reg也可以是有符號的10-位結(jié)果,見GXSetTevClampMode。
在所有再循環(huán)光照模型級中間共享再循環(huán)光照模型輸出寄存器。還可以使用再循環(huán)光照模型輸出寄存器作為不變色彩輸入,所以應(yīng)用程序應(yīng)該當(dāng)心地分配輸入和輸出寄存器,以致當(dāng)執(zhí)行特定的公式時不會發(fā)生碰撞。應(yīng)用程序必須輸出到在最后活動再循環(huán)光照模型級中的GX-TEVPREV。
功能GXSetTevOp提供較簡單的方法,根據(jù)預(yù)定義的公式名稱來設(shè)置GXSetTevColorIn和GXSetTevColorOp的參數(shù)。你不應(yīng)該混淆GXSetTevOp和GXSetTevColorIn/GXSetTevColorOp的用途。
GXSetTevOp作出有關(guān)輸出寄存器用途的某些假設(shè),即,GX-TEVPREV始終是輸出寄存器,并用于把以前再循環(huán)光照模型級的結(jié)果傳遞到下一個再循環(huán)光照模型級。
變元
示例用途
void GXSetTevColorOp(
GXTevStageID stage,
GXTevOp op,
GXTevBias bias,
GXTevScale scale,
GXBool clamp,
GXTevRegID out_reg);
GXSetTevAlphaOp
說明
這個功能對紋理環(huán)境(再循環(huán)光照模型)單元的這個級的阿爾法組合器功能設(shè)置op、scale、bias和箝位操作。該功能還指定輸出寄存器,out_reg,它將包含阿爾法組合器功能的結(jié)果。阿爾法組合器功能為
out_reg=(d(op)((1.0-c)*a+c*b)+bias)*scale;
使用GXSetTevAlphaIn功能設(shè)置輸入?yún)?shù)a、b、c和d。輸入a、b和c是無符號的8-位輸入(0<=a,b,c<=255)。d輸入是有符號的10-位輸入(-1024<=d<=1023)。根據(jù)箝位啟動和當(dāng)前的箝位模式,結(jié)果out_reg也可以是有符號的10-位結(jié)果,見GXSetTevClampMode。
你必須使用GXSetTevStages啟動接連號碼的再循環(huán)光照模型級。最后的活動再循環(huán)光照模型級把它的輸出寫入寄存器GX_TEVPREV。
變元
示例用途
void GXSetTevAlphaOp(
GXTevStageID stage,
GXTevOp op,
GXTevBias bias,
GXTevScale scale,
GXBool clamp,
GXTevRegID out_reg);
GXSetTevColor
說明
使用該功能設(shè)置在紋理環(huán)境(再循環(huán)光照模型)單元中的不變色彩寄存器之一。所有再循環(huán)光照模型級可用這些寄存器。使用這些寄存器中的至少一個把一個再循環(huán)光照模型級的輸出傳遞到在多紋理配置中的下一個級。應(yīng)用程序負(fù)責(zé)分配這些寄存器以致在使用中不發(fā)生碰撞。該功能可用設(shè)置無符號的8-位色彩。設(shè)置有符號的10-位色彩使用GXSetTexColorS10。
變元
id=輸出寄存器識別符。
color=不變色彩值。
示例用途void GXSetTevColor(GXTevRegID id,GXColor color);
GXSetTevColorS10
說明
使用該功能設(shè)置在紋理環(huán)境(再循環(huán)光照模型)單元中的不變色彩寄存器之一。所有再循環(huán)光照模型級可用這些寄存器。使用這些寄存器中的至少一個把一個再循環(huán)光照模型級的輸出傳遞到在多紋理配置中的下一個級。應(yīng)用程序負(fù)責(zé)分配這些寄存器以致在使用中不發(fā)生碰撞。
該功能啟動有符號的10-位數(shù)的色彩分量。設(shè)置無符號的8-位色彩(普通情況)使用GXSetTevColor。
變元
id=輸出寄存器識別符。
color=不變色彩值。每個色彩分量可以具有-1024到+1023的范圍。
示例用途void GXSetTevColorS10(GXTevRegID id,GXColorS10 color);
GXSetTevClampMode
說明
該功能設(shè)置在紋理環(huán)境(再循環(huán)光照模型)單元中的這個級的箝位模式。如在下面表中示出,解釋了GXSetTevColorOp和GXSetTevAlphaOp如何設(shè)置箝位控制的模式效應(yīng)。R是TEV級的結(jié)果色彩。
GXInit把模式設(shè)置成GX_TC_LINEAR。
級=Tev級識別符。
模式=箝位模式(可接受的值為GX_TC_LINEAR、GX_TC_GE、GX_TC_LE、GX_TC_EQ)。
示例用途void GXSetTevClampMode(
GXTevStageID stage,
GXTevClampMode mode);
GXSetAlphaCompare
說明
這個功能設(shè)置使用來自最后活動紋理環(huán)境(再循環(huán)光照模型)級的阿爾法輸出的阿爾法比較功能的參數(shù)。使用GXSetTevStages指定活動再循環(huán)光照模型級的數(shù)目。
在混合公式(見GXSetBlendMode)中可用使用阿爾法輸出來控制如何使源和目的(幀緩沖器)象素組合。
阿爾法比較操作是
alpha_pass=(alpha_src(comp0)ref0)(op)(alpha_src(comp1)ref1)
其中,alpha_src是來自最后活動再循環(huán)光照模型級的阿爾法。作為例子,你可以實施這些公式
alpha_pass=(alpha_src>ref0)AND(alpha_src<ref1)
或
alpha_pass=(alpha_src>ref0)0R(alpha_src<ref1)
可以在紋理之前或之后發(fā)生Z比較,見GXSetCompLoc。在紋理之前發(fā)生Z比較的情況下,僅根據(jù)Z測試寫入Z。如果Z測試和阿爾法測試兩者都通過,則寫入色彩。
當(dāng)Z比較發(fā)生在紋理之后時,如果Z測試和阿爾法測試兩者都通過,則寫入色彩和Z。當(dāng)使用紋理制作需要正確地Z緩沖的剪切形狀(象廣告牌樹)時,你必須配置流水線使之在紋理之后Z緩沖。
變元
comp0=比較子功能0。
ref0=子功能0的基準(zhǔn)值,8-位。
op=組合子功能0和子功能1的操作??山邮艿闹禐镚X_AOP_AND,GX_AOP_OR,
GX_AOP_XOR,GX_AOP_XNOR。
comp1=比較子功能1。
ref1=子功能1的基準(zhǔn)值,8-位。
示例用途
void GXSetAlphaCompare(
GXCompare comp0,
u8ref0,
GXAlphaOp op,
GXCompare comp1,
u8ref1);
GXSetTevOrder
說明
這個功能指定可用于作為到這個紋理環(huán)境(再循環(huán)光照模型)級的輸入的紋理和光柵化色彩。使用GXSetTexCoordGen功能從輸入屬性產(chǎn)生紋理坐標(biāo)coord,并使用來查找以前通過GXLoadTexObj裝載的紋理映射。還指定這個級的光柵化色彩。色彩是受到GXSetChanCtrl控制的每一頂點照明的結(jié)果。
注意,這個功能不啟動再循環(huán)光照模型級。為了啟動接連著編號的再循環(huán)光照模型級,在級GX_TEVSTAGE0處使用GXSetNumTevStages功能。
每個再循環(huán)光照模型即的操作是獨立的。色彩操作受到GXSetTevColorIn和GXSetTevColorOp的控制。阿爾法操作受到GXSetTevAlphaIn和GXSetTevAlphaOp的控制。
使用GXSetNumTexGens設(shè)置所有活動再循環(huán)光照模型級可用的紋理坐標(biāo)數(shù)目。使用GXSetNumChans設(shè)置所有活動再循環(huán)光照模型級可用的色彩通道數(shù)目?;顒釉傺h(huán)光照模型級不應(yīng)該參照比所產(chǎn)生的紋理坐標(biāo)或色彩更多的紋理坐標(biāo)或色彩。
使用GXSetTevOrder可以把單個紋理坐標(biāo)廣播到許多紋理,只要紋理是相同大小的
GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD0,GX_TEXMAP0,GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD0,GX_TEXMAP1,GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD0,GX_TEXMAP2,GX-COLOR1A1);
GXSetTevOrder(GX_TEVSTAGE3,GX TEXCOORD0,GX_TEXMAP3,GX-COLOR0A0);
你也可以使用在任何再循環(huán)光照模型級中產(chǎn)生的任何紋理坐標(biāo)
GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD3,GX_TEXMAP0,GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD2,GX_TEXMAP1,GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD1,GX_TEXMAP2,GX-COLOR1A1);
GXSetTevOrder(GX_TEVSTAGE3,GX_TEXCOORD0,GX_TEXMAP3,GX-COLOR0A0);
如果在再循環(huán)光照模型級中沒有使用紋理,則把coord和map設(shè)置成NULL(零)
GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD2,GX_TEXMAP0,GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD_NULL,GX_TEXMAP_NULL,
GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD1,GX_TEXMAP2,GX-COLOR1A1);
GXSetTevOrder(GX_TEVSTAGE3,GX_TEXCOORD0,GX_TEXMAP3,GX-COLOR0A0);
如果在再循環(huán)光照模型級中沒有使用色彩,則把color設(shè)置成NULL
GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD3,GX_TEXMAP0,GX-COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD2,GX_TEXMAP1,
GX-COLOR_NULL)
GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD1,GX_TEXMAP2,GX-COLOR1A1);
GXSetTevOrder(GX_TEVSTAGE3,GX_TEXCOORD0,GX_TEXMAP3,GX-COLOR0A0);
GXSetTevOrder將對根據(jù)在功能調(diào)用中的紋理映射的大小通過GXSetTExCoordGen產(chǎn)生的歸一化紋理坐標(biāo)進行定標(biāo)。為了這個原因,只可以把紋理坐標(biāo)廣播到多個紋理映射,如果,而且僅在如果映射是相同大小的。在某些情況中,你可能想產(chǎn)生具有某個定標(biāo)的紋理坐標(biāo),但是禁止紋理查找(當(dāng)產(chǎn)生用于間接凸出映射的紋理坐標(biāo)時產(chǎn)生這種情況)。為了實現(xiàn)這個,使用GX-TEXMAP_DISBLE標(biāo)志
GXSetTevOrder(GX_TECSTAGE1,GX_TEXCOORD0,GX_TEXMAP3
GX_TEXMAP_DISBLE,GX_COLOR_NULL);
這將使用GX-TEXMAP3對GX_TEXCOORD0進行定標(biāo),但是禁止查找GX-TEXMAP3。
GXInit描述默認(rèn)再循環(huán)光照模型排序。
變元
stage=再循環(huán)光照模型級識別符(ID)。
coord=紋理坐標(biāo)識別符。
map=紋理映射識別符。
color=色彩通道。可接收的值是GX_COLOR0A0,GX_COLOR1A1,和GX_COLOR_NULL。
示例用途
void GXSetTevOrder(
GXTevStageID stage,
GXTexCoordID coord,
GXTexMapID map,
GXChannelID color);
例子
本頁示出紋理環(huán)境(TEV)設(shè)置的某些取樣。
一個光柵化色彩
例如帶有頂點色彩的多邊形
例如頂點照明
這種配置通過使用PASSCLR操作直接傳遞光柵化色彩。不使用紋理。
//一個光柵化色彩
//假設(shè)通道COLOR0A0具有照亮色彩。
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD_NULL,
GX TEXMAP NULL,
GX COLOR0A0);
GXSetTevOp(GX_TEVSTAGE0,GX_PASSCLR);
一個紋理
兩個簡單的紋理映射
這種配置用于直接顯示紋理色彩。沒有光柵化色彩可以使用。
//一個紋理
//應(yīng)該把紋理裝載到GX_TEXMAP0。
//應(yīng)該把合適的texcoord(紋理坐標(biāo))產(chǎn)生設(shè)置到GX_TEXCOORD0。
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD0,
GX_TEXMAP0,
GX_COLOR_NULL);
GXSetTevOp(GX_TEVSTAGE0,GX_REPLACE);
通過光柵化色彩調(diào)制的一個紋理
例如照亮材料紋理
這種配置使用MODULATE(調(diào)制)操作。
//通過光柵化色彩調(diào)制的一個紋理
//假定通道COLOR0A0具有照亮色彩。
//應(yīng)該把紋理裝載到GX_TEXMAP0。
//應(yīng)該把合適的texcoord產(chǎn)生設(shè)置到GX_TEXCOORD0。
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD0,
GX_TEXMAP0,
GX_COLOR_0A0);
GXSetTevOp(GX_TEVSTAGE0,GX_MODULATE);
重疊在光柵化色彩上的一個紋理
例如在散射照亮表面上的高亮度映射
例如在照亮表面上的投影陰影
這種配置使用DECAL操作。紋理應(yīng)該包含將用于進行混合的阿爾法值。
//通過光柵化色彩調(diào)制的一個紋理
//假定通道COLOR0A0具有照亮色彩。
//應(yīng)該把紋理裝載到GX_TEXMAP0。
//應(yīng)該把合適的texcoord產(chǎn)生設(shè)置到GX_TEXCOORD0。
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD0,
GX_TEXMAP0,
GX_COLOR_0A0);
GXSetTevOp(GX_TEVSTAGE0,GX_DECAL);
不變色彩
這種配置不使用來自照明單元的輸出也不使用任何紋理。
//來自TEV寄存器的不變色彩
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
GX_COLOR_NULL);
GXSetTevIn(//output=Register0(輸出=寄存器0)
GX_CC_ZERO,
GX_CC_ZERO,
GX_CC_ZERO,
GX_CC_CO);
GXSetTevColorOp(
GX_TEVSTAGE0,
GX_TEV_ADD,
GX_TB_ZERO,
GX_CS_SCALE_1,
GX_DISABLE,
GX_TEVPREV);
GXSetTevColor(GX_TEVREG0,constColor);
兩個光柵化色彩相加
例如散射照亮色彩+鏡面照亮色彩
沒有使用紋理。通過使用PASSCLR操作使第一級傳遞第一光柵化色彩。第二級使兩個色彩相加,其中需要細(xì)節(jié)的設(shè)置。
//兩個光柵化色彩相加
//將使用兩個色彩通道COLOR0/COLOR1。
GXSetNumTevStages(2);
//級0簡單地傳遞光柵化色彩。
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
GX_COLOR0A0);
GXSetTevOp(GX_TEVSTAGE0,GX_PASSCLR);
//級1加第二色彩并從以前級輸出。
GXSetTevOrder(
GX_TEVSTAGE1,
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
GX_COLOR0A0);
GXSetTevColorIn(//output(輸出)=RASC+CPREV
GX_TEVSTAGE1,
GX_CC_ZERO,
GX_CC_RASC,
GX_CC_ONE,
GX_CC_CPREV);
GXSetTevColorOp(
GX_TEVSTAGE1,
GX_TEV_ADD,
GX_TB_ZERO,
GX_CS_SCALE_1,
GX_ENABLE,
GX_TEVPREV);
GXSetTevClampMode(GX_TEVSTAGE1,GX_TC_LINEAR);
光柵化色彩和阿爾法相加
例如散射照亮色彩+在阿爾法通道中處理的鏡面照亮色彩
如果允許鏡面色彩僅為白色,你可以使用用于鏡面照亮色彩的阿爾法通道,將把鏡面照亮色彩廣播到TEV級上的每個RGB分量。由于這僅需要一級,我們可以得到比使用兩個通道更佳的填充—速率。如果不保留阿爾法用于其它用途,則可以使用本方法。
//光柵化色彩和阿爾法相加
//可以獨立地處理Color0/Alpha0。
GXSetNumTevStages(1);
GXSetTevOrder(
GX_TEVSTAGE0,
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
GX_COLOR0A0);
GXSetTevColorIn(//output(輸出)=RASC+RASA
GX_TEVSTAGE0,
GX_CC_ZERO,
GX_CC_RASA,
GX_CC_ONE,
GX_CC_RASC);
GXSetTevColorOp(
GX_TEVSTAGE0,
GX_TEV_ADD,
GX_TB_ZERO,
GX_CS_SCALE_1,
GX_ENABLE,
GX_TEVPREV);
GXSetTevClampMode(GX_TEVSTAGE0,GX_TC_LINEAR);
其它示例兼容實施例
可以用不同于上述家用視頻游戲控制臺配置來實施上述系統(tǒng)50的某些部件。例如,可以在模仿系統(tǒng)50的不同配置的平臺上或其它與之兼容的設(shè)備上運行為系統(tǒng)50寫的圖形應(yīng)用程序和其它軟件。如果其它平臺可以成功地仿真、模擬和/或提供系統(tǒng)50的某些或全部硬件和軟件資源,則其它平臺將能夠成功地執(zhí)行軟件。
作為一個例子,仿真器可以提供與系統(tǒng)50的硬件和/或軟件配置(平臺)不同的硬件和/或軟件配置(平臺)。仿真器系統(tǒng)可以包括軟件和/或硬件部分,這些軟件和/或硬件部分模擬系統(tǒng)(所述應(yīng)用程序是為該系統(tǒng)寫的)的軟件和/或硬件部分。例如,仿真器系統(tǒng)可以包括諸如個人計算機之類的一般用途數(shù)字計算機,它執(zhí)行模擬系統(tǒng)50的硬件和/或軟件的軟件仿真程序。
現(xiàn)在某些一般用途數(shù)字計算機(例如,IBM或MacIntosh個人計算機和兼容機)配備有3維圖形卡,這些3維圖形卡提供符合DirectX或其它標(biāo)準(zhǔn)3維圖形命令A(yù)PI的3維圖形流水線。還可以使它們配備有立體聲聲卡,這些聲卡根據(jù)聲音命令的標(biāo)準(zhǔn)組提供高質(zhì)量的立體聲。這種運行仿真軟件的配備多媒體硬件的個人計算機可以具有足夠的性能來接近系統(tǒng)50的圖形和聲音性能。仿真軟件控制在個人計算機平臺上的硬件資源,以模擬游戲編程員為之編寫游戲軟件的家用游戲控制平臺的處理、3維圖形、聲音、外圍設(shè)備和其它能力。
圖20A示出全面的示例仿真過程,所述過程使用主機平臺1201、仿真器部分1303和可執(zhí)行在存儲媒體62上提供的二進制圖象的游戲軟件。主機1201可以是一般用途或?qū)iT用途數(shù)字計算裝置,諸如個人計算機、視頻游戲控制臺或任何帶有足夠計算能力的其它平臺。仿真器1030可以是運行在主機平臺1201上的軟件和/或硬件,并提供命令、數(shù)據(jù)和其它信息從存儲媒體62到一個可以通過主機1201處理的形式的實時轉(zhuǎn)換。例如,仿真器1303從存儲媒體62取得打算由系統(tǒng)50執(zhí)行的“源”二進制—圖象程序指令,并把這些程序指令轉(zhuǎn)換成可以通過主機120l執(zhí)行或處理的目標(biāo)格式。
作為一個例子,在所寫入的軟件是為了在使用IBM PowerPC或其它專用處理器的平臺上執(zhí)行,而主機1201是使用不同(例如,Intel)處理器的個人計算機的情況下,仿真器1303從存儲媒體62取得一個或一個序列的二進制—圖象程序指令,并把這些程序指令轉(zhuǎn)換成一個或多個等效的Intel二進制—圖象程序指令。仿真器1303還取得和/或產(chǎn)生打算供圖形和音頻處理器114處理的圖形命令和音頻命令,并把這些命令轉(zhuǎn)換成一個格式或數(shù)個格式,這些格式可以通過在主機1201上可得到的硬件和/或軟件圖形和音頻處理資源進行處理。作為一個例子,仿真器1303可以把這些命令轉(zhuǎn)換成可以通過主機1201的專用圖形和/或聲音硬件(例如,使用標(biāo)準(zhǔn)DirectX、OpenGL和/或聲音API)處理的命令。
用于提供上述視頻游戲系統(tǒng)的某些或全部特性的仿真器1303還可以配備有圖形用戶接口(GUI),所述接口使使用仿真器運行的游戲的各種任選和屏幕模式的選擇簡單化或自動化。在一個例子中,這種仿真器1303可以進一步包括比原來打算供所述主機平臺用的軟件具有增強的功能。
圖20B示出適于與仿真器1303一起使用的仿真主機系統(tǒng)1201。系統(tǒng)1201包括處理單元1203和系統(tǒng)存儲器1205。系統(tǒng)總線1207把包括系統(tǒng)存儲器1205的各種系統(tǒng)部件耦合到處理單元1203。系統(tǒng)總線1207可以是數(shù)種總線結(jié)構(gòu)類型(包括存儲器總線或總線控制器、外圍設(shè)備總線、以及使用許多總線結(jié)構(gòu)中的任何一種的本地總線)中的任何一種。系統(tǒng)存儲器1207包括只讀存儲器(ROM)1252和隨機存取存儲器(RAM)1254。在ROM 1252中存儲基本輸入/輸出系統(tǒng)(BIOS)1256,它包括,諸如在啟動期間,在個人計算機系統(tǒng)1201中的單元之間幫助傳遞信息的基本程序。系統(tǒng)1201進一步包括各種驅(qū)動器和相關(guān)聯(lián)的計算機—可讀出媒體。硬盤驅(qū)動器1209讀自和寫入(一般固定的)磁硬盤1211。附加的(可能任選的)磁盤驅(qū)動器1213讀自和寫入可取下的“軟盤”或其它磁盤1215。光盤驅(qū)動器1217讀自,和在某些配置中,寫入可取下的諸如CDMA ROM或其它光學(xué)媒體之類的光盤1219。分別把硬盤驅(qū)動器1209和光盤驅(qū)動器1217通過硬盤驅(qū)動接口1221和光盤驅(qū)動接口1225連接到系統(tǒng)總線1207。驅(qū)動器和它們相關(guān)聯(lián)的計算機—可讀出媒體提供計算機—可讀出指令、數(shù)據(jù)指令、程序模塊、游戲程序和用于個人計算機系統(tǒng)1201的其它數(shù)據(jù)的非易失存儲。在另一種配置中,還可以使用可以存儲通過計算機存取的數(shù)據(jù)的其它類型計算機—可讀出媒體,例如,盒式磁帶、快閃存儲器卡、數(shù)字視頻盤、Bernoulli磁帶盒、隨機存取存儲器(RAM)只讀存儲器(ROM)等。
在硬盤1211、可取下磁盤1215、光盤1219和/或系統(tǒng)存儲器1205的ROM1252和/或RAM 1254上可以存儲包括仿真器1303等的許多程序模塊。這種程序模塊可以包括提供圖形和聲音API、一個或多個應(yīng)用程序、其它程序模塊、程序數(shù)據(jù)和游戲數(shù)據(jù)的操作系統(tǒng)。用戶可以通過諸如鍵盤1227、指示裝置1229、話筒、搖桿、游戲控制器、衛(wèi)星盤、掃描器等輸入裝置把命令和信息輸入個人計算機系統(tǒng)1201??梢酝ㄟ^耦合到系統(tǒng)這些1207的串行端口接口1231把這些和其它輸入裝置連接到處理單元1203,但是也可以通過諸如并行端口、游戲端口、防火線總線或通用串行總線(USB)之類的其它接口連接。還把監(jiān)視器1233或其它類型的顯示裝置通過諸如視頻適配器1235之類的接口連接到系統(tǒng)總線1207。
系統(tǒng)1201還可以包括調(diào)制解調(diào)器1154或用于在諸如互聯(lián)網(wǎng)之類的網(wǎng)絡(luò)1152上建立通信的其它網(wǎng)絡(luò)接口手段。把可以是內(nèi)部的或外部的調(diào)制解調(diào)器1154通過串行端口接口1231連接到系統(tǒng)總線123。還可以提供網(wǎng)絡(luò)接口1156,用于允許系統(tǒng)1201通過局域網(wǎng)1158與遠(yuǎn)程計算裝置1150(例如,另一個系統(tǒng)1201)進行通信(或這種通信可以通過廣域網(wǎng)1152或諸如撥號或其它通信手段之類的其它通信路徑)。系統(tǒng)1201一般將包括其它外圍輸出裝置,諸如打印機和其它標(biāo)準(zhǔn)外圍裝置。
在一個例子中,視頻適配器1235可以包括根據(jù)3維圖形命令提供快速3維圖形繪制的3維圖形流水線芯片組,所述3維圖形命令是根據(jù)諸如微軟DirectX 7.0或其它版本之類的標(biāo)準(zhǔn)3維圖形應(yīng)用程序編程器接口發(fā)出的。還把一組立體聲揚聲器1237通過諸如傳統(tǒng)“聲卡”之類的聲音產(chǎn)生接口連接到系統(tǒng)總線1207,所述傳統(tǒng)“聲卡”根據(jù)總線1207提供的聲音命令提供支持產(chǎn)生高質(zhì)量立體聲的硬件和嵌入式軟件。這些硬件能力允許系統(tǒng)1201提供足夠的圖形和聲音速度性能以再現(xiàn)存儲在存儲媒體62中的軟件。
這里引用的所有上述參考文章僅供參考。
在已經(jīng)聯(lián)系當(dāng)前認(rèn)為最實用和最佳的實施例描述本發(fā)明的同時,可以理解本發(fā)明不限于這里所揭示的實施例,但是相反,打算包括在所附的 的范圍內(nèi)所包含的各種修改和等效的配置。
權(quán)利要求
1.在圖形流水線中,把所選擇的輸入進行混合的硬件光照模型提供經(jīng)計算的色彩或渾濁度輸出,使所述輸出反饋作為硬件光照模型的輸入,用于接連著的混合操作。
2.如權(quán)利要求1所述的流水線,其特征在于,可以使光照模型的輸出再循環(huán)以提供n個混合級。
3.如權(quán)利要求1所述的流水線,其特征在于,所述光照模型輸出的再循環(huán)允許濃淡樹型混合操作。
4.如權(quán)利要求1所述的流水線,其特征在于,所述光照模型在同一混合操作級中提供色彩混合和阿爾法混合兩種操作。
5.如權(quán)利要求1所述的流水線,其特征在于,流水線包括耦合到光照模型的再循環(huán)紋理單元,其中,所述光照模型混合再循環(huán)紋理單元以前提供的紋理輸出,而同時再循環(huán)紋理單元執(zhí)行又一個紋理映射操作,以提供又一個供光照模型混合的紋理輸出。
6.如權(quán)利要求1所述的流水線,其特征在于,光照模型包括可編程箝位器。
7.如權(quán)利要求1所述的流水線,其特征在于,光照模型包括可編程定標(biāo)器。
8.如權(quán)利要求1所述的流水線,其特征在于,光照模型包括比較器。
9.如權(quán)利要求1所述的流水線,其特征在于,光照模型包括可編程色彩交換。
10.如權(quán)利要求1所述的流水線,其特征在于,使光照模型的輸出可用于作為多個接連著的混合操作的輸入。
11.如權(quán)利要求1所述的流水線,其特征在于,光照模型包括分立的混合電路,用于在同一混合操作級期間執(zhí)行色彩混合和阿爾法混合兩種操作。
12.如權(quán)利要求1所述的流水線,其特征在于,光照模型包括反饋機構(gòu),用于把輸出提供給所述光照模型的輸入。
13.如權(quán)利要求12所述的流水線,其特征在于,所述反饋機構(gòu)包括一個或多個存儲緩沖器,用于保留從混合操作來的輸出;以及至少一個所述緩沖器具有連接到所述光照模型的輸入的一個輸出。
14.在一種圖形系統(tǒng)中,一種多—紋理方法包括下列步驟
(a)通過分量組合配置傳遞紋理映射數(shù)據(jù)以提供經(jīng)組合的紋理分量輸出;
(b)重新配置分量組合配置;以及
(c)通過重新配置但是是相同的分量組合配置傳遞所述經(jīng)組合的紋理分量輸出,以提供經(jīng)組合的多—紋理分量輸出。
15.如權(quán)利要求10所述的方法,其特征在于,使所述步驟(b)和(c)重復(fù)多次。
16.如權(quán)利要求10所述的方法,其特征在于,分量組合配置包括紋理色彩組合器。
17.如權(quán)利要求10所述的方法,其特征在于,分量組合配置包括阿爾法組合器。
18.一種用于提供多一紋理多邊形的方法,所述方法包括下列步驟
(a)產(chǎn)生第一紋理映射數(shù)據(jù);
(b)通過組合器硬件傳遞第一紋理映射數(shù)據(jù),以提供相應(yīng)于第一紋理映射數(shù)據(jù)的第一輸出;
(c)產(chǎn)生第二紋理映射數(shù)據(jù);以及
(d)通過組合器硬件傳遞第二紋理映射數(shù)據(jù)和第一輸出,以提供相應(yīng)于第一和第二紋理映射數(shù)據(jù)的第二輸出。
19.如權(quán)利要求14所述的方法,其特征在于,在一個混合級期間執(zhí)行步驟(b),在比所述的第一混合級較晚的又一個混合級期間執(zhí)行步驟(d)。
20.如權(quán)利要求18所述的方法,其特征在于,組合器硬件提供的紋理映射數(shù)據(jù)混合的接連著的級有10個以上。
21.在包括至少一個映射單元和包括組合器電路的紋理環(huán)境單元的一種圖形繪制流水線中,其改進包括迭代地再使用組合器電路,以提供把多個紋理施加到在圖象中顯示的表面上的多個級。
22.如權(quán)利要求21所述的方法,其特征在于,迭代地再使用步驟包括使用組合器電路在第一混合周期/級對第一紋理象素色彩進行組合,并使用與第一周期/級不同的第二混合周期/級,使用相同的組合器電路對第二紋理象素色彩進行組合,第一和第二周期/級兩者落在產(chǎn)生單個圖象幀的周期中。
23.如權(quán)利要求21所述的方法,其特征在于,第一和第二周期/級是連續(xù)的。
24.如權(quán)利要求21所述的方法,其特征在于,組合器電路包括獨立的色彩組合器電路和阿爾法組合器電路。
25.如權(quán)利要求21所述的方法,其特征在于,組合器電路計算
(D+(-1)sub*((1-c)*A+C*B)+bias)<<shift
其中,A、B、C、和D是從4個當(dāng)前-色彩寄存器、光柵化色彩、紋理、阿爾法分量,0和1選擇的。
26.在一種包括處理流水線(所述處理流水線至少一部分根據(jù)存儲在相關(guān)聯(lián)的存儲器中的多邊形頂點數(shù)據(jù)和紋理數(shù)據(jù)繪制和顯示圖象)的圖形系統(tǒng)中,一種多紋理處理子系統(tǒng),用于把相應(yīng)于一個或多個不同紋理和/或紋理特征的紋理數(shù)據(jù)選擇性地映射到所述繪制和顯示圖象的表面,所述多紋理處理子系統(tǒng)包括
配置在流水線中的色彩/阿爾法-分量混合單元,以對紋理、光柵化色彩和/或阿爾法分量數(shù)據(jù)進行混合,以產(chǎn)生經(jīng)計算的色彩,并具有啟動再引入經(jīng)計算的色彩到流水線的反饋機構(gòu),其中,通過迭代使用/再使用混合單元而得到多紋理的處理。
27.如權(quán)利要求26所述的多紋理處理子系統(tǒng),其特征在于,混合單元包括至少一個乘法器和一個加法器,并配置成接收多達(dá)4個用于執(zhí)行混合操作的輸入變元。
28.在一種包括處理流水線(所述處理流水線至少一部分根據(jù)存儲在相關(guān)聯(lián)的存儲器中的多邊形頂點數(shù)據(jù)和紋理數(shù)據(jù)繪制和顯示圖象)的圖形系統(tǒng)中,一種多紋理處理子系統(tǒng),用于把相應(yīng)于一個或多個不同紋理和/或紋理特征的紋理數(shù)據(jù)選擇性地映射到所述繪制和顯示圖象的表面,所述多紋理處理子系統(tǒng)包括
配置在流水線中的紋理環(huán)境單元,在預(yù)定的處理級期間處理紋理、色彩和/或阿爾法數(shù)據(jù),以實現(xiàn)混合和/或紋理和/或色彩或阿爾法數(shù)據(jù)的混合,所述紋理環(huán)境單元包括具有反饋機構(gòu)(所述反饋機構(gòu)在所選擇的臨時處理級期間是可操作的)的色彩/阿爾法數(shù)據(jù)混合單元,其中,可得到當(dāng)前處理級的輸出作為到接連著的處理級的輸入。
29.如權(quán)利要求28所述的多紋理處理子系統(tǒng),其特征在于,把混合單元連接到至少一個存儲寄存器,用于可得到當(dāng)前處理級的輸出作為到接連著的臨時處理級的輸入。
30.如權(quán)利要求28所述的多紋理處理子系統(tǒng),其特征在于,紋理環(huán)境單元可以容納多達(dá)16個接連著的臨時處理級。
31.如權(quán)利要求28所述的多紋理處理子系統(tǒng),其特征在于,反饋機構(gòu)包括多個存儲寄存器。
32.如權(quán)利要求28所述的多紋理處理子系統(tǒng),其特征在于,混合單元包括至少一個乘法器和一個加法器,并配置成接收多達(dá)4個用于執(zhí)行混合操作的輸入變元。
33.在一種包括處理流水線(所述處理流水線至少一部分根據(jù)存儲在相關(guān)聯(lián)的存儲器中的多邊形頂點數(shù)據(jù)和紋理數(shù)據(jù)繪制和顯示圖象)的圖形系統(tǒng)中,一種多紋理處理子系統(tǒng),用于把相應(yīng)于一個或多個不同紋理和/或紋理特征的紋理數(shù)據(jù)選擇性地映射到所述繪制和顯示圖象的表面,所述多紋理處理子系統(tǒng)包括
配置在流水線中的紋理環(huán)境單元,在預(yù)定的臨時處理周期/級期間,處理輸入紋理和光柵化色彩數(shù)據(jù),以在輸入紋理和光柵化色彩數(shù)據(jù)上提供獨立的數(shù)學(xué)混合操作,所述紋理環(huán)境單元包括在所選擇的臨時處理周期/級期間操作的反饋機構(gòu),其中,可得到當(dāng)前臨時處理周期/級的輸出作為接連著的臨時處理周期/級的輸入。
34.如權(quán)利要求33所述的多紋理處理子系統(tǒng),其特征在于,輸入紋理和光柵化色彩數(shù)據(jù)包括RGB和阿爾法數(shù)據(jù)。
35.如權(quán)利要求33所述的多紋理處理子系統(tǒng),其特征在于,可得到紋理環(huán)境單元臨時處理周期/級的輸出作為到接連著的紋理環(huán)境臨時處理級的輸入。
36.如權(quán)利要求33所述的多紋理處理子系統(tǒng),其特征在于,紋理環(huán)境單元可以容納多達(dá)16個接連著的臨時處理級。
37.如權(quán)利要求33所述的多紋理處理子系統(tǒng),其特征在于,紋理環(huán)境單元進一步包括具有至少一個乘法器和一個加法器的混合單元。
38.如權(quán)利要求33所述的多紋理處理子系統(tǒng),其特征在于,把混合單元配置成接收多達(dá)4個用于執(zhí)行混合操作的變元。
39.在一種包括處理流水線(所述處理流水線至少一部分根據(jù)存儲在相關(guān)聯(lián)的存儲器中的多邊形頂點數(shù)據(jù)和紋理數(shù)據(jù)繪制和顯示圖象)的圖形系統(tǒng)中,一種多紋理處理子系統(tǒng),用于把相應(yīng)于一個或多個不同紋理和/或紋理特征的紋理數(shù)據(jù)選擇性地映射到所述繪制和顯示圖象的表面,以及一個紋理環(huán)境單元,用于處理輸入紋理和光柵化色彩數(shù)據(jù),以在所述輸入紋理和光柵化色彩數(shù)據(jù)上提供獨立的數(shù)學(xué)混合操作,一種用于處理多個紋理的方法包括下列步驟
(a)在第一紋理環(huán)境單元臨時處理周期/級期間,在第一組紋理和光柵化色彩數(shù)據(jù)上執(zhí)行混合操作;以及
(b)提供所述第一臨時處理周期/級的輸出作為接連著的紋理環(huán)境單元臨時處理周期/級的輸入。
40.如權(quán)利要求39所述的用于處理多個紋理的方法,其特征在于,可以提供來自多達(dá)16個接連著的紋理環(huán)境臨時處理級的輸出作為到接連著的紋理環(huán)境單元臨時處理周期/級的輸入。
41.如權(quán)利要求39所述的用于處理多個紋理的方法,其特征在于,輸入紋理和光柵化色彩數(shù)據(jù)包括RGB和阿爾法數(shù)據(jù)。
42.如權(quán)利要求28所述的多紋理處理子系統(tǒng),其特征在于,可得到當(dāng)前處理級的輸出作為多個接連著的處理級的輸入。
43.在包括用于選擇性地對相應(yīng)于一個或多個不同紋理和/或紋理特征的紋理數(shù)據(jù)進行取樣的多紋理處理子系統(tǒng)的圖形系統(tǒng)中,用于執(zhí)行濃淡/混合操作硬件光照模型,接收第一紋理數(shù)據(jù)取樣和來自所述多紋理處理子系統(tǒng)的接連著的紋理數(shù)據(jù)取樣,并使一個輸出(所述輸出來自使用第一紋理數(shù)據(jù)取樣而執(zhí)行的濃淡/混合操作)再循環(huán)到所述光照模型(所述光照模型用于執(zhí)行使用接連著的紋理數(shù)據(jù)取樣的濃淡/混合操作)的一個輸入和一個輸出(來自在第一紋理數(shù)據(jù)取樣上執(zhí)行的濃淡/混合操作)。
44.一種包括多紋理處理子系統(tǒng)的圖形流水線,所述多紋理處理子系統(tǒng)順序地把多個紋理的取樣提供給硬件光照模型(所述硬件光照模型在多紋理處理子系統(tǒng)的紋理取樣輸出上執(zhí)行混合/濃淡操作),其中,所述硬件光照模型使混合/濃淡操作的結(jié)果輸出進行再循環(huán),用于用接連著的紋理取樣輸出執(zhí)行所述結(jié)果輸出的接連著的混合/濃淡操作。
45.至少一部分根據(jù)多邊形頂點數(shù)據(jù)和紋理數(shù)據(jù)繪制和顯示圖象的一種圖形處理流水線,包括
再循環(huán)紋理流水線配置,它具有單個紋理地址坐標(biāo)/數(shù)據(jù)處理單元、單個紋理取得單元、和紋理查找數(shù)據(jù)反饋路徑,所述紋理數(shù)據(jù)查找反饋路徑用于使所選擇的取得紋理查找數(shù)據(jù)從紋理取得單元返回到紋理地址坐標(biāo)/數(shù)據(jù)處理單元;以及
再循環(huán)濃淡樹阿爾法/色彩混合器配置,它具有連接成接收紋理取得單元的輸出的硬件光照模型以及從硬件光照模型的輸出到光照模型的輸入的一個反饋路徑,所述反饋路徑用于使所選擇的混合色彩或渾濁度輸出數(shù)據(jù)進行再循環(huán),其中,再循環(huán)配置混合所選擇的光照模型輸入,以提供一個輸出,使所述輸出反饋作為光照模型的輸入,用于接連著的混合操作。
46.如權(quán)利要求45所述的流水線,其特征在于,所述單個紋理地址坐標(biāo)/數(shù)據(jù)處理單元使邏輯直接和間接紋理坐標(biāo)數(shù)據(jù)的處理進行交錯。
47.在圖形系統(tǒng)中,一種多紋理處理子系統(tǒng)包括
紋理配置,它具有單個紋理地址坐標(biāo)/數(shù)據(jù)處理單元、單個紋理取得單元以及紋理查找數(shù)據(jù)反饋路徑,所述紋理查找數(shù)據(jù)反饋路徑用于使所取得的間接紋理查找數(shù)據(jù)從單個紋理取得單元再循環(huán)而返回到紋理地址坐標(biāo)/數(shù)據(jù)處理單元;以及
再循環(huán)硬件光照模型,把它連接成接收紋理取得單元的輸出,其中,光照模型混合所選擇的接收到的輸出,以提供經(jīng)計算的色彩或渾濁度輸出,使所述輸出選擇性地反饋而作為光照模型的輸入,用于接連著的混合操作。
48.如權(quán)利要求47所述的圖形系統(tǒng),其特征在于,所述單個紋理地址坐標(biāo)/數(shù)據(jù)處理單元使邏輯直接和間接紋理坐標(biāo)數(shù)據(jù)的處理進行交錯。
全文摘要
一種包括定制圖形和音頻處理器的圖形系統(tǒng)產(chǎn)生激動的2維和3維圖象和圍繞聲。所述系統(tǒng)包括3維圖形流水線和音頻數(shù)字信號處理器。通過使用可塑的API和加速硬件的可編程紋理混合器/光照模型配置,在流水線式圖形系統(tǒng)中執(zhí)行芯片一占地面積相當(dāng)?shù)偷亩嘤猛炯y理環(huán)境(TEV)處理子系統(tǒng),所述加速硬件的可編程紋理混合器/光照模型配置使經(jīng)計算的色彩和阿爾法數(shù)據(jù)在多個紋理混合/濃淡周期(級)上循環(huán)。
文檔編號G06T15/00GK1339764SQ0112229
公開日2002年3月13日 申請日期2001年8月23日 優(yōu)先權(quán)日2000年8月23日
發(fā)明者R·A·德雷賓, T·J·萬胡克, P·Y·勞, M·M·萊瑟, M·科穆索弗特 申請人:任天堂株式會社