專利名稱::圖像繪制裝置及圖像繪制方法
技術領域:
:本發(fā)明涉及一種圖像繪制裝置和圖像繪制方法,被用于圖形計算機、特技設備或視頻游戲機等利用計算機的視頻設備。在家用TV游戲機、個人計算機或圖形計算機中的圖像生成裝置(用于產(chǎn)生輸出到電視接收機、監(jiān)視器接收機或陰極射線管(CRT)顯示裝置上以便顯示的圖像數(shù)據(jù))中,為了能高速處理,在中央處理單元(CPU)和幀緩沖器之間提供一專用繪制裝置。也就是說,在上述的圖像生成裝置中,在生成圖形時CPU并不直接訪問幀緩沖器,而是執(zhí)行幾何處理,如坐標變換、剪切或光源計算,將三維模型定義為基本單元圖形如三角形或四邊形的組合,以形成繪制三維圖形的繪制命令,并把產(chǎn)生的繪制命令送到繪制裝置。例如,為了形成一個三維物體,該物體被分成多個多邊形,每個多邊形的繪制命令從CPU送到繪制裝置。繪制裝置解釋從CPU送來的繪制命令,執(zhí)行寫象素數(shù)據(jù)到幀緩沖器的成像處理,根據(jù)指定頂點的彩色數(shù)據(jù)和深度的Z值,考慮形成多邊形的所有象素的Z值和彩色,以便在幀緩沖器中繪圖。Z值表示指定從視點沿深度方向的距離的信息。例如,若一個三維物體被顯示在上述圖像生成裝置中,該物體被分解成多個多邊形,與每個多邊形有關的繪制命令從CPU發(fā)送到繪制裝置上。為了更逼真地顯示物體,使用了稱為紋理映射或MIP映射的技術。還有大家熟知的通過彩色查找表(CLUT)轉(zhuǎn)換圖像彩色數(shù)據(jù)的技術,在查找表中存有為改變顯示彩色的彩色轉(zhuǎn)換數(shù)據(jù)。紋理映射是這樣一種技術,單獨提供一個作為紋理源圖像的二維圖像圖案附加到組成物體的多邊形表面。而MIP映射是內(nèi)插象素數(shù)據(jù)的紋理映射技術中的一種,它使附加到多邊形上的圖案,在三維模型移向視點或離開視點時不會造成不自然感。而且,圖像的繪制速度取決于繪制引擎中對每個多邊形的紋理映射或MIP映射的處理速度。還有,圖像的繪制速度受從繪制引擎到幀緩沖器的寫速度的影響,這樣如果幀緩沖器存取速度低,則繪制速度亦低。因此,如果為了增加繪制速度,采用昂貴的高速存貯器作為大容量幀緩沖器,則系統(tǒng)成本會過高地增加。而如果用便宜的動態(tài)隨機存貯器(DRAM),則系統(tǒng)的繪制速度會降低。鑒于上述本
技術領域:
的狀況,本發(fā)明的目的如下面所述。即,本發(fā)明的一個目的是提供一種圖像繪制裝置和圖像繪制方法,從而,即使使用便宜的存貯器,如DRAM作為幀緩沖器,也可以維持高繪制速度。本發(fā)明的另一個目的是提供一種圖像繪制裝置和圖像繪制方法,從而在通過繪制裝置執(zhí)行紋理映射的圖像繪制裝置中,繪制處理可以不停頓繪圖裝置而執(zhí)行。本發(fā)明還有一個目的是提供圖像繪制裝置和圖像繪制方法,可以降低對圖像存貯器的訪問次數(shù)和訪問時間而增加整個圖像繪制速度。根據(jù)本發(fā)明的圖像繪制設備包括預處理裝置,用于根據(jù)繪制由單元圖形的組合定義的圖像模型的繪制命令,在以單元圖形為基礎的繪制處理之前產(chǎn)生繪制處理所需的數(shù)據(jù);圖像繪制裝置,用于響應在圖像存貯器中繪制圖像的繪制命令,通過紋理映射處理以單位圖形為基礎形成像素數(shù)據(jù);存貯裝置,用于暫時存貯圖像繪制裝置進行紋理映射所需的紋理數(shù)據(jù);以及供給裝置,用于響應由預定處理裝置輸出的數(shù)據(jù),把圖像繪制裝置進行紋理映射所需的紋理數(shù)據(jù)提供給存貯裝置。根據(jù)本發(fā)明的圖像繪制裝置中,圖像繪制裝置具有執(zhí)行MIP映射的功能,圖像繪制裝置響應預處理裝置輸出的數(shù)據(jù),選擇具有所需分辨率的紋理數(shù)據(jù),以提供所選擇的紋理數(shù)據(jù)給存貯裝置。根據(jù)本發(fā)明的圖像繪制方法包括以下步驟根據(jù)繪制由單元圖形的組合定義的圖像模型的繪制命令,以單元圖形為基礎,產(chǎn)生有關圖像繪制處理數(shù)據(jù);根據(jù)該數(shù)據(jù),把圖像繪制處理中紋理映射所需的紋理數(shù)據(jù)提供給存貯裝置;通過紋理處理產(chǎn)生單元圖形的象素數(shù)據(jù)以便在圖像存貯器中繪圖,以及在圖像存貯器繪制圖像。在根據(jù)本發(fā)明的圖像繪制方法中,把紋理數(shù)據(jù)供給存貯裝置的步驟包括下述步驟即響應有關圖像繪制處理的數(shù)據(jù),提供圖像繪制處理中MIP映射所需分辨率的紋理數(shù)據(jù)。根據(jù)本發(fā)明的圖像繪制裝置和方法,圖像繪制裝置通過預處理裝置,在預處理階段,從紋理存貯器發(fā)送紋理映射所需的紋理數(shù)據(jù)到紋理高速緩存。預處理裝置和圖像繪制裝置以流水線方式工作,使得圖像繪制過程中不用停止圖像繪制裝置。根據(jù)本發(fā)明的圖像繪制裝置和方法,圖像繪制裝置進行MIP映射所需分辨率的數(shù)據(jù)由預處理裝置在預處理階段從紋理存貯器上的紋理數(shù)據(jù)中選擇,并傳送到紋理高速緩存,以降低對紋理存貯器的訪問次數(shù)和訪問的時間,提高整個圖像的繪制速度。附圖的簡要說明圖1是顯示采用本發(fā)明的視頻游戲機的結(jié)構(gòu)框圖;圖2是顯示視頻游戲機中GPU的詳細結(jié)構(gòu)的框圖;圖3是顯示GPU的基本結(jié)構(gòu)的框圖;圖4顯示了在GPU中紋理高速緩存中數(shù)據(jù)結(jié)構(gòu)的示例;圖5是顯示在GPU中用預處理器分解第一多邊形的處理流程圖;圖6是顯示視頻游戲機中第二總線轉(zhuǎn)換器的結(jié)構(gòu)框圖;圖7說明了視頻游戲機中第二總線轉(zhuǎn)換器的結(jié)構(gòu);圖8說明了當對第一多邊形形狀內(nèi)部訪問時,要被訪問的交錯圖案(interleavingpattern);圖9說明了當對第一多邊形形狀內(nèi)部訪問時,基于地址訪問情況下的屏蔽;圖10說明了通過屏蔽得到的訪問地址;圖11說明了用(4×4)交錯圖案訪問繪制于幀緩沖器的存貯體的第二多邊形形狀的內(nèi)部;圖12說明了用(4×4)交錯圖案訪問繪制于幀緩沖器的存貯體的第二多邊形形狀的內(nèi)部時,所訪問的交錯圖案;圖13說明了以地址為基礎用(4×4)交錯圖案訪問第二多邊形形狀內(nèi)部情況下的屏蔽;圖14說明了用(8×2)交錯圖案對第二多邊形的內(nèi)部的訪問;圖15說明了用(8×2)交錯圖案訪問繪制于幀緩沖器的存貯體的第二多邊形形狀內(nèi)部時,所訪問的交錯圖案;圖16說明以地址為基礎用(8×2)交錯圖案訪問第二多邊形形狀內(nèi)部情況下的屏蔽;圖17說明了用(16×1)交錯圖案對第二多邊形的內(nèi)部的訪問;圖18說明了用(16×1)的交錯圖案訪問繪制于幀緩沖器的存貯體的第二多邊形形狀的內(nèi)部時,所訪問的交錯圖案;圖19說明了以地址為基礎用(16×1)交錯圖案訪問第二多邊形形狀內(nèi)部情況下的屏蔽。圖20說明了計算繪制于幀緩沖器的存貯體的多邊形縱橫比的處理。圖21顯示了具有16個地址的5種交錯圖案的圖案。圖22是采用本發(fā)明的視頻游戲機裝置的平面圖。圖23是該視頻游戲裝置的后視圖。圖24是該視頻游戲裝置的側(cè)視圖。圖25是裝載在該視頻游戲裝置上的CD-ROM的平面圖。參考附圖,下面詳細說明本發(fā)明的優(yōu)選實施例。根據(jù)本發(fā)明的繪制裝置用于圖1所示的視頻游戲裝置中。根據(jù)本發(fā)明的繪制方法在該視頻游戲裝置中被實現(xiàn)。視頻游戲機根據(jù)用戶發(fā)出的指令通過讀和執(zhí)行存貯在輔助存貯裝置如光盤中的游戲程序執(zhí)行游戲,其結(jié)構(gòu)如圖1所示。具體地,本視頻游戲裝置具有兩類總線,即主總線1和副總線2。主總線1和副總線2經(jīng)過總線控制器16被互相連接。主總線1上連接有由微處理器組成的中央處理單元(CPU)11,由隨機存取存貯器(RAM)組成的主存貯器12,主動態(tài)存貯器存取控制器或主DMAC13,MPEG解碼器14和圖像處理單元或圖形處理單元(GPU)15。副總線2上連接有由微處理器組成的輔助中央處理單元或副CPU21,由隨機存取存貯器(RAM)組成的輔助存貯器22,輔助動態(tài)存貯器存取控制器或副DMAC23,其中存貯有程序例如操作系統(tǒng)的只讀存貯器(ROM)24,聲音處理單元(SPU)25,通信控制器或異步傳送模式(ATM)26,輔助存貯裝置27,輸入裝置28和CD-ROM驅(qū)動器30。總線控制器16是主總線1上的一種裝置,用于在主總線1和副總線2之間進行轉(zhuǎn)換,并在初始狀態(tài)是斷開的。主CPU11是主總線1上的一種裝置,通過主存貯器12上的程序操作。由于總線控制器16在起動時是斷開的,所以主CPU11從副總線2上的ROM24中讀出引導程序,以在副總線2上從ROM24復制應用程序和所需的數(shù)據(jù),加載到主存貯器12或副總線2上的裝置中。在主CPU11上加載了一個幾何變換引擎(GTE)17,以實現(xiàn)如坐標轉(zhuǎn)換的處理。該GTE17具有并行計算機制,以便并行地執(zhí)行多個計算處理操作,并對CPU11的計算處理請求作出響應,以使對例如坐標轉(zhuǎn)換、光源計算、矩陣或向量運算實現(xiàn)快速處理運算。根據(jù)GTE17計算處理運算的結(jié)果,主CPU11把三維模型定義為基本單元圖形如三角形或四邊形的組合,形成與每個多邊形相關的繪制命令以便繪制三維圖像,且打包繪制命令,以便把結(jié)果命令包傳送到GPU15中。主DMAC13是主總線1上的裝置,用來實現(xiàn)控制,例如主總線1上各裝置的DMA傳送。如果總線控制器16是斷開的,則主DMAC13也控制副總線2上的裝置。GPU15是主總線1上的一裝置,起成像處理器的作用。GPU15解釋從主CPU11或主DMAC13發(fā)送的命令包形式的繪制命令,根據(jù)形成多邊形的所有象素的指定深度的Z值和彩色值,在幀緩沖器18中實現(xiàn)寫象素數(shù)據(jù)的成像處理。MDEC14是一個同主CPU11可并行操作的I/O連接裝置及作為圖像擴展引擎的裝置。MDEC14解碼用正交變換,例如離散余弦變換壓縮和編碼的圖像數(shù)據(jù)。在副總線2上,副CPU21是在副總線2上的裝置,它根據(jù)副存貯器22中的程序工作。副DMAC23是副總線2上的裝置,用來對例如副總線2上的裝置執(zhí)行控制如DMAC傳送。該副DMAC23只在總線控制器16被關閉時能夠獲取總線權。SPU25是副總線2上起聲音處理器作用的裝置。SPU25響應來自副CPU21或副DMAC23的作為命令包送出的聲音命令,從聲音存貯器29讀出聲音源數(shù)據(jù)以輸出該讀出的數(shù)據(jù)。ATM26是副總線2上的通信裝置。輔助存貯裝置27是副總線2上的輸入輸出裝置,由非易失性存貯器例如閃速存貯器組成。該輔助存貯裝置27用來暫存數(shù)據(jù)如游戲進展或得分。CD-ROM驅(qū)動器30是副總線2上的數(shù)據(jù)輸入裝置,用來從CD-ROM上復制應用程序和所需的數(shù)據(jù)。輸入裝置28是從其它一些設備輸入的裝置,如副總線2上的控制板、人-機接口、圖像輸入或語音輸入。也就是,在上面所述的視頻游戲機中,幾何處理系統(tǒng)執(zhí)行幾何處理,如坐標轉(zhuǎn)換、剪切或光源計算。形成繪制命令,用于將三維模型定義為基本單元圖形(多邊形)如三角形或四邊形的組合,以便繪制三維圖形,且把同每個多邊形相關的繪制命令作為命令包送到主總線1,該幾何處理系統(tǒng)由主總線1上的主CPU11和GTE17形成。另外,在視頻游戲機中,成像處理系統(tǒng)由GPU15組成,成像處理系統(tǒng)根據(jù)幾何處理系統(tǒng)的繪制命令,形成每個多邊形的象素數(shù)據(jù),用于通過在幀緩沖器18中繪圖的成像處理,在幀緩沖器18繪圖。上述GPU15將予以詳細說明。參考圖2,GPU15包括一個連到如圖1所示的主總線1上的包引擎31,并且通過預處理器32和繪制引擎33,實現(xiàn)將每個多邊形的象素數(shù)據(jù)寫入幀緩沖器18中的成像處理,根據(jù)通過主總線1從圖1所示的CPU11或主DMAC送到包引擎31的命令包形式的繪制命令,讀出在幀緩沖器18中所繪圖像的象素數(shù)據(jù),并把所讀出的象素數(shù)據(jù)作為視頻信號經(jīng)CRT控制器34提供給電視接收機或監(jiān)視器接收機(未示出)。包引擎31展開通過主總線1從圖1所示的主CPU11或主DMAC13發(fā)送到一個寄存器(未示出)的命令包。預處理器32根據(jù)按命令包送給包引擎31的繪制命令產(chǎn)生多邊形數(shù)據(jù),并實現(xiàn)預定的預處理,如在后面將說明的對多邊形數(shù)據(jù)的多邊形分割,同時產(chǎn)生各種數(shù)據(jù),如繪制引擎33所需的各個多邊形的頂點坐標信息、紋理或MIP映射紋理的地址信息,或象素交錯的控制信息。繪制引擎33包括連到預處理器32上的N個多邊形引擎33A1、33A2、…、33AN,連到多邊形引擎33A1、33A2、…、33AN上的N個紋理引擎33B1、33B2、…、33BN;連到紋理引擎33B1、33B2、…、33BN的第一總線轉(zhuǎn)換器33C;連到第一總線轉(zhuǎn)換器33C的M個象素引擎33D1、33D2、…、33DM;連到象素引擎33D1、33D2、…、33DM的第二總線轉(zhuǎn)換器33E;連到第二總線轉(zhuǎn)換器33E的紋理高速緩存33F;和連到紋理高速緩存33F上的CLUT高速緩存33G。在繪制引擎33中,N個多邊形引擎33A1、33A2、…、33AN根據(jù)由預處理器32預處理的多邊形數(shù)據(jù),按繪制命令順序地產(chǎn)生多邊形,以便逐個對多邊形實現(xiàn)并行陰影處理。N個紋理引擎33B1、33B2、…、33BN,在多邊形引擎33A1、33A2、…、33AN產(chǎn)生的每個多邊形上,基于經(jīng)彩色查找表(CLUT)高速緩存33G,從紋理高速緩存33F提供的紋理數(shù)據(jù),并行地實現(xiàn)紋理映射或MIP映射。預處理器32預先提供地址信息如附加到由N個紋理引擎33B1、33B2、…、33BN處理的多邊形上的紋理或MIP映射紋理給紋理高速緩存33F。根據(jù)上面的地址信息,紋理映射所需紋理數(shù)據(jù)從紋理區(qū)傳送到幀緩沖器18,同時只有MIP映射所需的分辨率數(shù)據(jù)從相關的紋理數(shù)據(jù)中被選擇,以便作為MIP映射紋理數(shù)據(jù)被傳送。在紋理繪制期間要參考的CLUT高速緩存33G的CLUT數(shù)據(jù)從CLUT區(qū)傳到幀緩沖器18。由N個紋理引擎33B1、33B2、…、33BN通過紋理映射或MIP映射處理的多邊形數(shù)據(jù),經(jīng)第一總線轉(zhuǎn)換器33C傳到M個象素引擎33D1、33D2、…、33DM。M個象素引擎33D1、33D2、…、33DM執(zhí)行各種圖像處理操作,如并行地進行Z-緩沖器處理或抗混疊處理,以產(chǎn)生M個象素數(shù)據(jù)。由M個象素引擎33D1、33D2、…、33DM產(chǎn)生的M個象素數(shù)據(jù),經(jīng)第二總線轉(zhuǎn)換器33E被寫到幀緩沖器18中。第二總線轉(zhuǎn)換器33E從預處理器32中得到象素交錯控制信息。第二總線轉(zhuǎn)換器33E具有下述功能,即,根據(jù)上述控制信息,從M個象素引擎33D1、33D2、…、33DM產(chǎn)生的M個象素數(shù)據(jù)中選擇L個象素數(shù)據(jù),執(zhí)行象素交錯處理,用符合繪制在幀緩沖器18上的多邊形形狀的M個存貯地址作為存取單元,寫M個象素數(shù)據(jù)。繪制引擎33根據(jù)由預處理器32預處理的多邊形數(shù)據(jù),在幀緩沖器18中產(chǎn)生和寫入每個多邊形的全部象素數(shù)據(jù),以在幀緩沖器18上繪制由繪制命令定義為多邊形的圖。因此,在幀緩沖器18繪制的圖像的象素數(shù)據(jù)通過第二總線轉(zhuǎn)換器33E被讀出,以便作為視頻信號經(jīng)CRTC34提供給電視接收機或監(jiān)視器接收機(未示出)。在上面所述的GLUT15結(jié)構(gòu)中,預處理器32根據(jù)多邊形的頂點坐標[(X0,Y0),(X1,Y1),(X2,Y2)]及紋理坐標[(U0,V0),(U1,V1),(U2,V2)1,產(chǎn)生地址信息,用于預讀附加在由N個紋理引擎33B1、33B2、…、33BN處理的多邊形上的紋理。此外,GLUT15根據(jù)多邊形的各邊的斜率[(X1-X0)/(Y1-Y0),(X2-X0)/(Y2-Y0),(X1-X2)/(Y1-Y2)],紋理地址的斜率[(U1-U0)/(Y1-Y0),(U2-U0)/(Y2-Y0),(U1-U2)/(Y1-Y2)],[(V1-V0)/(Y1-Y0),(V2-V0)/(Y2-Y0),(V1-V2)/(Y1-Y2)],…或多邊形面積重新產(chǎn)生MIP映射選擇信息,把信息提供給紋理高速緩存33F。GLUT15按左邊緣頂點的順序[(X0,Y0)→(X1,Y1)→(X2,Y2)]順序,或按右邊沿頂點的順序[(X2,Y2)→(X1,Y1)→(X0,Y0)]或用掃描二端點或紋理地址的順序排序多邊形頂點坐標[(X0,Y0),(X1,Y1),(X2,Y2)]。預處理器32存貯對應于工作存貯器中預處理的多邊形數(shù)據(jù)的信息(未示出),在繪圖引擎33能處理下一個多邊形的階段,能夠處理一個多邊形的信息可從工作存貯器傳送到N個多邊形引擎33A1、33A2、…、33AN,這使得繪制引擎33啟動對新多邊形的繪制處理。也就是用本GPU15,預處理器32和繪制引擎33以流水線處理執(zhí)行繪制處理,以便繪制由繪制命令定義為多邊形的組合的圖像。用該流水線處理進行的繪制處理在以后還會說明。預處理器32對前面所述的多邊形數(shù)據(jù)執(zhí)行預定的預處理,并提供各種數(shù)據(jù)給繪制引擎33,這些數(shù)據(jù)如繪制引擎33所需的頂點坐標信息、用于紋理或MIP映射紋理的地址信息、或例如作象素交錯的控制信息。繪制引擎33從預處理器32接收數(shù)據(jù),以從紋理高速緩存33D中讀出所需的紋理數(shù)據(jù),產(chǎn)生數(shù)據(jù)以便在幀緩沖器18中寫所產(chǎn)生的象素數(shù)據(jù)。紋理高速緩存33D,根據(jù)預處理器32預處理計算得到的需要的紋理地址,從幀緩沖器18讀出紋理區(qū)的紋理數(shù)據(jù)。此紋理數(shù)據(jù)被讀出,以便在利用紋理數(shù)據(jù)的圖像繪制開始之前完成數(shù)據(jù)的讀出。由于只從紋理區(qū)讀對應于MIP映射所需分辨率的紋理數(shù)據(jù),訪問紋理區(qū)的次數(shù)被減少了。如圖4中示例,在紋理高速緩存33F中的數(shù)據(jù)結(jié)構(gòu)包括由紋理地址形成的標簽區(qū)TAG,存貯所需的紋理數(shù)據(jù)的存貯區(qū)DATA,和指出還未被使用的紋理數(shù)據(jù)的標志L。為利用標志L復位的項,紋理高速緩存33從幀緩沖器18的紋理區(qū)讀入紋理數(shù)據(jù),置位其標志L。繪制引擎33從標志置位的這個項讀出相應紋理數(shù)據(jù),以便執(zhí)行繪制處理,在繪制結(jié)束的階段復位此項的標志L,該紋理數(shù)據(jù)已不再需要。在繪制設備中,如上所述執(zhí)行紋理映射處理,預處理器32和繪制引擎33按流水線構(gòu)成,這樣以使繪制引擎33所需的紋理數(shù)據(jù)從紋理存貯器即幀緩沖器18的紋理區(qū)通過預處理器32,在預處理階段送到高速緩存33F,以便繪制處理能夠被執(zhí)行,無須停止繪制引擎33。此外,由于只從紋理區(qū)讀取同MIP映射所需分辨率相關的數(shù)據(jù),可以減少訪問紋理區(qū)的次數(shù),從而提高了整個裝置的繪制速度。通過預處理器32的多邊形分割處理按照圖5所示的流程圖執(zhí)行。具體地說,多邊形分割處理開始時,指定多邊形的數(shù)量的多邊形計數(shù)C設定為1。在第一處理步驟S1,判斷是否需要分割多邊形。在處理步驟S1的判斷處理中,要判斷是否現(xiàn)在處理的多邊形包含在紋理高速緩存33F的范圍內(nèi)。為了這個判斷處理,看是否多邊形頂點的紋理坐標[(U0,V0),(U1,V1),(U2,V2)]計算值落在一個紋理頁中已足夠了。如果在處理步驟S1的判斷結(jié)果是“否”,即,如果多邊形需要分割,處理轉(zhuǎn)到步驟S2,以將多邊形分成N份。在處理步驟S2上,多邊形的這種N分割通過在中性點上分割多邊形的所有邊而實現(xiàn),如下所示X0’=(X0+X1)/2Y0’=(Y0+Y1)/2Z0’=(Z0+Z1)/2X1’=(X1+X2)/2Y1’=(Y1+Y2)/2Z1’=(Z1+Z2)/2X2’=(X2+X0)/2Y2’=(Y2+Y0)/2Z2’=(Z2+Z0)/2U0’=(U0+U1)/2V0’=(V0+V1)/2Z0’=(Z0+Z1)/2U1’=(U1+U2)/2V1’=(V1+V2)/2Z1’=(Z1+Z2)/2U2’=(U2+U0)/2V2’=(V2+V0)/2Z2’=(Z2+Z0)/2R0’=(R0+R1)/2G0’=(G0+G1)/2B0’=(B0+B1)/2R1’=(R1+R2)/2G1’=(G1+G2)/2B1’=(B1+B2)/2R2’=(R2+R0)/2G2’=(G2+G0)/2B2’=(B2+B0)/2即,在處理步驟S2,多邊形的N分割中,多邊形的所有邊在其中點被分割,以將三角形狀多邊形分割為例如N=4的新多邊形。在下一處理步驟S2,通過設置多邊形計數(shù)C為C=C+N-1而改變多邊形的數(shù)量。然后,處理回到第一處理步驟S1,以便判斷是否新被分割的多邊形應該進一步再分割。重復執(zhí)行處理步驟S1到S3,直到新分割多邊形被包括在紋理高速緩存的范圍之內(nèi)。如果在第一處理步驟S1上判定的結(jié)果是“是”,也就是如果不需要分割多邊形,則處理轉(zhuǎn)到下一處理步驟S4。在處理步驟S4上,一個多邊形的預處理信息被提供給多邊形引擎33A1、33A2、…、33AN以啟動成像處理,然后,不必等待成像處理的結(jié)束,處理轉(zhuǎn)到下一個處理步驟S5。在處理步驟S5上,多邊形計數(shù)C被減量。在下一個處理步驟S6上,判斷是否多邊形計數(shù)C等于‘0’。如果在處理步驟S6處理結(jié)果是“否”,C≠0,存在多邊形要處理,則處理返回到第一處理步驟S1,進入下一個多邊形的處理。如果在處理步驟S6處理結(jié)果是“是”,也就是如果所有多邊形已完成成像,因此無多邊形要分割,處理結(jié)束。也就是,預處理器32判斷是否在繪制引擎33中,現(xiàn)在處理的多邊形包含在紋理高速緩存33F中(判斷條件1)。預處理器32根據(jù)判斷結(jié)果執(zhí)行分割處理,相應于繪制命令分割多邊形,以使新分割的多邊形被包括在紋理高速緩存33F中。這樣允許根據(jù)繪制引擎33中從紋理高速緩存33f經(jīng)過CLUT高速緩存33G讀出的紋理數(shù)據(jù),可靠而高效率地執(zhí)行紋理映射處理。用預處理器32的多邊形分割處理中,可以檢查上述第一處理步驟中是否多邊形中的象素數(shù)小于規(guī)定的值(判斷條件2),以檢查是否多邊形需要被分割及在處理步驟S2按繪制命令把多邊形分成多個在二維空間中的多邊形,以使新分割的多邊形中的象素數(shù)不大于規(guī)定值。這樣,要由繪制引擎處理的多邊形的尺寸可以相等。多邊形中的象素數(shù)的判斷亦可以通過尋找多邊形頂點的外積值求出面積及檢查是否該值小于最佳值。在用預處理器32的多邊形分割處理中,在上述處理步驟S2對應于繪制命令的多邊形能被分割成多個三維空間中的多邊形。在這種情況下,可在第一處理步驟S1中判斷是否多邊形頂點的Z值的最小值和最大值之間差包括在最佳范圍中(判斷條件3),以檢查是否多邊形需要被分割,并在處理步驟S2把對應于繪制命令的多邊形分成多個三維空間中的多邊形,以使新分的多邊形的象素數(shù)包括在規(guī)定范圍內(nèi),以限制多邊形尺寸,根據(jù)從紋理高速緩存33F經(jīng)CLUT高速緩存33G讀出的紋理數(shù)據(jù),以僅有很小紋理失真情況,執(zhí)行紋理映射處理。在這種情況,可在第一處理步驟S1,判斷是否多邊形頂點的Z值的最小和最大值參考的MIP映射紋理被跨越(判斷條件4),并根據(jù)判斷結(jié)果在處理步驟S2,把對應于繪制命令的多邊形分成多個在三維空間的多邊形,以限制在多邊形中參考的MIP映射的參考范圍,根據(jù)紋理高速緩沖器33F經(jīng)CLUT高速緩存33G讀出的MIP映射紋理數(shù)據(jù),進行有效的MIP映射。亦可以根據(jù)是否多邊形中的象素數(shù)不大于預定值,來判斷是否多邊形需要分割,根據(jù)該判斷結(jié)果,在處理步驟S2把對應于繪制命令的多邊形分成多個在三維空間中的多邊形,使得分割的新多邊形內(nèi)的象素數(shù)小于上述規(guī)定值。同樣,也可以根據(jù)例如多邊形的象素數(shù),預測繪制引擎33的繪制處理時間。在處理步驟S1,根據(jù)是否預處理器32的預處理時間同繪制引擎33的繪制處理時間平衡(判斷條件5)判斷是否多邊形需要被劃分,以及根據(jù)判斷的結(jié)果,在處理步驟S2,對應于繪制命令分割多邊形,以使預處理器32的預處理時間同繪制引擎33的繪制處理時間平衡。這使得可平衡預處理器32的預處理時間和繪制引擎33的繪制處理時間彼此間關系,以便用流水線構(gòu)建預處理器32和繪制引擎33,以有效地實現(xiàn)高速繪圖。亦可以在處理步驟S1判斷是否處理引擎33所處理的多邊形的形狀在上述處理步驟S1適合象素交錯(判斷條件6),并通過處理步驟S2對應于繪圖命令把多邊形分成形狀適合于象素交錯的多個新的多邊形。這使得可以通過繪制引擎33有效地訪問幀緩沖器18,以實現(xiàn)高速繪制處理。同樣可以在處理步驟S1,根據(jù)上述各種各樣判斷條件的組合,判斷是否多邊形需要分割,并通過處理步驟S2對應于繪制命令把多邊形分成多個新多邊形,使新分割的多邊形滿足判斷條件。具體地說,可以在處理步驟S1,根據(jù)判斷條件1和2的組合,判斷是否多邊形需要分割,并通過處理步驟S2對應于繪制命令把多邊形分成多個新多邊形,使新分割的多邊形滿足判斷條件1和2,以便經(jīng)繪制引擎33處理的多邊形的尺寸相等,及根據(jù)從紋理高速緩存33F經(jīng)CLUT高速緩存33G讀出的紋理數(shù)據(jù)可靠有效地執(zhí)行紋理映射處理。也可以在處理步驟S1,根據(jù)判斷條件1和3的組合,判斷是否多邊形需要分割,并在處理步驟S2,對應于繪制命令把多邊形分成多個新多邊形,以使新分的多邊形滿足判斷條件1和3。這使得可以根據(jù)從紋理高速緩存33F經(jīng)CLUT高速緩存33G讀出的紋理數(shù)據(jù),僅以很小的紋理失真可靠有效地實現(xiàn)紋理映射處理。另外,如果判斷條件2同上面的組合相組合,可以使由繪制引擎33處理的多邊形的尺寸、也就是象素數(shù)相等,以便執(zhí)行紋理映射。也可以在處理步驟S1根據(jù)判斷條件1和4的組合,判斷是否多邊形需要分割,且在處理步驟S2,對應于繪制命令把多邊形分成多個新的多邊形,以使新分割多邊形滿足判斷條件1和4。這使得可以根據(jù)從紋理高速緩存33F經(jīng)CLUT高速緩存33G讀出的紋理數(shù)據(jù),可靠有效地實現(xiàn)MIP映射處理。另外,如果判斷條件2和3與上面的組合相組合,則可能使繪制引擎33處理的多邊形尺寸,也就是其象素數(shù)相等,且減少紋理失真。亦可以在處理步驟S1,根據(jù)判斷條件1和5的組合,判斷是否多邊形需要分割,且在處理步驟S2,對應于繪制命令把多邊形分成多個新的多邊形,以使新分割多邊形滿足判斷條件1和5,這使得可以保持預處理器32的處理時間同繪制引擎33的處理時間均衡,以用流水線實現(xiàn)有效高速的紋理映射。另外,如果判斷條件2和3與上面的組合相組合,則可能使由繪制引擎33處理的多邊形尺寸,也就是其象素數(shù)相等,且減少紋理失真。判斷條件4亦可以同上面的組合相組合,以實現(xiàn)MIP映射。亦可以在處理步驟S1,根據(jù)判斷條件1和6的組合,判斷是否多邊形需要分割,并由處理步驟S2對應于繪制命令把多邊形分成多個新多邊形,以使新分的多邊形滿足判斷條件1和6。這使得可以通過繪制引擎33可靠有效地實現(xiàn)紋理映射,且有效地訪問幀緩沖器18以實現(xiàn)高速繪制。另外,如果判斷條件2和3同上面的組合相組合,則能使繪制引擎33處理的多邊形尺寸,也就是其象素數(shù)相等,以減少紋理失真。該判斷條件4亦可以同上面的組合相組合以實現(xiàn)MIP映射,或者判斷條件5可以同上面的組合相組合,以便用流水線實現(xiàn)高速處理。通過上述第二總線轉(zhuǎn)換器33E進行的象素交錯如下所述被實現(xiàn)。參考圖6,第二總線轉(zhuǎn)換器33E包括一個控制電路101,由圖2所示的預處理器32的輸出供給;一個選擇器102,由控制電路101的輸出供給;以及多個多路轉(zhuǎn)換器/多路分解器(MUX/DMUX)103a、103b、103c、103d、…,它們都由選擇器102的輸出供給。(MUX/DMUX)103a、103b、103c、103d、…被連到幀緩沖器18及繪制引擎33,如圖2所示。幀緩沖器18由多個存貯體[1]、[2]、…、[X]、…、[L]組成,如圖2所示。每個存貯體[1]、[2]、…、[X]、…、[L]由被16個地址表示的矩形區(qū)(交錯圖案)組成,所以可同時訪問16個地址。因此,例如幀緩沖器18的存貯體[X]具有16個輸入/輸出端口P0到P15以訪問地址A0到A15。MUX/DMUX103a、103b、103c、103d、…中的4個MUX/DMUX103a、103b、103c、103d每個連到16個輸入/輸出端口P0到P15。另外,4個MUX/DMUX103a、103b、103c、103d被連到繪制引擎33的4個相關象素引擎33DX1、33DX2、33DX3和33DX4。由于存貯體[X]以外的存貯體的構(gòu)成類似于上面所述的存貯體[X],因此為了簡化起見,不對它們作詳細說明。由第二總線轉(zhuǎn)換器33E在其它存貯體上執(zhí)行的訪問操作類似于在以后要說明的、在存貯體[X]上由第二總線轉(zhuǎn)換器33E執(zhí)行的操作。因此,在下面說明中,只解釋存貯體[X]上第二總線轉(zhuǎn)換器33E執(zhí)行的訪問操作。首先,解釋第二總線轉(zhuǎn)換器33E的一系列操作。如果例如繪制在存貯體[X]上的多邊形的形狀是三角形TABC(第一多邊形的形狀),如圖7所示,則控制電路101首先用象素交錯控制信息由預處理器32饋送。根據(jù)預處理器32的象素交錯控制信息,控制電路101轉(zhuǎn)換交錯圖案成為例如(4×4)交錯圖案,用來訪問三角形TABC的內(nèi)部。在控制電路101中轉(zhuǎn)換交錯圖案的方法將在后面詳述。在存貯體[X]上形成多個交錯圖案,這種將被訪問的交錯圖案,也就是說,這種允許三角形TABC的內(nèi)部作為一個整體被訪問的交錯圖案,用(4×4)的交錯圖案,通過控制電路101被檢測。因此,在三角形TABC中,如果在存貯體[X]上的每個交錯圖案用P(在x方向上的圖案索引和在y方向上的圖案索引)來表示,用P(x,y)=P(3,1),P(4,1),P(1,2),P(2,2),P(3,2),P(4,2),P(1,3),P(2,3),P(3,3),P(4,3),P(5,3),P(2,4),P(3,4),P(4,4),P(5,4),P(3,5),P(4,5),P(5,5),P(4,6),P(5,6)所指定的總數(shù)為20的交錯圖案被檢測,如圖8所示??刂齐娐?01把如上所述檢測的指定20個交錯圖案的圖案信息,按交錯圖案送到選擇器102。當按地址執(zhí)行存貯器訪問時,控制電路101把對應于三角形TABC形狀的屏蔽信息送到選擇器102。基于從控制電路101按交錯圖案提供的圖案信息,選擇器102指示對應于MUX/DMUX103a、103b、103c和103d所要訪問的(4×4)交錯圖案P的地址。如果從控制電路101得到屏蔽信息,選擇器102根據(jù)屏蔽信息,以(4×4)交錯圖案P執(zhí)行屏蔽的結(jié)果得到MUX/DMUX103a到103d的訪問地址,如圖9所示。因此,在圖9所示的P(4,1)所指定的交錯圖案中,作為屏蔽結(jié)果得到的訪問地址是A4、A5、A6、A8、A9、A10、A13、A14和A15,如圖10中陰影線所示。MUX/DMUX103a、103b、103c和103d訪問由選擇器102指示的存貯體[X]的地址A0到A15。象素引擎33DX1、33DX2、33DX3和33DX4分別輸出象素數(shù)據(jù)給MUX/DMUX103a、103b、103c和103d,如上所述。因此,MUX/DMUX103a訪問選擇器102所指示的地址,從象素引擎Xa,經(jīng)過對應于選擇器102所指示地址的輸入/輸出端口P0到P15中的一個,在由上述地址所指示的存貯體[X]的區(qū)域中,寫入象素數(shù)據(jù)。MUX/DMUX103a訪問選擇器102所指示的地址,以經(jīng)過對應于上面地址的輸入/輸出端口P0到P15中的一個,讀出寫入存貯體[X]上的地址指示的區(qū)域中的數(shù)據(jù)。MUX/DMUX103a對從存貯體[X]讀出的數(shù)據(jù),執(zhí)行預定處理。由于MUX/DMUX103b到103d的操作類似于上述MUX/DMUX103a的操作,因此,為了清楚,詳細說明被省略。對于在上述控制電路101中交錯圖案的改變方法,現(xiàn)在作具體的說明。首先,說明以(4×4)交錯圖案P訪問圖11所示的繪制在存貯體[X]中的形狀為橫向拉長的三角形TDEF(第二多邊形的形狀)的多邊形的內(nèi)部的次數(shù)。在這種情況下,要被訪問的交錯圖案是P(x,y)=P(1,1),P(2,1),P(3,1),P(4,1),P(5,1),P(0,2),P(1,2),P(2,2),P(3,2),P(4,2),P(5,2),P(6,2),P(7,2),P(8,2),P(7,3),P(8,3),P(9,3),總數(shù)為17,如圖12所示。也就是為了用(4×4)交錯圖案訪問三角形TDEF的內(nèi)部,作為一個整體訪問三角形TDEF的內(nèi)部的訪問次數(shù)是17。在根據(jù)地址存取時,僅要求的存貯器地址可通過執(zhí)行(4×4)交錯圖案P的屏蔽而被訪問,就像訪問上面所述三角形TABC的情況,如圖13所示。而如果三角形TDEF的內(nèi)部用圖14所示的(8×2)交錯圖案被訪問,要被訪問的交錯圖案是P1(x,y)=P1(3,1),P1(2,2),P1(0,3),P1(1,3),P1(2,3),P1(0,4),P1(1,4),P1(2,4),P1(3,4),P1(1,5),P1(2,5),P1(3,5),P1(4,5),P1(3,6),P1(4,6)總數(shù)為15,如圖15所示。也就是如果用(8×2)交錯圖案訪問三角形TDEF的內(nèi)部,為訪問三角形TDEF的整個內(nèi)部所需的訪問次數(shù)為15。在按地址訪問時,在(8×2)交錯圖案P1范圍實現(xiàn)屏蔽,如上面所述的訪問三角形TABC的情況,如圖16所示,只訪問所需的存貯器地址。而如果如17所示用(16×1)交錯圖案P2訪問三角形TDEF的內(nèi)部,要被訪問的交錯圖案是P2(x,y)=P2(0,5),P2(1,5),P2(0,6),P2(1,6),P2(0,7),P2(1,7),P2(0,8),P2(1,8),P2(0,9),P2(1,9),P2(0,10),P2(1,10),P2(2,10),P2(1,11),P2(2,11),P2(1,12),P2(2,12),P2(2,13),總數(shù)為18,如圖18所示。也就是如果用(16×1)交錯圖案訪問三角形TDFF的內(nèi)部,為訪問三角形TDEF的整個內(nèi)部所需的訪問次數(shù)為18。在按地址訪問時,在(8×2)交錯圖案P2的范圍實現(xiàn)屏蔽,如上面所述,如同訪問三角形TABC的情況,如圖19中所示,只訪問所需的存貯器地址。如上所述,用(4×4)交錯圖案P訪問三角形TDEF內(nèi)部的次數(shù)為17,而用(8×2)交錯圖案P1訪問三角形TDEF內(nèi)部的次數(shù)為15,用(16×1)交錯圖案P2訪問三角形TDEF內(nèi)部的次數(shù)為18。因此,用(8×2)交錯圖案P1訪問三角形TDEF內(nèi)部的次數(shù)為最小訪問次數(shù)??梢钥闯?,對三角形TDEF最合適的交錯圖案是(8×2)交錯圖案P1。因此,為了把用于訪問存貯體[X]的交錯圖案轉(zhuǎn)換成合適的交錯圖案以滿足將被訪問的多邊形形狀,控制電路101執(zhí)行下述處理操作。例如如果繪制在存貯體[X]的多邊形的形狀是一個三角形THIJ,如圖20所示,用于象素交錯的控制信息如上所述從預處理器32提供給控制電路101。例如,用于象素交錯的控制信息是三角形THIJ的三個頂點的xy坐標H(Xh,Yh)、I(Xi,Yi)或J(Xj,Yj)這樣的信息。而控制電路101利用來自預處理器32用于象素交錯的控制信息,用如下計算求三角形THIJ的縱橫比RR=dy/dx=(MAXy-MINy)/(MAXx-MINx)這里MAXx和MINx分別為X方向的最大和最小值,而MAXy和MINy分別為Y方向的最大和最小值,如圖20所示。在三角形THIJ中MAXx=XjMINx=XiMAXy=Y(jié)hMINy=Y(jié)i根據(jù)這樣找到的縱橫比R,控制電路101選擇(1×16)、(2×8)、(4×4)、(8×2)和(16×1)5個交錯圖案Pa到Pe中的一個,如圖21所示,且把訪問三角形THIJ內(nèi)部所用的交錯圖案轉(zhuǎn)換成所選擇的交錯圖案??刂齐娐?01具有一個關于縱橫比R和交錯圖案的表(表1)。在該表中,有預定的與各種縱橫比R值相關的合適的交錯圖案,也就是最小訪問次數(shù)的交錯圖案。于是控制電路101用上述表選擇如上獲得的同縱橫比R相關的合適的交錯圖案。表1</tables></tables>在第二總線轉(zhuǎn)換器33E中,圖21所示的5種交錯圖案Pa到Pe的合適的一種被選擇以響應要繪制在存貯體[X]的多邊形形狀,該存貯體[X]將用所選擇的交錯圖案訪問,以使多邊形用最小訪問操作次數(shù)繪制到存貯體[X]。因此,可以用第二總線轉(zhuǎn)換器33E有效地實現(xiàn)存貯器訪問。GPU15通過針對提高存貯器訪問效率的第二總線轉(zhuǎn)換器33E來訪問幀緩沖器18,用于進行各種數(shù)據(jù)的處理操作,如上所述,以實現(xiàn)有效數(shù)據(jù)處理操作。采用本發(fā)明的視頻游戲機201的構(gòu)成如圖22的平面視圖、圖23的前視圖及圖24的側(cè)視圖所例示。也就是說,本發(fā)明的視頻游戲機201基本上由主體部件202、和用電纜227同主體部件202相連接的操作裝置217組成,如圖22所示。主體部件202上表面的中部安裝一盤裝載單元203,一個示于圖25的CD-ROM251被裝載在其中,盤裝載單元203的左邊裝有一個電源開關205,用來操作接通或關閉設備,還裝有一個復位開關204,用來操作臨時復位游戲。盤裝載單元203的右邊裝有一個盤動作開關206,用來相對于盤裝載部件203進行裝載或卸載CD-ROM251的操作。在主體部件202的前面裝有連接部分207A、207B,如圖23所示。這些連接部分207A、207B裝有從操作裝置217來的電纜227前端提供的連接端子226,還裝有一個連接端子插入部分212,用來連接如存貯卡等記錄裝置228、及記錄/插入部分208。也就是說,每組有操作裝置217和記錄裝置218的兩組可連到主體部件202。圖23的前視圖顯示了這種狀態(tài),其中連接端子部分226和記錄裝置228被裝在右邊連接部分207B,既沒有連接端子部分226,也沒有記錄裝置228裝在左邊連接部分207A。用于裝記錄裝置228到其上的記錄插入部分208裝有門板209,如圖23所示。當在主體部件202上裝記錄裝置228時,門板被記錄裝置228的前端部分推開,以便進行裝載。連接端子部分226有一個滾花的把持部分231A起防滑作用。同樣地,記錄裝置228有一個滾花的把持部分242A起防滑作用。參見側(cè)視圖24,連接端子部分226具有的長度L基本上等于記錄裝置228的長度。操作裝置227具有可用左右手把持的支持物220、221。支持物220、221的前端部分分別裝有操作部件218、219。操作部件224、225用兩手的食指操作,而操作部件218、219用兩手的拇指操作。在操作部件218和219之間提供一個選擇開關222用于在游戲期間執(zhí)行選擇,還提供一個啟動開關223用于啟動游戲。采用本視頻游戲機201,裝載在盤裝載單元203上的CD-ROM251,用CD-ROM驅(qū)動器30再現(xiàn)。操作裝置217相當于上面所述的輸入裝置28,而記錄裝置228相當于輔助存貯裝置27。權利要求1.一種圖像繪制裝置,包括預處理裝置,用于根據(jù)繪制由單元圖形的組合定義的圖像模型的繪制命令,在以單元圖形為基礎的繪制處理之前產(chǎn)生繪制處理所需的數(shù)據(jù);圖像繪制裝置,用于響應在圖像存貯器中繪制圖像的所述繪制命令,通過紋理映射處理以單位圖形為基礎產(chǎn)生像素數(shù)據(jù);存貯裝置,用于臨時存貯圖像繪制裝置進行紋理映射所需的紋理數(shù)據(jù);供給裝置,用于響應由上述預處理裝置輸出的數(shù)據(jù),把所述圖像繪制裝置進行紋理映射所需的紋理數(shù)據(jù)提供給所述存貯裝置。2.根據(jù)權利要求1所述的圖像繪制裝置,其中所述圖像繪制裝置具有執(zhí)行MIP映射的功能,所述圖像繪制裝置響應所述預處理裝置輸出的數(shù)據(jù),選擇具有所需分辨率的紋理數(shù)據(jù),以提供所選擇的紋理數(shù)據(jù)給所述存貯裝置。3.一種圖像繪制方法,包括下列步驟根據(jù)繪制由單元圖形的組合定義的圖像模型的繪圖命令,以單元圖形為基礎,產(chǎn)生有關圖像繪制處理的數(shù)據(jù);根據(jù)所述數(shù)據(jù),把所述圖像繪制處理中紋理映射所需的紋理數(shù)據(jù)提供給存貯裝置;通過紋理處理產(chǎn)生單元圖形的象素數(shù)據(jù)以便在圖像存貯器中繪圖,并且在圖像存貯器中繪制圖像。4.根據(jù)權利要求3所述的圖像繪制方法,其中把所述紋理數(shù)據(jù)供給所述存貯裝置的所述步驟包括下述步驟即響應有關所述圖像繪制處理的數(shù)據(jù),在所述圖像繪制處理中提供MIP映射中所需分辨率的紋理數(shù)據(jù)。全文摘要一種用于圖形計算機、特技設備或視頻游戲機中的圖像繪制裝置和方法。根據(jù)繪圖命令,通過預處理器32的預處理產(chǎn)生圖像繪制所需的數(shù)據(jù),根據(jù)產(chǎn)生的數(shù)據(jù)通過紋理映射產(chǎn)生象素數(shù)據(jù),繪制引擎33所需的紋理數(shù)據(jù)在預處理級從幀緩沖器18的紋理區(qū)傳送到紋理高速緩存33F,預處理器32和繪制引擎33以流水線方式工作。這使紋理映射或MIP映射時不必停止圖像繪制裝置,降低了訪問紋理存貯器的次數(shù)和時間,提高了整體圖像繪制速度。文檔編號G06T15/04GK1183154SQ9719023公開日1998年5月27日申請日期1997年2月6日優(yōu)先權日1996年2月6日發(fā)明者広井聰幸,岡正昭申請人:索尼計算機娛樂公司