下面解釋本發(fā)明的實(shí)施例。為了使實(shí)施例與
權(quán)利要求書(shū)中所述的 本發(fā)明引用的每個(gè)裝置之間的相互關(guān)系清楚起見(jiàn),在每個(gè)裝置旁用括 號(hào)標(biāo)上相應(yīng)實(shí)施例(只是例子)。以下對(duì)本發(fā)明的特征進(jìn)行描述。
按照本發(fā)明的第一方面的繪圖設(shè)備包括一個(gè)存儲(chǔ)象素?cái)?shù)據(jù)的象 素?cái)?shù)據(jù)存儲(chǔ)器裝置,該象素?cái)?shù)據(jù)被輸出到輸出圖像的兩維輸出裝置 (如圖6的幀緩沖器141);一個(gè)位移量設(shè)定裝置,用于在象素?cái)?shù) 據(jù)要被繪制于象素?cái)?shù)據(jù)存儲(chǔ)裝置中時(shí),以比一個(gè)象素更精確的精度, 設(shè)定移動(dòng)繪圖位置的多個(gè)位移量(如圖18的程序處理步驟S6); 還包括在該象素?cái)?shù)據(jù)存儲(chǔ)裝置中的一個(gè)繪圖裝置,通過(guò)在相應(yīng)于位移 量設(shè)定裝置設(shè)定的多個(gè)位移量的每個(gè)位置繪制象素?cái)?shù)據(jù),將圖像繪在 其上(如圖18的程序處理步驟S14)。
所述繪圖設(shè)備進(jìn)一步包括一個(gè)記數(shù)確定裝置,確定繪圖裝置應(yīng)該 重寫(xiě)圖像的重寫(xiě)次數(shù)(如圖18的程序處理步驟S5)。
所述繪圖設(shè)備可以進(jìn)一步包括一個(gè)估算裝置,估算向象素?cái)?shù)據(jù)存 儲(chǔ)裝置繪制一屏幕的象素?cái)?shù)據(jù)所需要的繪制時(shí)間(如圖18的程序處 理步驟S4),記數(shù)確定裝置根據(jù)估算裝置估計(jì)的繪圖時(shí)間確定重寫(xiě) 次數(shù)。
如果圖像是移動(dòng)圖像,所述繪圖設(shè)備進(jìn)一步包括一個(gè)校正裝置, 根據(jù)移動(dòng)圖像的移動(dòng)校正位移量(如圖18的程序處理步驟S1 0)。
如果圖像是三維圖像,所述繪圖設(shè)備還包括一個(gè)分類(lèi)裝置,將單 元圖形按其深度方向次序排列(如圖18的程序處理步驟S7),繪 圖裝置從離視線最近的那些開(kāi)始,按次序繪制單元圖形。
所述繪圖設(shè)備可以進(jìn)一步包括一個(gè)操作裝置,當(dāng)規(guī)定的輸入被給 定時(shí)執(zhí)行操作(如圖1中的操作裝置17);一個(gè)算術(shù)運(yùn)行裝置,讀 入在存儲(chǔ)介質(zhì)中存儲(chǔ)的數(shù)據(jù),根據(jù)操作裝置(如圖5中的主CPU1 11)的輸入,用該數(shù)據(jù)執(zhí)行規(guī)定的算術(shù)運(yùn)算;以及一個(gè)例如GPU 的象素?cái)?shù)據(jù)產(chǎn)生裝置,根據(jù)算術(shù)運(yùn)算裝置產(chǎn)生的算術(shù)運(yùn)算的結(jié)果確定 象素?cái)?shù)據(jù)(如圖5中的GPU115)。
在所述繪圖設(shè)備中,如果圖像是由單元圖形組合而成的三維圖 像,則提供一個(gè)轉(zhuǎn)換裝置,根據(jù)視點(diǎn)將組成三維圖像的單元圖形轉(zhuǎn)換 為兩維輸出設(shè)備(如圖5的主CPU111)的
坐標(biāo)系中的單元圖 形;一個(gè)分類(lèi)裝置,將由轉(zhuǎn)換裝置轉(zhuǎn)換的單元圖形按其深度方向次序 排列(如圖18的程序處理步驟S7);和一個(gè)深度存儲(chǔ)裝置,記錄 代表單元圖形在其深度方向的位置的值(如圖6中的Z緩沖器),利 用該深度存儲(chǔ)裝置,繪圖裝置從靠近視點(diǎn)的那些開(kāi)始,按次序繪制單 元圖形。
在所述繪圖設(shè)備中,如果圖像是由單元圖形組合而成的三維圖 像,可以進(jìn)一步包括一個(gè)操作裝置,當(dāng)規(guī)定的輸入被給定時(shí)執(zhí)行操作 (如圖1中的操作設(shè)備17);一個(gè)算術(shù)運(yùn)行裝置,讀入在存儲(chǔ)介質(zhì) 中存儲(chǔ)的數(shù)據(jù),根據(jù)操作裝置(如圖5中的主CPU111)的輸入, 用該數(shù)據(jù)執(zhí)行規(guī)定的算術(shù)運(yùn)算;一個(gè)轉(zhuǎn)換裝置,將作為由算術(shù)運(yùn)算裝 置產(chǎn)生的結(jié)果所得到的單元圖形轉(zhuǎn)換為兩維輸出設(shè)備的坐標(biāo)系中的 單元圖形;一個(gè)分類(lèi)裝置,將由轉(zhuǎn)換裝置轉(zhuǎn)換的單元圖形按其深度方 向次序排列(如圖18的程序處理步驟S7);和一個(gè)深度存儲(chǔ)裝置, 記錄代表單元圖形在其深度方向的位置的值(如圖6中的Z緩沖器1 42),利用該深度存儲(chǔ)裝置,繪圖裝置從靠近視點(diǎn)的那些開(kāi)始,按 次序繪制單元圖形。
本說(shuō)明并不僅僅限于上面所述的每個(gè)裝置。
現(xiàn)在詳細(xì)參看附圖,圖1是使用本發(fā)明的游戲機(jī)的一個(gè)實(shí)施例的 頂視圖,圖2示出了圖1游戲機(jī)的正視圖(從圖1的下面看到的視 圖),圖3示出了圖1游戲機(jī)的側(cè)視圖(從圖1的右側(cè)看到的視圖)。
游戲機(jī)包括一個(gè)游戲機(jī)主單元2,一個(gè)操作設(shè)備(操作裝置)1 7,該操作裝置有一個(gè)近似于長(zhǎng)方型的連接終端單元26與游戲機(jī)主 單元2連接,一個(gè)記錄設(shè)備38,同樣與游戲機(jī)主單元2連接。
游戲機(jī)主單元2大體可以是長(zhǎng)方型,其中心有一個(gè)盤(pán)安裝單元 3,其中可以安裝存儲(chǔ)了
計(jì)算機(jī)程序(包括用于繪圖處理的程序,后 面將對(duì)此進(jìn)行介紹)和游戲數(shù)據(jù)的游戲記錄介質(zhì)。在該實(shí)施例中,圖 4中示出的CD-ROM(密致盤(pán)-
只讀存儲(chǔ)器)51可以被安裝到 盤(pán)安裝單元3上或從中移開(kāi)。不過(guò)游戲記錄介質(zhì)并不僅限于盤(pán)。
在盤(pán)安裝單元3的左側(cè)是一個(gè)復(fù)位
開(kāi)關(guān)4和電源開(kāi)關(guān)5,當(dāng)要復(fù) 位游戲時(shí)操作復(fù)位開(kāi)關(guān),當(dāng)要打開(kāi)或切斷電源時(shí)操作電源開(kāi)關(guān),右側(cè) 是一個(gè)盤(pán)操作開(kāi)關(guān)6,當(dāng)盤(pán)安裝單元3要被打開(kāi)或關(guān)上時(shí)操作該開(kāi) 關(guān)。在游戲機(jī)主單元2的前方是連接器7(A)和7(B),將操作 設(shè)備17和記錄設(shè)備38連接成一組。在該實(shí)施例中,連接器7(A) 和7(B)可以連接兩組操作設(shè)備17和記錄設(shè)備38。然而,也可 以根據(jù)需要采用多個(gè)連接器來(lái)連接兩組或多組操作設(shè)備17和記錄 設(shè)備38。此外,通過(guò)給連接器7(A)或7(B)安上一個(gè)適配器, 使其中一個(gè)連接器能夠連接操作設(shè)備17和記錄設(shè)備38的連接器 數(shù)目擴(kuò)充,就可以連接更多的操作設(shè)備和記錄設(shè)備。
如圖2和圖3所示,連接器7(A)和7(B)是兩級(jí)結(jié)構(gòu),其 上面一級(jí)是與記錄設(shè)備38連接的記錄插入部分8,下面一級(jí)是與操 作設(shè)備17的連接終端部分26連接的連接終端部分12。
記錄插入部分8的插入孔呈
水平長(zhǎng)方形,在其較低一側(cè)的兩端的 轉(zhuǎn)
角比較高一側(cè)的兩端轉(zhuǎn)角要園,從而形成一種結(jié)構(gòu),使記錄設(shè)備3 8不能由上向下插入。記錄插入部分8還有活
門(mén)9,保護(hù)進(jìn)行電連接 的內(nèi)部連接端(沒(méi)有示出)。
活門(mén)9的安裝使得它時(shí)刻都被由例如
彈簧線圈之類(lèi)的彈性物體 (沒(méi)有示出)強(qiáng)迫向外打開(kāi)。因此,當(dāng)記錄設(shè)備38被插入時(shí),活門(mén) 9被記錄設(shè)備38插入部分的前端向內(nèi)打開(kāi),當(dāng)記錄設(shè)備38被拔出 后,它被彈性物體的強(qiáng)迫
力恢復(fù)到原來(lái)的位置并自動(dòng)關(guān)閉,從而防止 灰塵進(jìn)入內(nèi)部連接終端,并使其不受外部沖擊。
如圖2和圖3所示,連接終端插入部分12有一個(gè)水平方向呈長(zhǎng) 方形的插頭孔,其中,在其較低一側(cè)的兩端的轉(zhuǎn)角比較高一側(cè)的兩端 轉(zhuǎn)角要園,從而形成一種結(jié)構(gòu),使操作設(shè)備17的連接終端部分26 不能由上向下插入,還有一種插入孔具有不同形狀的結(jié)構(gòu),從而記錄 設(shè)備38不能由上向下插入。因此,記錄設(shè)備38和操作設(shè)備17具 有不同大小和形狀的插入孔,從而不會(huì)將它們相互混淆。
如圖1所示,操作設(shè)備17可以握在兩手的手掌之間,用五個(gè)手 指自由操作。它包括第一和第二操作部件18和19,它們?yōu)閳A形, 并且左右對(duì)稱排列;第一和第二
支撐部件20和21,它們與第一和 第二操作部件18和19成一個(gè)角度伸出;一個(gè)選擇開(kāi)關(guān)22和一個(gè) 啟動(dòng)開(kāi)關(guān)23,它們?cè)谖挥诘谝缓偷诙僮鞑考?8和19之間的狹 窄部分;第三和第四操作部件24和25,它們從第一和第二操作部 件18和19的前面伸出,還有連接終端部分26和
電纜27,用于 與游戲機(jī)主單元2進(jìn)行電連接。
操作設(shè)備17也可以與游戲機(jī)主單元2
用例如紅外線直接電連 接,而不需要中間連接終端部分26和電纜27。
可以在操作設(shè)備17中安裝一部
電機(jī)以使其振動(dòng)。通過(guò)使操作設(shè) 備17與游戲場(chǎng)景協(xié)調(diào)振動(dòng),用戶可以有身臨其境的參與感。當(dāng)在操 作設(shè)備17中內(nèi)置電機(jī)時(shí),可以采用具有不同轉(zhuǎn)速的多個(gè)電機(jī),這樣 用戶可以有小振動(dòng)、大振動(dòng)和組合振動(dòng),與游戲的場(chǎng)景相適應(yīng)。
連接終端部分26被接在電纜27的末端上,用于與游戲機(jī)主單 元2產(chǎn)生電連接。并且如圖3所示,它在其左右兩側(cè)各有一個(gè)進(jìn)行過(guò) 防滑脫處理(如壓印凸邊)的采用具有凸脊及凹槽的波紋圖案的握持 部件。另外,在連接終端部分26上的握持部件形成所謂的可縮回部 件,并且其大小,即寬度W和長(zhǎng)度L與下面描述的記錄設(shè)備38的握 持部件的大小相同。
記錄設(shè)備38有一個(gè)內(nèi)置的
非易失性存儲(chǔ)器,例如快速存儲(chǔ)器, 并且在其兩側(cè)有握持部件(圖3),其構(gòu)造與連接終端部分26的情 況相同,從而方便將其接到游戲機(jī)主單元2和移開(kāi)。此外,記錄設(shè)備 38的構(gòu)造使得在例如游戲被暫時(shí)中斷時(shí),可以將該時(shí)的狀態(tài)存儲(chǔ) (記錄)下來(lái),從而可以在重新起動(dòng)時(shí)通過(guò)從中讀出該數(shù)據(jù),從相應(yīng) 于該數(shù)據(jù)的狀態(tài)開(kāi)始,即從中斷時(shí)的狀態(tài)開(kāi)始恢復(fù)該游戲。
如果用上面描述的游戲機(jī)玩游戲,用戶例如將操作設(shè)備17與游 戲機(jī)主單元2相連,并且在需要時(shí),也將記錄設(shè)備38與游戲機(jī)主單 元2相連。通過(guò)操作盤(pán)操作開(kāi)關(guān)6,用戶將作為游戲記錄介質(zhì)的CD -ROM51放在盤(pán)安裝單元3上,并操作電源開(kāi)關(guān)5接通游戲機(jī)主 單元2的電源。這樣,在游戲機(jī)主單元2上回放游戲的圖像
和聲音, 從而用戶可以通過(guò)運(yùn)行操作設(shè)備17來(lái)玩游戲。
接下來(lái),圖5示出了圖1的游戲機(jī)主單元2的電路構(gòu)成。
該游戲機(jī)主單元2有兩類(lèi)總線,即主總線101和子總線10 2,用于在各模
塊之間交換數(shù)據(jù),主總線101和子總線102由總 線
控制器116相連。
與主總線101相連的除了總線控制器116外,還有一個(gè)主C PU(
中央處理器)111,如
微處理器等,一個(gè)主存儲(chǔ)器112, 如RAM(
隨機(jī)存取存儲(chǔ)器),一個(gè)主DMAC(直接存儲(chǔ)器存取控 制器)113,一個(gè)MDEC(MPEG(移動(dòng)圖形專家組)譯碼器) 114和一個(gè)GPU(
圖形處理單元)115。
與子總線102相連的除了總線控制器116外,還有一個(gè)子C PU121,它例如與CPU111的構(gòu)造相同,一個(gè)子存儲(chǔ)器12 2,它例如與主存儲(chǔ)器112的構(gòu)造相同,一個(gè)子DMAC123, 一個(gè)ROM(只讀存儲(chǔ)器)124,它例如保存
操作系統(tǒng),一個(gè)SP U(聲音處理單元)125,一個(gè)ATM(異步傳輸模式)通信單元 126,一個(gè)輔助存儲(chǔ)裝置127和一個(gè)輸入裝置
接口I/F12 8。
在這里,數(shù)據(jù)由主總線101高速交換,由子總線102以低速 交換,也就是說(shuō),通過(guò)將子總線102用于可以低速交換的數(shù)據(jù),保 證了主總線101的高速運(yùn)行。
總線控制器116可以連接或斷開(kāi)主總線101和子總線10 2。如果主總線101與子總線102斷開(kāi),那么從主總線101只 能
訪問(wèn)與主總線101相連的裝置,從子總線102只能訪問(wèn)與子總 線102相連的裝置。如果子總線102與主總線101連接,那么 任何裝置都可以從主總線101或子總線102訪問(wèn)。在起始狀態(tài), 如剛接通設(shè)備的電源的時(shí)刻,總線控制器116處于打開(kāi)狀態(tài)(主總 線101與子總線102被連接的狀態(tài))。
主CPU111根據(jù)主存儲(chǔ)器112中存儲(chǔ)的程序執(zhí)行各種處 理。也就是說(shuō),當(dāng)例如裝置被啟動(dòng)時(shí),主CPU111經(jīng)由總線控制 器116從ROM124(連接到子總線102)讀取引導(dǎo)程序,并 予以執(zhí)行。這樣,主CPU111使應(yīng)用程序(即游戲程序和下面描 述的執(zhí)行繪圖處理的程序)和必要的數(shù)據(jù)從輔助存儲(chǔ)器127裝入到 主存儲(chǔ)器112和子存儲(chǔ)器122,然后主CPU111執(zhí)行裝載到 主存儲(chǔ)器112中的程序。
主CPU111有一個(gè)內(nèi)置的GTE(幾何變換引擎)117, GTE117具有例如并行操作機(jī)構(gòu),可以并行執(zhí)行多個(gè)操作,并且 根據(jù)主CPU的
請(qǐng)求為該幾何處理執(zhí)行高速算術(shù)運(yùn)算,如坐標(biāo)系轉(zhuǎn) 換、
光源計(jì)算、矩陣運(yùn)算和矢量運(yùn)算。通過(guò)根據(jù)主CPU111的請(qǐng) 求進(jìn)行處理(幾何處理),GTE117產(chǎn)生并向主CPU111提 供構(gòu)成要顯示的三維圖像的多邊形(在本
說(shuō)明書(shū)中,除了有三個(gè)或多 個(gè)
頂點(diǎn)的多邊形外,還包括直線(線段)和點(diǎn))的數(shù)據(jù)(以下簡(jiǎn)稱為 “多邊形數(shù)據(jù)”)。當(dāng)主CPU111從GTE117收到多邊形數(shù) 據(jù)后,它將該數(shù)據(jù)通過(guò)透視和投影變換轉(zhuǎn)換為二維平面數(shù)據(jù),并經(jīng)由 主總線101傳送到GPU115。
主CPU111也有一個(gè)內(nèi)置的
高速緩沖存儲(chǔ)器119,通過(guò)訪 問(wèn)高速緩沖存儲(chǔ)器119而不是主存儲(chǔ)器112可以提高處理速 度。
如上所述,主存儲(chǔ)器112除了存儲(chǔ)程序等外,還存儲(chǔ)主CPU 111處理所需要的數(shù)據(jù)。主DMAC113控制DMA傳送到主總 線101上的裝置。但是,當(dāng)總線控制器116處于打開(kāi)狀態(tài)時(shí),主 DMAC113也控制子總線102上的裝置??梢耘c主CPU11 1并行操作的I/O裝置的MDEC114起圖像擴(kuò)展引擎的作 用,也就是說(shuō),MDEC114對(duì)由MPEG編碼壓縮的圖像數(shù)據(jù)解 碼。
GPU115起描繪處理器的作用。也就是說(shuō),GPU115接 收主CPU111發(fā)送的多邊形數(shù)據(jù),根據(jù)例如多邊形頂點(diǎn)的色彩數(shù) 據(jù)和指示深度(從視點(diǎn)的深度)的Z值,計(jì)算構(gòu)成多邊形的象素?cái)?shù)據(jù), 并執(zhí)行將其寫(xiě)入(畫(huà)到)圖形存儲(chǔ)器118中的描繪處理。GPU1 15將寫(xiě)入圖形存儲(chǔ)器118中的象素?cái)?shù)據(jù)讀出來(lái),并作為
視頻信號(hào) 輸出。另外,GPU115在必要時(shí)也從主DMAC113或子總線 102上的裝置中接收多邊形數(shù)據(jù),并根據(jù)該多邊形數(shù)據(jù)執(zhí)行描繪處 理。
如圖6所示,圖形存儲(chǔ)器118包括例如DRAM,并有一個(gè)幀 存儲(chǔ)器141,一個(gè)Z緩沖器142和一個(gè)紋理存儲(chǔ)器143。幀存 儲(chǔ)器141以例如每次一幀的方式存儲(chǔ)要在屏幕上顯示的象素?cái)?shù) 據(jù)。Z緩沖器142存儲(chǔ)在屏幕上要顯示的圖像中最靠近觀察者的多 邊形的Z值,例如它有足夠的存儲(chǔ)容量存儲(chǔ)一幀的Z值。紋理存儲(chǔ)器 143存儲(chǔ)要附加到多邊形上的紋理數(shù)據(jù)。
GPU115采用
幀存儲(chǔ)器141、Z緩沖器142和紋理存儲(chǔ) 器143執(zhí)行描繪處理。也就是說(shuō),GPU115使構(gòu)成最靠近觀察 者的三維圖像的多邊形的Z值存儲(chǔ)起來(lái),并根據(jù)存儲(chǔ)在Z緩沖器14 2中的值,決定是否將象素?cái)?shù)據(jù)繪制到幀緩沖器141。如果要繪制 象素?cái)?shù)據(jù),那么從紋理存儲(chǔ)器143讀出紋理數(shù)據(jù),并用該數(shù)據(jù)確定 要繪制的象素?cái)?shù)據(jù),從而將圖像繪制到幀存儲(chǔ)器141。
GPU115還執(zhí)行Z分類(lèi),即根據(jù)其深度的順序?qū)⒍噙呅畏?類(lèi),然后從最靠近觀察者的多邊形開(kāi)始,按次序描繪。
再參看圖5,子CPU121通過(guò)讀出并執(zhí)行存儲(chǔ)在子存儲(chǔ)器1 22中的程序執(zhí)行各種處理。與主存儲(chǔ)器112一樣,子存儲(chǔ)器12 2中存儲(chǔ)了程序和需要的數(shù)據(jù)。子DMAC123控制到子總線10 2上的裝置的DMA傳送。同樣,子DMAC123只有在總線控制 器116處于閉合狀態(tài)(當(dāng)主總線101與子總線102斷開(kāi))時(shí)取得總 線使用權(quán)。ROM124,如上所述,存儲(chǔ)引導(dǎo)程序和操作系統(tǒng)等等。 ROM124中還存儲(chǔ)了主CPU111和子CPU121的程 序。ROM124具有較低的存取速度,因此它在子總線102上。
SPU125接收從子CPU121或子DMAC123發(fā)送 的信息包,并根據(jù)這些包中的聲音命令從聲音存儲(chǔ)器129讀出音頻 數(shù)據(jù)。然后SPU125輸出該讀出的音頻數(shù)據(jù)到圖中沒(méi)有示出的揚(yáng) 聲器。ATM通信單元126執(zhí)行對(duì)經(jīng)由圖中沒(méi)有示出的公共通信線 路進(jìn)行的通信的控制(ATM通信控制)。這樣,游戲機(jī)用戶可以通 過(guò)直接或經(jīng)由因特網(wǎng)或所謂的個(gè)人計(jì)算機(jī)通信中心交換數(shù)據(jù),與其它 游戲機(jī)用戶競(jìng)賽。
輔助存儲(chǔ)器127通過(guò)例如盤(pán)
驅(qū)動(dòng)器回放存儲(chǔ)在CD-ROM 51(圖1,圖4)中的信息(程序和數(shù)據(jù))。輔助存儲(chǔ)器127也 向記錄設(shè)備38(圖1)記錄信息或從中讀取信息。輸入裝置接口1 28是接收作為控制板或外部輸入設(shè)備的相應(yīng)于操作設(shè)備17(圖 1)的操作的信號(hào)(例如由其他裝置產(chǎn)生的圖像和
音頻信號(hào))的接口, 它向子總線102輸出響應(yīng)來(lái)自外部的輸入產(chǎn)生的信號(hào)。聲音存儲(chǔ)器 129存儲(chǔ)音頻數(shù)據(jù)。
在如上所述結(jié)構(gòu)的游戲機(jī)主單元2中,當(dāng)電源接通后,從ROM 124讀出啟動(dòng)程序并在主CPU111中執(zhí)行,從而程序和數(shù)據(jù)從 安裝在輔助存儲(chǔ)器127上的CD-ROM51(圖4)中讀出,并 擴(kuò)展到主存儲(chǔ)器112和子存儲(chǔ)器122中,主CPU111或子C PU121分別執(zhí)行擴(kuò)展到主存儲(chǔ)器112或子存儲(chǔ)器122中的 程序,從而回放游戲圖像(這里假定為移動(dòng)圖像)和聲音。
也就是說(shuō),例如,在主存儲(chǔ)器111中,根據(jù)存儲(chǔ)在主存儲(chǔ)器1 12中的數(shù)據(jù)產(chǎn)生用于繪制構(gòu)成所述的三維圖像的多邊形的多邊形 數(shù)據(jù)。該多邊形數(shù)據(jù)被打成信息包并經(jīng)由主總線101提供給GPU 115。
當(dāng)從主CPU111接收到一個(gè)信息包時(shí),GPU115從最接 近觀察者的多邊形開(kāi)始,進(jìn)行Z分類(lèi)并使用Z緩沖器142向幀存儲(chǔ) 器141繪圖。向幀存儲(chǔ)器141繪圖的結(jié)果被相應(yīng)地讀入GPU1 15,并以視頻信號(hào)輸出。這樣,游戲的三維圖像被顯示在例如未示 出的顯示器上作為二維輸出裝置的二維屏幕上。
與此同時(shí),在子CPU121中,根據(jù)存儲(chǔ)在子存儲(chǔ)器122中 的數(shù)據(jù)產(chǎn)生指示音頻發(fā)生的聲音命令,這些聲音命令被處理成信息包 并經(jīng)由子總線102提供給SPU125。SPU125從聲音存儲(chǔ) 器129讀取音頻數(shù)據(jù),并根據(jù)子CPU121的聲音命令輸出該音 頻數(shù)據(jù),由此輸出了游戲的背景音樂(lè)和其它聲音。
接下來(lái)對(duì)在圖5中游戲機(jī)主單元2進(jìn)行的多邊形繪圖處理作詳 細(xì)描述。
如上所述,多邊形象素?cái)?shù)據(jù)由游戲機(jī)主單元2的GPU115繪 制到幀緩沖器141。然而,當(dāng)該操作完成時(shí),以比一個(gè)象素更精確 的精度,如子象素精度,移動(dòng)象素?cái)?shù)據(jù)的繪圖位置的多個(gè)位移量被設(shè) 定,并且象素?cái)?shù)據(jù)被相應(yīng)于這些多個(gè)位移量繪制到幀緩沖器141的 每個(gè)位置(存儲(chǔ)單元),由此,多邊形,以及由該多邊形構(gòu)成的三維 圖像被重寫(xiě)。
也就是說(shuō),假定要繪制在三維空間坐標(biāo)為(x,y,z)的一個(gè) 點(diǎn),在主CPU111中該點(diǎn)(x,y,z)被根據(jù)視點(diǎn)和其它信息 進(jìn)行幾何處理,并透視轉(zhuǎn)換為屏幕坐標(biāo)系(與要顯示三維圖像的顯示 器的屏幕相應(yīng)的坐標(biāo)系)中的點(diǎn)(X,Y,Z),該屏幕坐標(biāo)系是一 個(gè)二維平面。這里,x,y,z,X,Y,Z是用浮點(diǎn)或定點(diǎn)表示的 值。平面坐標(biāo)系中點(diǎn)(X,Y,Z)的Z代表從視點(diǎn)看到的點(diǎn)在深度 方向的位置。
同樣,GPU115從視點(diǎn)的角度,為點(diǎn)(X,Y,Z)確定作 為色彩信息的R、G、B信號(hào)(Ri,Gi,Bi)和其它信息、光 源、紋理等等。Ri,Gi,Bi中的i指示它是一個(gè)整數(shù),在該實(shí) 施例中,Ri,Gi,Bi每個(gè)例如由8位表示,因此是0-255 之間的值。
現(xiàn)在假定例如重寫(xiě)次數(shù)被設(shè)定為4次,每個(gè)象素被水平和垂直分 成4部份,從而對(duì)每個(gè)象素產(chǎn)生16(=4×4)個(gè)子象素,如圖7(A) -7(D)所示,當(dāng)從第一至第四次繪制點(diǎn)(X,Y,Z)時(shí),GP U115對(duì)屏幕坐標(biāo)系的繪圖位置設(shè)定每個(gè)位移量(dX,dY),例 如,為(0.0,0.0),(0.5,0.0),(0.5,0.5),(0.0,0.5), 這是兩倍子象素的精度(這里是象素的1/2)。在圖7(A)-7(D) (以及后面的圖8-17)中,X或Y坐標(biāo)軸的正方向分別朝右或朝 上。
隨后,CPU115通過(guò)根據(jù)位移量(dX,dY)移動(dòng)繪圖位 置來(lái)繪制點(diǎn)。
也就是說(shuō),在第一次繪圖時(shí),GPU115用坐標(biāo)(0.0, 0.0)移動(dòng)點(diǎn)(X,Y,Z),并將移位后的點(diǎn)(X,Y,Z)轉(zhuǎn)換 為子象素精度的點(diǎn)(Xs,Ys,Zs)(以下,為方便起見(jiàn),將之 稱為子象素精度)。Xs,Ys,Zs中的s指示它是具有子象素精 度的一個(gè)值;在圖7(A)-7(D)中,由于一個(gè)象素被水平和垂 直分為四等分,子象素精度是0.25(=1/4)。也就是說(shuō),在 圖7中,在左下角的子象素坐標(biāo)被設(shè)定為(0.0,0.0),當(dāng)向 右或向上移動(dòng)時(shí),子象素坐標(biāo)每次增加0.25。
然后,相應(yīng)于點(diǎn)(Xs,Ys,Zs)的色彩信息(Ri,Gi, Bi)被寫(xiě)入包括相應(yīng)于點(diǎn)(Xs,Ys,Zs)的子象素的象素的 位置。對(duì)色彩信息來(lái)說(shuō)(象素信息),由重寫(xiě)次數(shù)劃分而得到的值被 寫(xiě)入。詳細(xì)地說(shuō),由于這里重寫(xiě)次數(shù)是4次,(Ri/4,Gi/4, Bi/4)被作為色彩信息寫(xiě)入。
這里假定要繪制的點(diǎn)(X,Y,Z)的X或Y坐標(biāo)分別為1.6或1.3, 在第一次繪圖時(shí),點(diǎn)(1.6,1.3,Z)被(0.0,0.0)位移,并且如圖7 (A)所示,正確地說(shuō)要被寫(xiě)入的色彩信息的1/4(在圖7(A)中用垂 直的虛線表示的部分)被寫(xiě)入到包括相應(yīng)于點(diǎn)(1.5,1.25,Zs)的子象 素的象素的位置(1,1),點(diǎn)(1.5,1.25,Zs)是通過(guò)對(duì)這一位移的點(diǎn) (1.6,1.3,Z)作子象素精度轉(zhuǎn)換得到的(由圖7(A)中的黑圈表示)。
在第二次繪制時(shí),GPU115用(0.5,0.0)位移點(diǎn)(X,Y,Z), 并且將該位移的點(diǎn)子象素精度轉(zhuǎn)換為點(diǎn)(Xs,Ys,Zs)。然后色彩信息 (Ri,Gi,Bi)的1/4被重寫(xiě)到包含與點(diǎn)(Xs,Ys,Zs)相應(yīng)的子象素的 象素位置。
也就是說(shuō),如上所述,假定要繪制的點(diǎn)(X,Y,Z)的X或Y 坐標(biāo)分別為1.6或1.3,在第二次繪圖時(shí),點(diǎn)(1.6,1.3,Z)被位 移(0.5,0.0),并且如圖7(B)所示,正確地說(shuō)要寫(xiě)入的色彩信息 的1/4(在圖7(B)中用水平的虛線表示的部分)被寫(xiě)入到包括相應(yīng) 于點(diǎn)(2.0,1.25,Zs)的子象素的象素的位置(2,1),點(diǎn)(2.0,1.25,Zs) 是通過(guò)對(duì)位移后的點(diǎn)(2.1,1.3,Z)作子象素精度轉(zhuǎn)換得到的(由圖7 (B)中的黑圈表示)。詳細(xì)地說(shuō),在象素(2,1)中,正確地說(shuō)要 被寫(xiě)入的色彩信息的1/4被加到已經(jīng)寫(xiě)入的色彩信息上,并且其和被 寫(xiě)入象素(2,1)。
在第三次和第四次繪圖時(shí)也采取同樣的步驟。也就是說(shuō),假定例 如要繪制的點(diǎn)(X,Y,Z)的X或Y坐標(biāo)分別為1.6或1.3,在第 三次繪圖時(shí),點(diǎn)(1.6,1.3,Z)被位移(0.5,0.5),并且如圖7(C) 所示,適當(dāng)?shù)卣f(shuō)要被寫(xiě)入的色彩信息的1/4(在圖7(C)中用斜虛線 表示的部分)被寫(xiě)入到包括相應(yīng)于點(diǎn)(2.0,1.75,Zs)的子象素的象 素的位置(2,1),點(diǎn)(2.0,1.75,Zs)是通過(guò)對(duì)位移后的點(diǎn)(2.1,1.8,Z) 作子象素精度轉(zhuǎn)換得到的(由圖7(C)中的黑圈表示)。詳細(xì)地說(shuō), 在象素(2,1)中,適當(dāng)?shù)卣f(shuō)要被寫(xiě)入的色彩信息的1/4被加到已經(jīng) 寫(xiě)入的色彩信息上,并且其和被寫(xiě)入象素(2,1)。
在第四次繪圖時(shí),點(diǎn)(1.6,1.3,Z)被位移(0.0,0.5),并且 如圖7(D)所示,適當(dāng)?shù)卣f(shuō)要被寫(xiě)入的色彩信息的1/4(在圖7(D) 中用斜虛線表示的部分)被寫(xiě)入到包括相應(yīng)于點(diǎn)(1.5,1.75,Zs)的 子象素的象素的位置(1,1),點(diǎn)(1.5,1.75,Zs)是通過(guò)對(duì)所位移 的點(diǎn)(1.6,1.8,Z)作子象素精度轉(zhuǎn)換得到的(由圖7(D)中的黑圈 表示)。詳細(xì)地說(shuō),在象素(1,1)中,適當(dāng)?shù)卣f(shuō)要被寫(xiě)入的色彩信 息的1/4被加到已經(jīng)寫(xiě)入的色彩信息上,并且其和被寫(xiě)入象素(1,1)。
上面所述的繪圖點(diǎn)(1.6,1.3,Z)的結(jié)果(重寫(xiě)的結(jié)果)示于圖8。
通過(guò)進(jìn)行如上所述的重寫(xiě),分辨率基本上可以增加4倍,從而可 以達(dá)到排除假信號(hào)。
如果要進(jìn)行重寫(xiě),當(dāng)每次繪圖的位移量(dX,dY)如上所述被設(shè) 置為(0.0,0.0),(0.5,0.0),(0.5,0.5),(0.0,0.5)時(shí), 繪圖點(diǎn)的位置有時(shí)被位移到其適當(dāng)位置的右上角,因此,為了防止這 種位移,位移量(dX,dY)可以設(shè)置到例如(-0.25,-0.25), (0.25,-0.25),(0.25,0.25),(-0.25,0.25)(從而每次位 移量dX或dY的平均值為零)。
接下來(lái),盡管對(duì)圖7(A)-7(D)和圖8中的每個(gè)象素假定了16 個(gè)子象素,但如果例如每個(gè)象素被劃分為如圖9所示在水平和垂直方 向的兩個(gè)相等部分時(shí),也就是假定每個(gè)象素有4(=2×2)子象素時(shí), 也可以進(jìn)行同樣的重寫(xiě)操作。
如圖10所示,如果要繪制點(diǎn)(1.6,2.2,Z)(為簡(jiǎn)便起見(jiàn),下面 省略Z坐標(biāo)),然后,適當(dāng)?shù)刂v,對(duì)點(diǎn)(1.6,2.2)作子象素精度轉(zhuǎn) 換,并被設(shè)置到如圖10中的黑圈所示的點(diǎn)(1.5,2.0),然后,適當(dāng) 地說(shuō)要被寫(xiě)入的色彩信息被寫(xiě)入到包括相應(yīng)于點(diǎn)(1.5,2.0)的子象 素的象素位置(1,2)。
圖11(A)-11(D)示出了解釋點(diǎn)的重寫(xiě)的示意圖。圖11(A) 示出了當(dāng)位移量為dX=0.0,dY=0.0時(shí)的一個(gè)顯示象素(第一次), 圖11(B)示出了當(dāng)位移量為dX=0.5,dY=0.0時(shí)的一個(gè)顯示象素(第 二次),圖11(C)示出了當(dāng)位移量為dX=0.0,dY=0.5時(shí)顯示的象 素(第三次),圖11(D)示出了當(dāng)位移量為dX=0.5,dY=0.5時(shí)顯 示的象素(第四次)。
基于如上所述,對(duì)圖5所示的游戲機(jī)主單元2,在起始階段,當(dāng) 從第一次到第四次開(kāi)始繪圖時(shí),GPU115為屏幕坐標(biāo)系中的繪圖位置分 別設(shè)置每個(gè)位移量(dX,dY),例如為(0.0,0.0),(0.5,0.0), (0.0,0.5),(0.5,0.5),它們被做了子象素精度處理(這里是象 素的1/2)。然后,在第一次繪圖時(shí),點(diǎn)(1.6,2.2)被移位(0.0,0.0), 對(duì)移位后的點(diǎn)(1.6,2.2)進(jìn)行子象素精度處理,并設(shè)置為點(diǎn) (1.5,2.0),如圖11(A)中的黑圈所示。然后,只是適當(dāng)?shù)卣f(shuō)要被 寫(xiě)入的色彩信息的1/4的色彩信息,被寫(xiě)入包括相應(yīng)于點(diǎn)(1.5,2.0) 的子象素的象素的位置(1,2),如圖11(A)中垂直虛線所示。
在第二次繪圖時(shí),點(diǎn)(1.6,2.2)被移位(0.5,0.0),對(duì)移位后 的點(diǎn)(2.1,2.2)進(jìn)行子象素精度處理,并設(shè)置為點(diǎn)(2.0,2.0),如 圖11(B)中的黑圈所示。然后,只是適當(dāng)?shù)卣f(shuō)要被寫(xiě)入的色彩信息 的1/4的色彩信息,被寫(xiě)入包括相應(yīng)于點(diǎn)(2.0,2.0)的子象素的象 素的位置(2,2),如圖11(B)中水平虛線所示。
在第三次繪圖時(shí),點(diǎn)(1.6,2.2)被移位(0.0,0.5),然后,對(duì) 移位后的點(diǎn)(1.6,2.7)進(jìn)行子象素精度處理,并設(shè)置為點(diǎn)(1.5,2.5), 如圖11(C)中的黑圈所示。然后,只是適當(dāng)?shù)卣f(shuō)要被寫(xiě)入的色彩信 息的1/4的色彩信息,被寫(xiě)入包括相應(yīng)于點(diǎn)(1.5,2.5)的子象素的 象素的位置(1,2),如圖11(C)中左下斜虛線所示。
在第四次繪圖時(shí),點(diǎn)(1.6,2.2)被移位(0.5,0.5),然后,對(duì) 移位后的點(diǎn)(2.1,2.7)進(jìn)行子象素精度處理,并設(shè)置為點(diǎn)(2.0,2.5), 如圖11(D)中的黑圈所示。然后,只是適當(dāng)?shù)卣f(shuō)要被寫(xiě)入的色彩信 息的1/4的色彩信息,被寫(xiě)入包括相應(yīng)于點(diǎn)(2.0,2.5)的子象素的 象素的位置(2,2),如圖11(D)中右下斜虛線所示。
如上所述的繪圖點(diǎn)(1.6,2.2)的結(jié)果如圖12中的虛線所示,通 過(guò)比較圖10和圖12,可以清楚地看到,通過(guò)重寫(xiě)處理達(dá)到了消除假 信號(hào)的效果。
這里,無(wú)論是圖7(A)-7(D)的情況,還是圖11(A)-11(D) 的情況,位移量都采用了(0.0,0.0),(0.5,0.0),(0.0,0.5), (0.5,0.5)。然而,在四次繪圖中使用位移量的次序是不同的(圖7 中的次序是(0.0,0.0),(0.5,0.0),(0.5,0.5),(0.0,0.5), 圖11的次序是(0.0,0.0),(0.5,0.0),(0.0,0.5),(0.5,0.5))。 但位移量的使用次序?qū)χ貙?xiě)的圖形質(zhì)量沒(méi)有影響。
同樣,在圖7(A)-7(D)的情況下進(jìn)行的子象素精度處理也與 圖11(A)-11(D)的情況不同(在圖7(A)-7(D),它是一個(gè)象 素精度的1/16,而在圖11(A)-11(D)中是一個(gè)象素精度的1/4)。 但這對(duì)重寫(xiě)圖形的質(zhì)量也沒(méi)有影響(如果進(jìn)行四次重寫(xiě),無(wú)論子象素 精度是1/4還是1/16,對(duì)“重寫(xiě)導(dǎo)致”的圖形質(zhì)量改進(jìn)都沒(méi)有影響, 但如果考慮重寫(xiě),那么較高的子象素精度會(huì)導(dǎo)致較好的圖形質(zhì)量)。
圖13(A)-13(D)是解釋重寫(xiě)過(guò)程的示意圖。圖13(A)的直 線示出了當(dāng)1.5=<X<2.0,2.5=<Y<3.0(象素值=64)時(shí)的重寫(xiě)結(jié)果。 圖13(B)示出了當(dāng)1.5=<X<2.0,2.0=<Y<2.5(象素值=128)時(shí)的 重寫(xiě)結(jié)果。圖13(C)示出了當(dāng)1.0=<X<1.5,2.5=<Y<3.0(象素值=128) 時(shí)的重寫(xiě)結(jié)果。圖13(D)示出了當(dāng)1.0=<X<1.5,2.0=<Y<2.5(象素 值=255)時(shí)的重寫(xiě)結(jié)果。
同樣,如上所述,如果重寫(xiě)次數(shù)設(shè)置為4次,在進(jìn)行四次繪圖時(shí) 的位移量被設(shè)置為(0.0,0.0),(0.5,0.0),(0.0,0.5),(0.5,0.5), 當(dāng)點(diǎn)(X,Y)的X坐標(biāo)大于等于1.5并小于2.0,Y坐標(biāo)大于等于2.5 并小于3.0,那么,當(dāng)如圖13(A)所示進(jìn)行第一至第四次繪圖時(shí), 分別繪制由坐標(biāo)(1,2),(2,2),(1,3),(2,3)表示的象 素。由于在進(jìn)行每次繪圖時(shí),被重寫(xiě)的色彩信息確切地說(shuō)是要繪制的 色彩信息的1/4,如果現(xiàn)在
亮度由8位表示(0至255),并且點(diǎn)(X, Y)的亮度被設(shè)置為最大值255,那么由坐標(biāo)(1,2),(2,2),(1, 3),(2,3)表示的每個(gè)象素的亮度是64,即255的1/4(這里假 定小數(shù)部分被入到下一個(gè)最大的整數(shù))。
當(dāng)點(diǎn)(X,Y)的X坐標(biāo)例如大于等于1.5并小于2.0,Y坐標(biāo)大 于等于2.0并小于2.5,那么,當(dāng)如圖13(B)所示進(jìn)行第一至第四 次繪圖時(shí),分別繪制由坐標(biāo)(1,2),(2,2),(1,2),(2,2) 表示的象素。在這種情況下,只是確切地說(shuō)要寫(xiě)入的色彩信息的1/4 的色彩信息對(duì)由坐標(biāo)(1,2)和(2,2)表示的象素各重寫(xiě)一次,如 果現(xiàn)在亮度由8位表示,并且點(diǎn)(X,Y)的亮度被設(shè)置為最大值255, 那么由坐標(biāo)(1,2)和(2,2)表示的每個(gè)象素的亮度為128。也就 是說(shuō),根據(jù)如上所述,第一次繪圖亮度是64,從而第二次繪圖的象素 亮度是128(=64+64)。
當(dāng)點(diǎn)(X,Y)的X坐標(biāo)例如大于等于1.0并小于1.5,Y坐標(biāo)大 于等于2.5并小于3.0,那么,當(dāng)如圖13(C)所示進(jìn)行第一至第四 次繪圖時(shí),分別繪制由坐標(biāo)(1,2),(1,3),(1,2),(1,3) 表示的象素。在這種情況下,只是確切地說(shuō)要寫(xiě)入的色彩信息的1/4 的色彩信息對(duì)由坐標(biāo)(1,2)和(1,3)表示的象素各重寫(xiě)一次,如 果現(xiàn)在亮度由8位表示,并且點(diǎn)(X,Y)的亮度被設(shè)置為最大值255, 那么由坐標(biāo)(1,2)和(1,3)表示的每個(gè)象素的亮度為128。與圖 13(B)的情況相同。
當(dāng)點(diǎn)(X,Y)的X坐標(biāo)例如大于等于1.0并小于1.5,Y坐標(biāo)大 于等于2.0并小于2.5,那么,當(dāng)如圖13(D)所示進(jìn)行第一至第四 次繪圖時(shí),繪制由坐標(biāo)(1,2)表示的象素。在這種情況下,由于只 是確切地說(shuō)要寫(xiě)入的色彩信息的1/4的色彩信息要重寫(xiě)四次,對(duì)由坐 標(biāo)(1,2)表示的象素各重寫(xiě)一次,如果現(xiàn)在亮度由8位表示,并且 點(diǎn)(X,Y)的亮度被設(shè)置為最大值255,那么由坐標(biāo)(1,2)表示的 象素的亮度為255。也就是說(shuō),根據(jù)如上所述,第一次繪圖亮度是64, 從而第四次繪圖的象素亮度確切地說(shuō)應(yīng)該是256(=64+64+64+64)。 但由于這里亮度的最大值被設(shè)置為155,比255大的256被削減為最 大值255。
前面介紹了繪制點(diǎn)的情況,接下來(lái)將參考圖14(A)-14(D)詳 細(xì)介紹繪制線段的情況,其中,圖14(A)示出了第一次繪圖的情況, 圖14(B)示出了第二次繪圖的情況,圖14(C)示出了第三次繪圖 的情況,圖14(D)示出了第四次繪圖的情況。
要繪制的線段的起點(diǎn)或終點(diǎn)分別由(x1,y1,z1)或(x2,y2,z2) 表示。并且進(jìn)一步規(guī)定起點(diǎn)和終點(diǎn)是經(jīng)過(guò)透視轉(zhuǎn)換(透視和投影轉(zhuǎn) 換)后屏幕坐標(biāo)系中的點(diǎn)。
假定例如重寫(xiě)次數(shù)被設(shè)定為4次,并且每個(gè)象素被水平和垂直各 分為4等分,從而對(duì)每個(gè)象素產(chǎn)生16個(gè)子象素,如圖14所示,當(dāng)線 段被繪制第一至第四次時(shí),GPU115對(duì)屏幕坐標(biāo)系中的每個(gè)繪圖位置設(shè) 置每個(gè)位移量為例如(0.0,0.0),(0.5,0.0),(0.5,0.5), (0.0,0.5),它們是兩倍的子象素(這里為象素的1/2)精度。
此后,CPU114通過(guò)根據(jù)位移量(dX,dY)移動(dòng)繪圖位置來(lái)繪制線 段。
也就是說(shuō),在第一次繪圖時(shí),GPU115將起點(diǎn)(x1,y1,z1)和終 點(diǎn)(x2,y2,z2)分別移位(0.0,0.0),并在這些點(diǎn)用DDA(數(shù)字差 分分析)操作(稍后討論)和色彩信息等等確定在位移的起點(diǎn)和終點(diǎn) 之間用子象素精度插值的點(diǎn)。然后,用點(diǎn)(X1s,Y1s,Z1s)至 (Xns,Yns,Zns)指示這組子象素精度點(diǎn),色彩信息(即如上所述, 確切地說(shuō)是色彩信息的1/4的色彩信息)被寫(xiě)入包括相應(yīng)于這些點(diǎn) (X1s,Y1s,Z1s)至(Xns,Yns,Zns)的子象素的象素的位置。
這時(shí),例如繪制包括相應(yīng)于構(gòu)成線段的子象素精度點(diǎn)的兩個(gè)或多 個(gè)子象素的象素,并且作為色彩信息,將例如包括在該象素中的子象 素的色彩信息的平均值(的1/4),寫(xiě)入將要繪制的象素中。
第二至第四次繪圖方式與第一次相同,不過(guò)這時(shí)的位移量被分別 設(shè)置為(0.5,0.0),(0.5,0.5),(0.0,0.5)。
這里,假定要繪制的線段的起點(diǎn)或終點(diǎn)分別是例如點(diǎn) (1.6,1.3,z1)或點(diǎn)(4.6,4.3,z2),在第一次繪圖時(shí),繪制由圖 14(A)的垂直虛線示出部分的象素;在第二次繪圖時(shí),繪制由圖14 (B)的水平虛線示出部分的象素;在第三次繪圖時(shí),繪制由圖14(C) 的左下斜虛線示出部分的象素;在第四次繪圖時(shí),繪制由圖14(D) 的右下斜虛線示出部分的象素。由此繪制的線段的結(jié)果由圖15的虛 線所示。
接下來(lái),盡管對(duì)圖14(A)-14(D)和圖15中每個(gè)象素假定16 個(gè)子象素,但如果如圖16(A)-16(D)所示將每個(gè)象素水平和垂直 均分為相同的兩部分,從而每個(gè)象素產(chǎn)生4個(gè)子象素,也可以進(jìn)行同 樣的重寫(xiě)操作。
圖16(A)示出了當(dāng)位移量為dX=0.0,dY=0.0時(shí)的顯示象素。 圖16(B)示出了當(dāng)位移量為dX=0.5,dY=0.0時(shí)的顯示象素。圖16 (C)示出了當(dāng)位移量為dX=0.0,dY=0.5時(shí)的顯示象素。圖16(D) 示出了當(dāng)位移量為dX=0.5,dY=0.5時(shí)的顯示象素。
也就是說(shuō),如果要如上所述通過(guò)四次重寫(xiě)繪制起點(diǎn)或終點(diǎn)分別為 點(diǎn)(1.6,1.3,z1)或點(diǎn)(4.6,4.3,z2)的一條線段,然后,在第一至 第四次繪圖時(shí),分別設(shè)置子象素精度(象素的1/2的精度)點(diǎn) (0.0,0.0),(0.5,0.0),(0.0,0.5),(0.5,0.5)作為屏幕 坐標(biāo)系中繪圖位置的位移量(dX,dY),那么在第一次繪圖時(shí),繪制 由圖16(A)的垂直虛線示出部分的象素;在第二次繪圖時(shí),繪制由 圖16(B)的水平虛線示出部分的象素;在第三次繪圖時(shí),繪制由圖 16(C)的左下斜虛線示出部分的象素;在第四次繪圖時(shí),繪制由圖 16(D)的右下斜虛線示出部分的象素。
這時(shí),繪制例如包括相應(yīng)于構(gòu)成線段的子象素精度點(diǎn)的兩個(gè)或多 個(gè)子象素的象素,并且作為色彩信息,將例如包括在該象素中的子象 素的色彩信息的平均值(的1/4),寫(xiě)入將要繪制的象素中。
如上所述通過(guò)重寫(xiě)繪制線段的結(jié)果由圖17(A)的虛線所示。
在圖17(A)中,消除假信號(hào)的直線被產(chǎn)生了四次。圖中示出了 子象素DDA結(jié)果和包括有效子象素的顯示象素。
反之,如果通過(guò)一次繪圖來(lái)繪制同一線段,繪圖的結(jié)果將如圖17 (B)中的左下斜虛線所示。從圖17(A)-17(B)可以清楚地看到, 通過(guò)重寫(xiě)可以減少假信號(hào)。
接下來(lái),參考圖18所示的流程圖,來(lái)描述圖5的游戲機(jī)主單元2 中進(jìn)行的多邊形繪圖處理。這里,假定繪制多邊形所需要的數(shù)據(jù),包 括形狀數(shù)據(jù)和光源數(shù)據(jù),已經(jīng)由主CPU111從CD-ROM51讀出,并存儲(chǔ) 在主存儲(chǔ)器112中。
在繪圖過(guò)程中,首先,在步驟S1,主CPU111經(jīng)由主總線101讀 出例如繪制包括一個(gè)三維圖像的一幀的多邊形的數(shù)據(jù),并提供給 GTE117。采用GTE117,在步驟S2,根據(jù)視點(diǎn)對(duì)三維空間中每個(gè)多邊 形進(jìn)行幾何處理,并對(duì)幾何處理后的數(shù)據(jù)進(jìn)行透視轉(zhuǎn)換。這里視點(diǎn)是 由例如用戶運(yùn)行操作設(shè)備17(圖1)來(lái)給出的。
之后進(jìn)行到步驟S3,通過(guò)對(duì)已經(jīng)透視轉(zhuǎn)換后的屏幕坐標(biāo)系中的多 邊形執(zhí)行亮度計(jì)算和紋理地址計(jì)算,在主CPU111中確定多邊形數(shù)據(jù), 并將其經(jīng)由主總線101提供給GPU115。
這里多邊形數(shù)據(jù)包括例如X,Y,Z,R,G,B,α,S,T,Q,F(xiàn)。
在多邊形數(shù)據(jù)X,Y,Z,R,G,B,α,S,T,Q,F(xiàn)中,數(shù)據(jù)X, Y,Z分別代表三角形的三個(gè)頂點(diǎn)的X,Y,Z坐標(biāo),R,G,B分別代表 三個(gè)頂點(diǎn)的紅、綠、藍(lán)亮度值。
同樣,α代表一個(gè)混合因子,該因子表示當(dāng)要繪制象素的RGB值, 并且要與已經(jīng)繪制的象素的RGB值進(jìn)行α混合時(shí),該混合的比率。α 是一個(gè)例如大于或等于0并小于或等于1的實(shí)數(shù),當(dāng)要繪制的象素的 象素值(RGB值)由Fc表示,已經(jīng)繪制的象素的象素值用Bc表示時(shí), 通過(guò)α混合得到的象素值Cc由例如下面的算式得到:
Cc=αFc+(1-α)Bc
S,T,Q分別代表三角形的三個(gè)頂點(diǎn)的紋理坐標(biāo)(紋理的同一坐 標(biāo)(homogeneous?coordinate))。也就是說(shuō),通過(guò)紋理映射將花紋 (紋理)加到一個(gè)物體的表面,并且S,T,Q被用于該紋理映射。用 紋理大小分別乘以S/Q,T/Q得到的值為紋理地址。
F是表示要將繪制的象素變得模糊時(shí)的模糊程度,例如,該值越 大,顯示的影像越模糊。
在多邊形數(shù)據(jù)被確定之后,我們進(jìn)行到步驟S4,在主CPU111中 估算繪制一幀圖像的時(shí)間。也就是說(shuō),主CPU111由多邊形的數(shù)目, 也就是在一幀中要繪制的多邊形的數(shù)目(在步驟S1中讀出的數(shù)據(jù)), 估算例如一次繪制一幀需要的時(shí)間。然后,在步驟S5,主CPU111確 定根據(jù)在步驟S4中估算的繪圖時(shí)間確定重寫(xiě)次數(shù)N,并將其經(jīng)由主總 線101提供給GPU115。
這里,在圖7(A)-7(D)至圖17(A)-17(B)的情況下, 重寫(xiě)次數(shù)被設(shè)定為一個(gè)固定值,四次。但是,如果重寫(xiě)次數(shù)被設(shè)定為 一個(gè)固定值,如果構(gòu)成一幀的多邊形的數(shù)目龐大,那么繪圖可能不能 在一幀的時(shí)間內(nèi)完成,從而處理將會(huì)失敗。另一方面,如果忽視RGB 值的動(dòng)態(tài)范圍和子象素精度,重寫(xiě)次數(shù)越大,分辯率就越好。因此, 在本實(shí)施例中,重寫(xiě)次數(shù)N是根據(jù)一幀的繪圖時(shí)間自適應(yīng)確定的,從 而可以在一定范圍內(nèi)進(jìn)行盡可能多次重寫(xiě),以保證處理不會(huì)失敗(這 里,該范圍是可以保持
幀速率的一個(gè)范圍)。
但是,如果構(gòu)成一幀的多邊形數(shù)目有限,那么重寫(xiě)次數(shù)可以被設(shè) 定為一個(gè)能夠保證處理不會(huì)失敗的固定值。如果重寫(xiě)次數(shù)可以與構(gòu)成 一個(gè)象素的子象素的數(shù)目一樣多,從理論上講,這樣的重寫(xiě)對(duì)改進(jìn)圖 像質(zhì)量的效果最大,并且重寫(xiě)次數(shù)超出該數(shù)目并不能獲得額外的效 果。因此,在設(shè)備的處理能力足夠,并且既使重寫(xiě)次數(shù)被設(shè)定為大于 構(gòu)成一個(gè)象素的子象素的數(shù)目,處理也不會(huì)失敗,理想情況是要求將 重寫(xiě)次數(shù)設(shè)定為構(gòu)成一個(gè)象素的子象素?cái)?shù)目,從而避免處理“浪費(fèi)”。 基于同樣的原因,既使重寫(xiě)次數(shù)是自適應(yīng)確定的,理想情況是當(dāng)重寫(xiě) 次數(shù)大于構(gòu)成一個(gè)象素的子象素?cái)?shù)目時(shí),要求將其限制到構(gòu)成一個(gè)象 素的子象素?cái)?shù)目。
當(dāng)重寫(xiě)次數(shù)N被確定后,我們進(jìn)入步驟S6,在該步驟,主CPU111 在進(jìn)行與重寫(xiě)次數(shù)N一樣的多次繪圖的情況下,對(duì)每次繪圖設(shè)定位移 量(dX,dY),并將其提供給GPU115。理想情況是要求位移量被設(shè)定為 子象素精度或更好,而小于一個(gè)象素的精度。
當(dāng)GPU115接收到如上所述由CPU111提供的一幀的多邊形數(shù)據(jù)、 重寫(xiě)次數(shù)N、和重寫(xiě)次數(shù)的位移量時(shí),在步驟S7進(jìn)行Z分類(lèi),將包括 一幀的多邊形按其深度方向的次序分類(lèi)。Z分類(lèi)的詳細(xì)描述可參考例 如未審查
專利申請(qǐng)H7-114654(1995)。
然后,在步驟S8,GPU115將幀緩沖器141清空,并進(jìn)行到步驟S9, 將記錄繪圖次數(shù)的變量n初始化為例如1。接著進(jìn)行到步驟 S10,GPU115在第n次繪制每個(gè)多邊形時(shí),根據(jù)其移動(dòng)校正位移量。
除了上面所述的以外,多邊形數(shù)據(jù)還包括多邊形
運(yùn)動(dòng)矢量?,F(xiàn)在 假定一個(gè)給定的多邊形的運(yùn)動(dòng)矢量是(vx,vy),并且(dXn,dYn)被 設(shè)定為用于第n次繪制多邊形的位移量,該位移量(dXn,dYn)被校 正為例如(dXn+vx/N,dYn+vy/N)。通過(guò)用這樣校正的位移量繪圖, 可以得到
運(yùn)動(dòng)模糊效果。
在對(duì)位移量校正之后,我們進(jìn)行到步驟S11,在該步驟GPU115 用校正的位移量對(duì)每個(gè)多邊形的頂點(diǎn)的坐標(biāo)移位,然后,進(jìn)行到步驟 S12。在步驟S12,Z緩沖器142在GPU115中被初始化為例如+∞(這 里假定點(diǎn)在屏幕內(nèi)的位置越深,Z值就越大),接著進(jìn)入步驟S13。 在步驟S13,對(duì)多邊形頂點(diǎn)的坐標(biāo)作子象素精度轉(zhuǎn)換,通過(guò)以子象素 精度執(zhí)行DDA
算法運(yùn)算,確定構(gòu)成多邊形的邊和內(nèi)部的子象素的RGB 值等等。
這里,DDA算法運(yùn)算指在兩個(gè)點(diǎn)之間通過(guò)線性插值確定構(gòu)成兩點(diǎn) 之間的線段的象素的每個(gè)值(RGB值等等)的算術(shù)運(yùn)算。也就是說(shuō), 例如當(dāng)兩點(diǎn)之間的一點(diǎn)被作為起點(diǎn),另一點(diǎn)被作為終點(diǎn),并給起點(diǎn)和 終點(diǎn)
指定一定的值,然后,通過(guò)用在起點(diǎn)和終點(diǎn)之間的象素?cái)?shù)目去除 起點(diǎn)值和終點(diǎn)值之間的差,確定賦給起點(diǎn)和終點(diǎn)的值的比例變化(變 化率),在起點(diǎn)和終點(diǎn)之間的每個(gè)象素的值,是在從起點(diǎn)進(jìn)行到終點(diǎn) 時(shí),通過(guò)將變化率連續(xù)加到(積分)指定給起點(diǎn)的值確定的。
例如,假定象素p1,p2,p3是一個(gè)三角形的三個(gè)頂點(diǎn),用子象素 精度相應(yīng)于子象素p1和p2、子象素p2和p3、子象素p1和p3執(zhí)行 DDA算術(shù)運(yùn)算,從而將X,Y坐標(biāo)作為變量,確定沿多邊形三邊的子象 素的多邊形數(shù)據(jù)Z,R,G,B,α,S,T,Q,以及位于多邊形內(nèi)部的 子象素的多邊形數(shù)據(jù)Z,R,G,B,α,S,T,Q。
進(jìn)行到步驟S14作重寫(xiě)處理,由此,在GPU115中,采用Z緩沖 器142將構(gòu)成多邊形的象素的RGB值寫(xiě)入到幀緩沖器141。
這里,在步驟S14中最終被寫(xiě)入到幀緩沖器141的RGB值,在 GPU115中以例如下面的方式確定。
也就是說(shuō),GPU115根據(jù)構(gòu)成多邊形的子象素的多邊形數(shù)據(jù)X,Y, Z,R,G,B,α,S,T,Q進(jìn)行紋理映射,該多邊形數(shù)據(jù)是DDA算術(shù) 運(yùn)算的結(jié)果。詳細(xì)地說(shuō),CPU115通過(guò)例如用Q去除S、T,計(jì)算紋理 地址U(S/Q),V(T/Q),以及根據(jù)需要進(jìn)行各種濾波處理,計(jì)算在 每個(gè)子象素的X、Y坐標(biāo)位置的紋理色彩。也就是說(shuō),GPU115從紋理 存儲(chǔ)器143讀出相應(yīng)于紋理地址U、V的紋理數(shù)據(jù)(紋理色彩數(shù)據(jù))。 另外,GPU115對(duì)作為這個(gè)紋理數(shù)據(jù)的RGB值和作為DDA算術(shù)運(yùn)算結(jié) 果的RGB值執(zhí)行各種濾波處理,也就是說(shuō),它將兩者按一定的比例混 合,根據(jù)模糊值F混合預(yù)先設(shè)定的色彩,并計(jì)算構(gòu)成多邊形的每個(gè)子 象素的最終RGB值。
在步驟S14,如上所述確定的RGB值被寫(xiě)入幀緩沖器141。
按照一般規(guī)則,對(duì)在步驟S7中根據(jù)深度方向進(jìn)行Z分類(lèi)的多邊 形,對(duì)幀緩沖器141的寫(xiě)入是按次序進(jìn)行的,從最接近視點(diǎn)到最遠(yuǎn)點(diǎn)。 其理由介紹如下。
如果只繪制構(gòu)成一個(gè)象素的子象素中的一個(gè),那個(gè)子象素的RGB 值被寫(xiě)入到相應(yīng)于包括該子象素的一個(gè)象素的幀緩沖器141中的地 址,但是,如果要繪制構(gòu)成一個(gè)象素的子象素中的多個(gè),那么多個(gè)子 象素的RGB值,例如其平均值,被寫(xiě)入。
在步驟S14,當(dāng)向幀緩沖器141寫(xiě)入一幀的RGB值的操作完成后, 控制過(guò)程進(jìn)行到步驟S15,在該步驟確定變量n是否大于寫(xiě)入次數(shù)N, 如果不大于,那么控制進(jìn)行到步驟S16,在其中將變量n增1,然后 控制返回到步驟S10。在步驟S10,GPU115校正用于第n次繪制每個(gè) 多邊形的位移量,校正依據(jù)是多邊形的移動(dòng),之后重復(fù)步驟S10至 S16,直到在步驟S15確定變量n大于重寫(xiě)次數(shù)N為止。由此完成重 寫(xiě)。
另一方面,如果在步驟S15確定了變量n大于重寫(xiě)次數(shù)N,即對(duì) 一幀已經(jīng)做了N次重寫(xiě),GPU115讀出存儲(chǔ)在幀緩沖器141中的一幀的 RGB值,將其輸出到顯示器,并返回步驟S1。然后,在步驟S1,主 CPU111經(jīng)由主總線101從主存儲(chǔ)器112讀出繪制構(gòu)成下一幀的三維 圖像的多邊形的數(shù)據(jù),之后重復(fù)同樣的處理,從而顯示一個(gè)運(yùn)動(dòng)圖 像。
接著,對(duì)于根據(jù)其深度方向進(jìn)行Z分類(lèi)的多邊形,對(duì)幀緩沖器141 的寫(xiě)入是按次序進(jìn)行的,從最接近視點(diǎn)到最遠(yuǎn)點(diǎn)。這是因?yàn)槿缦滤?是通過(guò)重寫(xiě)操作將RGB值寫(xiě)入幀緩沖器141的,在其中它們與原先寫(xiě) 到幀緩沖器141中的RGB值相加。
也就是說(shuō),現(xiàn)在,考慮圖19(A)中的情況,其中包括多邊形A 和B的幀C已經(jīng)被寫(xiě)入到幀緩沖器141中,并且包括多邊形A和B的 另一幀C將以這種狀態(tài)被重寫(xiě)到幀緩沖器141。同樣還假定多邊形A 比多邊形B的位置更深,并且多邊形A和B部分重疊。
在這種情況下,由于如圖18的流程圖所述,在步驟S14進(jìn)行重 寫(xiě)處理之前,Z緩沖器142在步驟S12中被清零,等全部的幀C被寫(xiě) 入到幀緩沖器141之后,Z緩沖器142處于這樣一種狀態(tài),即相應(yīng)于 無(wú)限遠(yuǎn)(最深處)的一個(gè)值被作為Z值寫(xiě)入,如圖19(B)所示。
在多邊形A或B之間,如果例如位于深度側(cè)的多邊形B被首先寫(xiě) 入,位于觀察者一側(cè)的多邊形A在其后寫(xiě)入,那么當(dāng)繪制多邊形B時(shí), 記錄在Z緩沖器142中的Z值代表無(wú)限距離,因此,通過(guò)采用Z緩沖 器142繪制多邊形B,也就是說(shuō),通過(guò)將多邊形B的RGB值加到已經(jīng) 存儲(chǔ)在幀緩沖器141中的RGB值上,已經(jīng)繪制到幀緩沖器141中的幀 C的多邊形B部分被重寫(xiě),如圖20(A)所示。在這種情況下,多邊 形B的Z值被寫(xiě)入到Z緩沖器中相應(yīng)于多邊形B的部分。
如果在此之后采用Z緩沖器142將多邊形A寫(xiě)入到幀緩沖器141, 位于多邊形B的這一側(cè)的多邊形A的繪制不受Z緩沖器142的阻止, 從而整個(gè)多邊形A被寫(xiě)入幀緩沖器141。也就是說(shuō),多邊形B的所有 RGB值被加到幀緩沖器141中已經(jīng)存儲(chǔ)的RGB值中。由此,多邊形A 和B的重疊部分(圖20中的陰影部分)受到繪制多邊形B的影響, 既使確切地說(shuō)只應(yīng)該繪制多邊形A。
如果如上所述進(jìn)行重寫(xiě)(其中一個(gè)多邊形的RGB值被加到原先已 經(jīng)寫(xiě)到幀緩沖器141中的RGB值上),那么當(dāng)位于較遠(yuǎn)處的一個(gè)多邊 形在位于較近處的多邊形之前繪制時(shí),它們的重疊部分將受到位于較 遠(yuǎn)處的多邊形的影響,并且該位于較遠(yuǎn)處的多邊形,原本應(yīng)該由位于 較近處的多邊形將其隱藏表面消除,現(xiàn)在仍然可見(jiàn)。
因此,為了防止這種執(zhí)行隱藏面消除的失敗,如圖18所述,在 這個(gè)實(shí)施例中,繪制多邊形是對(duì)已經(jīng)根據(jù)其深度作了Z分類(lèi)的多邊形 進(jìn)行的,并且繪圖是從最接近視點(diǎn)的次序開(kāi)始。
也就是說(shuō),例如在上面所述的情況下,在多邊形A和B之間,先 繪制較近的多邊形A,然后繪制較遠(yuǎn)的多邊形B。在這種情況下,在 多邊形A的繪圖時(shí)刻,存儲(chǔ)在Z緩沖器142中的Z值代表無(wú)限距離, 因此,通過(guò)采用Z緩沖器142繪制多邊形A,也就是說(shuō),通過(guò)將多邊形 A的RGB值加到已經(jīng)存儲(chǔ)在幀緩沖器141中的RGB值上,已經(jīng)繪制在 幀緩沖器141中的幀C的多邊形A部分被重寫(xiě)。在這種情況下,多邊 形A的Z值被寫(xiě)入到Z緩沖器142中相應(yīng)于多邊形A的部分。
在此之后如果多邊形B被采用Z緩沖器142寫(xiě)入到幀緩沖器 141,對(duì)相比于多邊形A而言,位于較遠(yuǎn)處的多邊形B的繪制,其與 多邊形A重疊的部分將受到Z緩沖器142的阻止,從而多邊形B中不 與多邊形A重疊的部分被重寫(xiě)到幀緩沖器141,但與多邊形A重疊的部 分沒(méi)有重寫(xiě)到幀緩沖器141中(沒(méi)有示出)。其結(jié)果是對(duì)多邊形A和 B的重疊部分,只有較近的多邊形A被繪制,從而避免了由于多邊形 B造成的任何影響。也就是說(shuō),可以保證隱藏表面的消除。
在進(jìn)行重寫(xiě)時(shí)隱藏表面的消除,除了可以通過(guò)如上所述的Z分類(lèi) 和Z緩沖器142的結(jié)合來(lái)實(shí)現(xiàn)外,也可以通過(guò)用與幀緩沖器141類(lèi)似 的一個(gè)緩沖器(為了簡(jiǎn)單起見(jiàn),在下面稱為第二幀緩沖器)實(shí)現(xiàn)。也 就是說(shuō),只要采用Z緩沖器142向第二幀緩沖器繪圖,并將第二幀緩 沖器的結(jié)果重寫(xiě)到幀緩沖器141中即可。然而,在這種情況下,不再 需要進(jìn)行Z分類(lèi),但第二幀緩沖器必須與幀緩沖器141具有相同的容 量。
Z分類(lèi)與Z緩沖器142的組合,除了用于進(jìn)行重寫(xiě)之外,也可以 用于在利用α混合進(jìn)行繪圖時(shí),例如在繪制半透明的多邊形時(shí),或在 繪制陰影時(shí),產(chǎn)生自然圖像(例如,對(duì)半透明多邊形利用Z分類(lèi)和Z 緩沖器的組合,在本
申請(qǐng)人的一份先申請(qǐng)H8-158145(1996)中作了 公開(kāi))。但是,在重寫(xiě)時(shí)消除隱藏線的情況和與繪制半透明多邊形的 情況相比,采用Z分類(lèi)和Z緩沖器組合處理是不同的,因此必須根據(jù) 特定的情況進(jìn)行處理算法轉(zhuǎn)換。
接著,參考圖22的流程圖,我們?cè)诓襟ES14描述重寫(xiě)過(guò)程的細(xì) 節(jié)。這里,為了簡(jiǎn)化說(shuō)明起見(jiàn),我們假定Z值和RGB值已經(jīng)被指派給 象素單元,而不必考慮子象素。同樣,用p(x,y)指示從左起算的x 單元和從底部起算的y單元位置處的象素,用Z(x,y)表示該象素p (x,y)的Z值,用depth(x,y)表示與存儲(chǔ)在Z緩沖器142的象素 p(x,y)相應(yīng)的存儲(chǔ)值,還用n(x,y)表示在幀緩沖器141中相應(yīng) 于象素p(x,y)的位置的存儲(chǔ)值。
在重寫(xiě)過(guò)程中,首先,在步驟S21,在構(gòu)成現(xiàn)在要繪制的幀的所有 象素中的一個(gè)規(guī)定的象素p(x,y)被作為感興趣的象素,并確定所關(guān) 心的p(x,y)的該象素的Z值Z(x,y)是否小于或等于存儲(chǔ)在Z緩沖 器142中的depth(x,y)值。在步驟S21,如果確定Z值Z(x,y)不 小于存儲(chǔ)的depth(x,y)值,也就是說(shuō),如果有一個(gè)多邊形比包括感 興趣的象素p(x,y)的這個(gè)多邊形更靠近,并且它還沒(méi)有被寫(xiě)入到幀 緩沖器141,那么控制返回步驟S21,將一個(gè)沒(méi)作為感興趣的象素的象 素作為新的感興趣的象素,之后重復(fù)同樣的處理過(guò)程。
同樣,在步驟S21,如果確定Z值Z(x,y)小于或等于存儲(chǔ)的depth (x,y)值,那么控制進(jìn)行到步驟S22,進(jìn)行亮度降低處理。也就是說(shuō), 如果感興趣的象素p(x,y)的RGB值用M(x,y)表示,用重寫(xiě)次數(shù)N 除RGB值M(x,y),其商(這里忽略小數(shù)部分)被確定為要重寫(xiě)的RGB 值m(x,y)。
如果小于或等于x/y的最大整數(shù)由INT[x/y]表示,在亮度降低處 理中,用算式m(x,y)=INT[M(x,y)/N]進(jìn)行計(jì)算。
如果M(x,y)/N為整數(shù),那么沒(méi)有問(wèn)題,但如果它包括一個(gè)分?jǐn)?shù) 部分,那么亮度降低就會(huì)發(fā)生。也就是說(shuō),如果例如最大亮度值是 255,如果考慮以這個(gè)最大亮度值255通過(guò)四次重寫(xiě)來(lái)繪圖,那么通 過(guò)亮度降低處理,每次繪圖時(shí)的亮度值為63(=INT[255/4])。因 此,既使以亮度值63繪圖四次,也就是說(shuō),如果將63加上4次,結(jié) 果只是252,小于原來(lái)的亮度值255。
因此,如果通過(guò)亮度降低操作得到的值INT[M(X,Y)/N]的N倍 小于原來(lái)的RGB值M(x,y),要重寫(xiě)的RGB值m(x,y)可以被設(shè)置為 將預(yù)定的校正值D與值INT[M(X,Y)/N]相加的和。
校正值D必須被設(shè)置為使值INT[M(X,Y)/N]與該校正值D的和 的N倍大于或等于原來(lái)的RGB值M(x,y)。詳細(xì)地說(shuō),如果如上所述, 以最大亮度值255通過(guò)四次重寫(xiě)來(lái)繪圖,那么校正值D被設(shè)置為例如 1。在這種情況下,每次繪圖的亮度為64(=63+1),如果以亮度值 64繪圖4次,結(jié)果將為256。這里最大亮度值是255,因此超過(guò)這個(gè)值 的值被剪切為該最大值255。
在亮度降低處理之后,在步驟S23將相應(yīng)于感興趣的象素p(x,y) 的存儲(chǔ)值n(x,y)從幀緩沖器141中讀出,控制進(jìn)行到步驟S24,通過(guò) 將存儲(chǔ)值與亮度降低處理后得到的RGB值m(x,y)相加,進(jìn)行重寫(xiě)處 理。這里相加的結(jié)果用v(x,y)表示。
在步驟S25,步驟S24中的相加結(jié)果,即重寫(xiě)結(jié)果v(x,y)被寫(xiě)入 到存儲(chǔ)n(x,y)的幀緩沖器141中的單元中(相應(yīng)于感興趣的象素 p(x,y)的單元)。在下一次繪制象素p(x,y)時(shí),v(x,y)這個(gè)值作為 記錄值n(x,y)讀出。
同樣,在步驟S25,在Z緩沖器142中的存儲(chǔ)值深度(x,y)被重 寫(xiě)到Z值Z(x,y),控制進(jìn)行到步驟S26,在其中決定是否所有包括要 繪圖的幀的象素都已經(jīng)作為感興趣的象素進(jìn)行了處理。在步驟S26, 如果確定不是所有包括要繪圖的幀的象素都已經(jīng)作為感興趣的象素 進(jìn)行了處理,那么控制返回到步驟S21,還沒(méi)有被作為感興趣的象素的 一個(gè)象素被新作為感興趣的象素,此后重復(fù)同樣的處理。
如果另一方面在步驟S26中確定所有包括要繪圖的幀的象素都已 經(jīng)作為感興趣的象素進(jìn)行了處理,那么執(zhí)行返回操作。
亮度降低處理可以采用α混合來(lái)進(jìn)行。也就是說(shuō),可以通過(guò)設(shè)定 混合系數(shù)α為1/N,并計(jì)算算式m(x,y)=INT[α×M(x,y)],來(lái)確定 m(x,y)。也就是說(shuō),混合系數(shù)α使得1.0相應(yīng)于例如128(=27), 它是由公式α=A→7實(shí)現(xiàn)的,其中A是在0-128范圍內(nèi)的一個(gè)整數(shù), A→7代表A的7位右移。
在這種情況下,為了例如如上所述通過(guò)四次重寫(xiě)在最大亮度值 255下繪圖,將A設(shè)定為32即可,它相應(yīng)于1/4,然后計(jì)算算式 m(x,y)=INT[α×M(x,y)]。
但是,既使在這種情況下,如上所述那樣,有時(shí)也會(huì)發(fā)生亮度降 低。也就是說(shuō),如果通過(guò)重寫(xiě)四次以最大亮度值255繪圖,如果A被 設(shè)置為32,相應(yīng)于1/4,并計(jì)算算式m(x,y)=INT[α×M(x,y)],得到 m(x,y)等于63(=INT[(255×32)→7]),既使以亮度值63繪圖四次, 結(jié)果也只有252,小于原來(lái)的亮度值255。
因此,如果N倍的INT[α×M(x,y)]小于原來(lái)的RGB值M(x,y), 那么對(duì)A進(jìn)行校正,使得N倍的INT[α×M(x,y)]大于或等于原來(lái)的 RGB值M(x,y)。更詳細(xì)地說(shuō),只要將A校正為33即可,它比相應(yīng) 于1/4的32大1。這樣,繪圖1次的亮度值成為65(=INT[(255×33) →7)],如果以亮度值65繪圖4次,結(jié)果為260,超出最大亮度值 255的部分被剪切為該最大值255。
如上所述,圖像重寫(xiě)是通過(guò)在要將每個(gè)象素的RGB值繪制到幀緩 沖器141中時(shí),以高于一個(gè)象素的精度,設(shè)置移動(dòng)其繪圖位置的位移 量,并通過(guò)將RGB值繪制到幀緩沖器141中的相應(yīng)位置完成的,從而 即使不采用高容量、高速度的幀緩沖器或Z緩沖器,也可以達(dá)到有效 的消除假信號(hào)效果。
也就是說(shuō),通過(guò)上面所述的重寫(xiě)取得的消除假信號(hào)效果不僅擴(kuò)展 到多邊形的邊,還擴(kuò)展到其內(nèi)部和三維形狀彼此交叉的部分,從而不 僅減少了直線中的鋸齒,也改進(jìn)了圖像的整體質(zhì)量。
由于移動(dòng)多邊形可以有移動(dòng)模糊效果,可以顯示沒(méi)有任何閃爍的 平滑的移動(dòng)圖像。
前面是針對(duì)本發(fā)明應(yīng)用于游戲機(jī)的情況描述的,但本發(fā)明也可以 用于產(chǎn)生特殊圖像效果的特效機(jī),或用于執(zhí)行計(jì)算機(jī)圖形處理的CAD 和其他裝置。另外,本發(fā)明也可以用于例如記錄和回送裝置或發(fā)射裝 置,這些裝置對(duì)用攝像機(jī)攝取的自然圖像編碼,并對(duì)該圖像進(jìn)行記錄 和回放,或發(fā)射與接收。也就是說(shuō),如果將來(lái)用攝像機(jī)攝取的自然圖 像被譯碼為用多邊形表示,當(dāng)它們被回放時(shí),可以采用本發(fā)明的技術(shù) 回放高質(zhì)量的自然圖像。
在這個(gè)實(shí)施例中,繪圖處理是以幀為單位進(jìn)行的,但也可以以字 段為單位進(jìn)行。
本發(fā)明可以用于繪制移動(dòng)圖像或靜止圖像。
該實(shí)施例是針對(duì)三維圖形繪制進(jìn)行描述的,但本發(fā)明也可以用于 繪制例如二維圖形。
位移量也并不局限于子象素精度,而是可以更大或更小。
同樣,在本實(shí)施例中,執(zhí)行上述繪圖處理的計(jì)算機(jī)程序被記錄在 CD-ROM51中。然而,除了CD-ROM以外,也可以采用光磁記錄盤(pán)或其 他記錄介質(zhì),計(jì)算機(jī)程序也可以由例如因特網(wǎng),衛(wèi)星線路或其他傳輸 介質(zhì)提供。
繪圖處理也不需要由處理器執(zhí)行計(jì)算機(jī)程序來(lái)完成,而是可以用 特定的硬件來(lái)實(shí)現(xiàn)。
在這個(gè)實(shí)施例中,三維圖像被顯示在監(jiān)視器顯示屏上,但該發(fā)明 也可以用于其他情況,例如在
打印機(jī)(二維輸出裝置)上打印三維圖 像。
在該實(shí)施例中,繪制一個(gè)一幀圖像要在X和Y方向都進(jìn)行位移, 但也可以只在其中一個(gè)方向上進(jìn)行移位。也就是說(shuō),位移量(dX,dY) 可以被設(shè)置為例如(0.0,-0.2),(0.0,-0.1),((0.0,0.1)) (0.0,0.2)。
同樣,對(duì)每個(gè)重寫(xiě)次數(shù),位移量(dX,dY)可以預(yù)先確定。
如上所述,重寫(xiě)次數(shù)越多,分辯率的改進(jìn)越大,但隨著重寫(xiě)次數(shù) 的增大,繪制RGB值一次的位數(shù)會(huì)由于亮度降低處理而減小,但這會(huì) 使圖像的灰度惡化。因此,設(shè)置重寫(xiě)次數(shù)時(shí)不能只考慮分辯率,還應(yīng) 該考慮灰度。
采用本發(fā)明的繪圖裝置和繪制方法,在要將象素?cái)?shù)據(jù)繪制到象素 數(shù)據(jù)存儲(chǔ)裝置中時(shí),以高于一個(gè)象素的精度,設(shè)置移動(dòng)其繪圖位置的 多個(gè)位移量,并通過(guò)將象素?cái)?shù)據(jù)繪制到相應(yīng)于多個(gè)位移量的象素?cái)?shù)據(jù) 存儲(chǔ)裝置中的每個(gè)單元來(lái)完成圖像的重寫(xiě)。同樣,采用本發(fā)明的分發(fā) 介質(zhì),提供用于重寫(xiě)圖像的程序,該重寫(xiě)過(guò)程是通過(guò)以高于一個(gè)象素 的精度,設(shè)置多個(gè)位移量,并通過(guò)將象素?cái)?shù)據(jù)繪制到相應(yīng)于多個(gè)位移 量的每個(gè)存儲(chǔ)單元來(lái)完成的。由此可以降低圖像中出現(xiàn)的假信號(hào)。
如上所述,在例如三維圖形計(jì)算機(jī)中,該三維圖形計(jì)算機(jī)是利用 一個(gè)計(jì)算機(jī)、或者特殊效果設(shè)備(特效器)、視頻游戲機(jī)等等的圖象設(shè) 備,根據(jù)本發(fā)明的繪圖設(shè)備、繪圖方法和分發(fā)介質(zhì),消除假信號(hào)的效 應(yīng)不僅延伸到多邊形的邊,也延伸到他們的內(nèi)部以及三維形狀相互交 叉的部分,其不僅減少了在直線中出現(xiàn)的鋸齒,而且改善了整個(gè)圖象 的圖形質(zhì)量。因此本發(fā)明適用于高圖形質(zhì)量的圖象顯示。