專利名稱:在3維視頻圖像系統(tǒng)中提供卡通輪廓的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及3維計算機圖像,尤其涉及非圖像真實感的(non-photorealistic)3維圖像。具體而言,本發(fā)明涉及計算機產(chǎn)生和顯示3維物體的如輪廓線或其他邊緣的邊界的方法和裝置。
大多數(shù)計算機圖像研究傾向于針對產(chǎn)生逼真的圖像。此類研究已經(jīng)非常成功。計算機現(xiàn)在能產(chǎn)生如此逼真的圖像,以致于不能將它們與照片區(qū)分開來。例如,我們中間大多數(shù)人已經(jīng)在電影和電視中看到令人信服的恐龍、外星人和其他圖像逼真的計算機產(chǎn)生的特殊效果。新的飛行員在計算機飛行模擬器上的訓(xùn)練是如此逼真,以致幾乎可復(fù)現(xiàn)真實的飛行。廉價的家庭視頻游戲系統(tǒng)現(xiàn)在能提供相當(dāng)高程度的真實感,給游戲者真實的感覺,如沿一條道路駕一輛賽車,從冰雪覆蓋的滑雪斜坡滑雪,步行穿過中世紀(jì)的城堡等,對大多數(shù)的游戲,這種真實感大大地提高了游戲的體驗。
但是,有時候?qū)幙尚枰钦鎸嵏械膱D像。例如,有些類型的交互式視頻和計算機游戲提供娛樂的價值不在于真實的模擬現(xiàn)實(或想象)的世界,而在于創(chuàng)造和顯示充滿故意非真實的漫畫式卡通角色的卡通世界。例如,那樣的游戲可以試圖復(fù)現(xiàn)手畫式的喜劇書的翻閱,同時提供動作、語言和交互作用。在這樣的3維計算機圖像系統(tǒng)中,一個希望得到的視覺效果是提供清晰的實線邊界,如所顯示物體的輪廓或其他邊緣線。那樣的邊界線能對某些圖像增加清晰度,如能幫助用戶更清楚地區(qū)分不同的表面,例如卡通角色的輪廓,風(fēng)景的山峰,墻的邊緣等,并且這些邊界線能協(xié)助建立由卡通藝術(shù)家手畫所希望的印象。
在角色或其他物體邊緣周圍提供如邊界線那樣的非圖像真實感的一種方法是定義鄰接于多面體造型物體的分隔線物體。但定義分隔邊界物體要大大地增加圖像處理復(fù)雜性。在一個資源有限的系統(tǒng)中,此方法會減慢圖像產(chǎn)生時間或者損失性能。在例如交互式3維視頻游戲系統(tǒng)的廉價3維圖像系統(tǒng)中,效率是特別重要的。更有效的產(chǎn)生視覺效果的技術(shù)將使系統(tǒng)資源負(fù)擔(dān)較輕,從而在不顯著損失速度和其他性能的前提下提高整體視覺感受。
借助于在如家庭視頻游戲操作臺那樣的3維視頻圖像系統(tǒng)中提供在輪廓或其他邊緣處顯示邊界線的有效技術(shù),本發(fā)明解決了上述問題。按照本發(fā)明的一個方面,在一個圖像被提供給幀緩沖器以后產(chǎn)生邊界線。本發(fā)明使用儲存在幀緩沖器的值確定哪些象素位于物體的輪廓或其他邊緣上,并有選擇地將邊界著色混合到那些象素,然后加以顯示。
按照一個示例性實施例,借助于將象素的深度值和相鄰物體的象素深度值比較來定位輪廓邊緣。在一個特定例子中,根據(jù)象素的深度與相鄰物體的深度之間的距離的絕對值計算一個“距離”。根據(jù)所計算的距離值將所希望的邊界線顏色混合到象素顏色值。在一個特定例子中,該距離值被用于計算一個象素Alpha值,而該Alpha值用于控制要混合到該象素顏色的邊界顏色的量。
另外一個例子加入了深度調(diào)制。在此例中,根據(jù)距離值和作為象素深度的函數(shù)的另一個值來計算象素Alpha值,以提供由象素深度值調(diào)制的Alpha值。然后根據(jù)由深度調(diào)制的Alpha值將邊界顏色混合到象素顏色中。
一個另外的實施例中,一個物體的某些內(nèi)部邊緣不在該物體的輪廓上畫邊界線,一個卡通藝術(shù)家可以將邊界線加在那里。例如,考慮卡通人物手臂舉在他身體前面的情況。即使該人物將手臂舉在他軀干的前面,使其手臂的邊緣實際上在人物整個輪廓的內(nèi)部,卡通藝術(shù)家應(yīng)圍繞該人物的手臂畫出邊界線。按照本發(fā)明的進一步特征,圖像的象素被指定不同的識別值—該ID值例如可存入通常為Alpha值保留的幀緩沖存儲器位置。這些象素識別值被用于區(qū)分邊界線邊緣和沒有邊界線的邊緣。
本發(fā)明的文件至少包含一張著色的圖。本發(fā)明帶有彩色圖的拷貝將根據(jù)請求并支付必要的費用由專利和商標(biāo)局提供。
本發(fā)明的這些和其他的特征和優(yōu)點,通過參照下列附圖對較佳實施例所作的詳細(xì)說明可被更好地和更完全地理解。
圖1-1F表示能用于實施本發(fā)明的3維視頻圖像系統(tǒng)的例子;圖2是一個流程圖,示例性地表示提供邊界線顯示的最佳實施例象素過濾器的步驟;圖2A是相鄰象素的圖示;圖3A示例性地圖示透視變換;圖3B是圖2流程圖的示例性修改,以提供考慮透視變換的范圍轉(zhuǎn)換;圖4是另一個提供深度調(diào)制的示例性象素過濾器步驟的流程圖;圖5A-5F示例性地示出按照本發(fā)明提供的屏幕效果;
圖6和7示出一個帶有卡通輪廓的卡通角色;圖8A-8C示出本發(fā)明的另一個實施例,它使用物體部分識別值來規(guī)定卡通輪廓邊界線應(yīng)加在何處。
圖9是用于處理圖8A中的識別值的示例性程序的流程圖;圖9A概略地示出另外的編碼變化;和圖10和11示例性地示出用于編碼達到卡通輪廓效果的物體部分識別值。
圖1表示用于按本發(fā)明顯示邊界線的3維視頻圖像系統(tǒng)的一個例子。
系統(tǒng)1005響應(yīng)從例如游戲控制器1007和/或其他手動輸入設(shè)備的交互式實時輸入,在一個顯示設(shè)備1009(如家用彩電、視頻監(jiān)視器或其他顯示器)上產(chǎn)生一個視覺顯示。系統(tǒng)1005可以在如存儲在外部儲存媒體1011(如可更換的視頻游戲卡,CD-ROM或其他光盤等)中的視頻游戲程序等的計算機程序控制下運行。
在本例中,系統(tǒng)1005包括一個處理器1010,一個3維圖像協(xié)處理器1020和一個存儲器1030。處理器1010向圖像協(xié)處理器1020提供3維圖像命令。圖像協(xié)處理器1020根據(jù)這些3維圖像命令工作,交互地產(chǎn)生3維領(lǐng)域的2維視圖。例如,圖像協(xié)處理器1020可以包括一個基于硬件的3維圖像流水線,它處理圖像原語,如在3維空間定義的多面體,并根據(jù)任選的觀察點產(chǎn)生表示3維空間投影到視圖平面的可視2維圖像的象素。在本例中,用戶可以在實時交互的基礎(chǔ)上借助于操作游戲控制器1007改變觀察點。
圖像協(xié)處理器1020將其產(chǎn)生的顯示象素存儲在儲存設(shè)備1030的一個幀緩沖器1040中。幀緩沖器1040包括一個彩色幀緩沖器1042和深度(Z)緩沖器1044。在本例中,彩色幀緩沖器1042儲存紅、綠、藍(RGB)顏色值的2維陣列和相應(yīng)的Alpha(A)值??梢栽趦Υ娴腞GB值和將在顯示器1009上顯示的象素之間有一一對應(yīng)關(guān)系,或者幀緩沖器1042可以存儲子樣(Sub-samples)。Z緩沖器1044對每一個象素或儲存在彩色幀緩沖器的子象素(sub-pixel)儲存深度值(如Z方向相對于觀察點的距離)。眾所周知,當(dāng)圖像流水線“建立”圖像時,Z緩沖器1044被用于多種目的(如移去隱藏面)。
在本最佳實施例中,彩色緩沖器1042和/或Z緩沖器1044在可選擇地將邊界顏色混合到儲存在彩色幀緩沖器1042的象素顏色值以確定在物體邊緣的邊界線方面也起了作用。更詳細(xì)地,系統(tǒng)1005還包括一個象素過濾器50。象素過濾器50可以處理由3維圖像協(xié)處理器1020提供的圖像象素值,以便可選擇地將邊界線顏色加到被顯示物體的輪廓和/或其他邊緣的特定象素上。本最佳實施例的象素過濾器50,在圖像數(shù)據(jù)已被提交到幀緩沖器1040或其他象素存儲器以后的象素后處理階段工作。作為一個例子,象素過濾器50在將圖像協(xié)處理器輸出的圖像數(shù)據(jù)與在存儲器1030內(nèi)的圖像數(shù)據(jù)結(jié)合起來過程中,可將邊界線非圖像真實感的圖像單元施加到在3維圖像協(xié)處理器1020緩存和提交的圖像數(shù)據(jù)中。
圖1A是實現(xiàn)本發(fā)明的整個示例性交互式3維計算機圖像系統(tǒng)1005的更詳細(xì)的示意圖。系統(tǒng)1005可用于播放交互式3維視頻游戲并伴隨有興趣的立體聲聲音。將適當(dāng)?shù)拇鎯γ襟w(如光盤1011)插入光盤播放機1134就能播放不同的游戲。借助于操作如手持式控制器1007那樣的輸入設(shè)備,游戲者能實現(xiàn)與系統(tǒng)1005交互作用,手持式控制器包括各種控制部件,如操縱桿、按鍵、開關(guān)、鍵盤或小鍵板。
在本例中,主處理器1010經(jīng)由協(xié)處理器1005接受從手持式控制器1007(和/或其他輸入設(shè)備)來的輸入。主處理器1010交互式地響應(yīng)那樣的用戶輸入,并且執(zhí)行一個視頻游戲或其他例如由外部存儲單元1011提供的圖像程序。例如,主處理器1010除了各種實時交互式控制功能以外還能完成碰撞檢測和動畫處理。
主處理器1010產(chǎn)生3維圖像和聲音命令,并將其發(fā)送到圖像和聲音協(xié)處理器1020。該圖像和聲音協(xié)處理器1020處理這些命令,在顯示器1009上產(chǎn)生感興趣的視覺圖像和在立體聲揚聲器1137R,1137L或其他適當(dāng)發(fā)聲設(shè)備上發(fā)出立體聲聲音。
系統(tǒng)1005包括一個TV編碼器1140,它從協(xié)處理器1005接收圖像信號并將此圖像信號轉(zhuǎn)換成適合于在標(biāo)準(zhǔn)顯示設(shè)備1009(例如計算機監(jiān)視器或家用彩色電視機)顯示的合成視頻信號。系統(tǒng)1005還包括一個聲頻壓縮還原器(codec)(壓縮/解壓縮器)1138,它壓縮和解壓縮數(shù)字化聲頻信號(并也可以在數(shù)字和模擬聲頻信號之間實現(xiàn)轉(zhuǎn)換)。聲頻壓縮/解壓縮器1138能經(jīng)由緩沖器1141接收聲音輸入并將其提供給協(xié)處理器1020予以處理(例如與其他聲音信號相混合,該協(xié)處理器經(jīng)數(shù)據(jù)流產(chǎn)生和/或接收光盤設(shè)備1134的聲音輸出)。協(xié)處理器1020將聲音相關(guān)的信息存入專用于聲音任務(wù)的存儲器1144。協(xié)處理器1020將最終的聲音輸出信號提供給聲音壓縮/解壓縮器1138,用于解壓縮并轉(zhuǎn)換成模擬信號(例如通過緩沖放大器1142L,1142R),使它們能由揚聲器1137L,1137R播放。
協(xié)處理器1020有能力與出現(xiàn)在系統(tǒng)1005中的各種外圍設(shè)備通信。例如,可使用平行數(shù)字總線1146與光盤設(shè)備1134通信。一個串行外圍總線1148可以與各種外圍設(shè)備通信,包括如ROM和/或?qū)崟r時鐘1150,調(diào)制解調(diào)器1152和快擦寫存儲器1154。另外的外部串行總線1156可用于與附加的擴充存儲器1158(例如存儲卡)通信。
圖1B是協(xié)處理器1020中示例性部件的方框圖。協(xié)處理器1020可以是包括一個3維圖像處理器1107,一個處理器接口1108,一個存儲器接口1110,一個聲頻數(shù)據(jù)字信號處理器(DSP)1162,一個聲頻存儲器接口(I/F)1164,一個聲音接口和混頻器1166,一個外圍控制器1168,和一個顯示控制器1128的單片集成電路。
3維圖像處理器1107完成圖像處理任務(wù),而聲頻數(shù)字信號處理器1162完成聲音處理任務(wù)。顯示控制器1128從存儲器1130存取圖像信息,并將其提供給TV編碼器1140用于在顯示設(shè)備1009上顯示。聲音接口和混頻器1166與聲音壓縮/解壓縮器1138接口,并還能混合從不同聲源來的聲音(例如,從盤1011流出的聲音輸入,聲音DSP1162的輸出和經(jīng)由聲音壓縮/解壓縮器1138接收的外部聲音輸入)。處理器接口1108提供主處理器1010和協(xié)處理器1020之間的數(shù)據(jù)和控制接口。存儲器接口1110提供協(xié)處理器1020和存儲器1030之間的數(shù)據(jù)和控制接口。在本例中,主處理器1010經(jīng)由作為協(xié)處理器1020一部分的處理器接口1108和存儲器控制器1110存取主存儲器1030。外圍設(shè)備控制器1168在協(xié)處理器1020和上述各種外圍設(shè)備(如光盤設(shè)備1134,控制器1007,ROM和/或?qū)崟r時鐘1150,調(diào)制解調(diào)器1152,快擦寫存儲器1154和存儲卡1158)之間提供數(shù)據(jù)和控制接口。聲音存儲器接口1164提供與聲音存儲器1144的接口。
圖1C更詳細(xì)示出了3維圖像處理器1107和在協(xié)處理器1020中相關(guān)的元件。3維圖像處理器1107包括一個命令處理器1114和3維圖像流水線1116。主處理器1010將圖像數(shù)據(jù)流(即顯示表)傳送到命令處理器1114。命令處理器1114接受這些顯示命令并對其進行語法分析(從存儲器1030獲取處理它們所必需的任何附加數(shù)據(jù)),將頂點命令流提供給圖像流水線1116用于3維處理及渲染。根據(jù)這些命令圖像流水線1116產(chǎn)生一個3維圖像。最終的圖像信息可被傳送到主存儲器1030,用于被顯示控制器1128存取,后者在顯示器1009上顯示流水線1116的幀緩沖輸出。一個存儲判優(yōu)(仲裁)線路130協(xié)調(diào)圖像流水線1116、命令處理器1114和顯示單元128之間的存儲器存取。
如圖1C所示,圖像流水線1116可以包括轉(zhuǎn)換單元1118,一個設(shè)備/光柵化器(rasterizer)1120,一個紋理單元1122,一個紋理環(huán)境單元1124和一個象素引擎1126。在圖像流水線1116中,轉(zhuǎn)換單元1118完成各種3維轉(zhuǎn)換操作,且也可以完成打光線和紋理效果。例如,轉(zhuǎn)換單元1118將從物體空間輸入的各頂點幾何位置轉(zhuǎn)換到屏幕空間;轉(zhuǎn)換輸入的紋理座標(biāo)并計算投影的紋理座標(biāo);完成多面體深度裁剪;每個頂點的打光線計算;并完成凸起(bump)映射紋理座標(biāo)產(chǎn)生。設(shè)置/光柵化器1120包括一個設(shè)置單元,它從轉(zhuǎn)換單元1118接受頂點數(shù)據(jù)并將三角形設(shè)置信息發(fā)送到光柵化器,完成邊緣的光柵化,紋理座標(biāo)光柵化及彩色光柵化。紋理單元1122完成各種涉及紋理的任務(wù),包括多紋理處理,高速緩存后的紋理解壓縮,紋理過程,浮雕凸起映射,通過使用投影紋理的陰影和打光線,和帶有Alpha透光度和深度的BLIT。紋理單元1122將過濾后的紋理值輸出到紋理環(huán)境單元1124。紋理環(huán)境單元1124將多面體顏色和紋理顏色混合在一起,完成紋理霧和其他涉及環(huán)境的功能。象素發(fā)動機1126完成Z緩沖和混合,并將數(shù)據(jù)存入芯片上的幀緩沖存儲器。
如圖1D所示,圖像流水線1116可以包括一個嵌入的DRAM存儲器1126a以當(dāng)?shù)卮鎯彌_信息。芯片上的幀緩沖器1126a周期地將內(nèi)容寫到芯片外的主存儲器1030,以便被芯片上的顯示單元1128存取。在一個示例性實施例中,在此寫的過程中象素過濾器50可應(yīng)用到邊界線卡通輪廓上。圖像流水線1116象素發(fā)動機1126最終存儲在主存儲器1030中的幀緩沖輸出被顯示單元1128逐幀讀出。顯示單元1128提供數(shù)字RGB象素值用于在顯示器1009上顯示。
某些上述視頻游戲系統(tǒng)部件可能有別于上述家庭視頻控制臺的結(jié)構(gòu)。一般來說,家庭視頻游戲軟件是為特定的家庭視頻游戲系統(tǒng)寫的。此視頻游戲軟件若考慮不同的系統(tǒng)硬件或軟件配置有時可以“移植”到不同的系統(tǒng)中。那樣的“移植”一般需要訪問視頻游戲軟件的源程序碼。在一個不同配置的系統(tǒng)中運行游戲軟件的另外方法是第二個系統(tǒng)模仿第一個系統(tǒng)。如果第二個系統(tǒng)能成功地模仿或仿真第一個系統(tǒng)的硬件和軟件資源,則第二個系統(tǒng)能成功地執(zhí)行該視頻游戲軟件的二進制可執(zhí)行圖像而無需訪問該游戲軟件的源程序碼。
在一個家庭視頻游戲的范圍中,一個仿真器是不同于為之寫游戲程序的系統(tǒng),該系統(tǒng)設(shè)計成允許此游戲程序運行。作為一個例子,仿真器系統(tǒng)可以提供一個與為之寫游戲軟件的系統(tǒng)的硬件和/或軟件配置(平臺)不同的硬件和/或軟件配置(平臺)。仿真器系統(tǒng)包括模仿為之寫游戲軟件的系統(tǒng)的硬件和/或軟件部件的軟件和/或硬件部件。例如,仿真系統(tǒng)可以包括一臺如個人計算機那樣的通用數(shù)字計算機,來執(zhí)行軟件仿真程序,以模仿為之寫游戲軟件的硬件和/或固件。
可以開發(fā)這樣的仿真軟件,它允許為上述如圖1-1C所示的基于操作臺的家庭視頻游戲系統(tǒng)所寫的游戲程序能在個人計算機或其他類型的通用數(shù)字計算機上運行。某些通用數(shù)字計算機(如IBM或MacIntosh個人計算機和兼容機)現(xiàn)已裝有3維圖像卡,它提供符合Direct X或其他標(biāo)準(zhǔn)3維圖像命令A(yù)PIs的3維圖像流水線。它們還裝有立體聲聲卡,它根據(jù)標(biāo)準(zhǔn)的聲音命令集提供高質(zhì)量立體聲聲音。這種多媒體硬件裝備的個人計算機運行仿真軟件可以有足夠的性能近似于專用于家庭視頻游戲操作臺硬件配置的圖像和聲音性能。仿真器軟件控制個人計算機平臺上的硬件資源來仿真游戲編程員為之寫游戲軟件的家庭視頻游戲操作臺平臺的處理,3維圖像、聲音,外圍和其他能力。
圖1D圖示了一個示例性的整個仿真過程,它使用一個主機平臺1201,一個仿真器部件1303,和一個在如ROM或光盤1305或其他存儲設(shè)備提供的可執(zhí)行二進制圖像的游戲軟件。主機1201可以是一個通用的或?qū)S玫臄?shù)字計算設(shè)備,如個人計算機或其他類型的游戲操作臺。仿真器1303在主機平臺1201上運行,并提供將從存儲媒體1305來的命令、數(shù)據(jù)和其它信息實時轉(zhuǎn)換為能由主機1201處理的格式。例如,仿真器1303從存儲媒體1205取出為在如圖1-1C所示的家庭視頻游戲平臺上執(zhí)行的程序指令,并將這些程序指令轉(zhuǎn)換成可由主機1201執(zhí)行或處理的格式。作為一個例子,假設(shè)游戲程序是為在使用Z-80,MIPS,IBM Power PC或其他專用處理器的平臺上執(zhí)行而寫的,而主機1201是使用不同處理器(如Inlel)的個人計算機,仿真器1203從存儲媒體1305取出一條或一系列程序指令,并將這些程序指令轉(zhuǎn)換成一條或多條等價的Intel程序指令。類似地,仿真器1203取出用于被圖1中所示的圖像和聲音協(xié)處理器所處理的圖像命令及聲音命令,并將這些命令轉(zhuǎn)換成在主機1201中可獲得的由硬件和/或軟件圖像和聲音處理資源能夠處理的格式。作為一個例子,仿真器1303可以將這些命令轉(zhuǎn)換成能由主機1201的專用圖像和/或聲音卡處理的命令(例如使用標(biāo)準(zhǔn)Direct X和聲音APIs)。
用于提供上述視頻游戲系統(tǒng)全部或部分特征的仿真器1303也可以備有圖像用戶接口(GUI),它簡化或自動進行為使用仿真器運行游戲程序所作的多種選項和屏幕模式的選擇。在一個例子中,仿真器1303還可包括比原先試圖運行視頻游戲軟件的主機平臺更強的功能。
圖1E示出適用于仿真器1303的基于個人計算機的主機1201。個人計算機系統(tǒng)1201包括一個處理單元1203和系統(tǒng)存儲器1205。系統(tǒng)總線1207將包括系統(tǒng)存儲器1205的各種系統(tǒng)部件耦合到處理單元1203。系統(tǒng)總線1207可以是若干種類型,總線結(jié)構(gòu)中的任意一種,包括存儲總線或存儲控制器,外圍總線,和使用各種總線結(jié)構(gòu)中任意一種的局部總線。系統(tǒng)存儲器1207包括只讀存儲器(ROM)1252和隨機存取存儲器(RAM)1254?;据斎?輸出系統(tǒng)(BIOS)1256存儲在ROM1252中,它包含基本的程序幫助在起動時在個人計算機系統(tǒng)1201中的各單元之間傳輸信息。個人計算機系統(tǒng)1201還包括各種設(shè)備和與之相關(guān)的計算機可讀的媒體。硬盤驅(qū)動器1207從硬磁盤(通常是固定式)1211中讀出和寫入數(shù)據(jù);磁盤驅(qū)動器1213從可移動的軟盤或其他磁盤1215中讀出或?qū)懭霐?shù)據(jù);光盤驅(qū)動器1217可以從可移動的(如CD ROM或其他光媒體的)光盤中讀出數(shù)據(jù),在某些配置中還可寫入數(shù)據(jù)。硬盤驅(qū)動器1209,磁盤驅(qū)動器1213和光盤驅(qū)動器1217分別通過硬盤驅(qū)動器接口1221,磁盤驅(qū)動器接口1223,和光盤驅(qū)動器接口1225與系統(tǒng)總線1207相連結(jié)。各驅(qū)動器和它們相應(yīng)的計算機可讀媒體提供了計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、游戲程序及個人計算機1201所用的其他數(shù)據(jù)的非易失性存儲。在另外的配置中,其他類型的儲存計算機可訪問的數(shù)據(jù)的計算機可讀取媒體(如盒式磁帶、快擦寫存儲卡、數(shù)字視頻盤、伯努里(Bernoulli)式磁盤機,隨機存儲存儲器(RAM),只讀存儲器(ROM)等)也可以使用。
包括仿真器1303的一系列程序模塊可以儲存在硬盤1211,可移動磁盤1215,光盤1219和/或系統(tǒng)存儲器1205的ROM1252和/或RAM1254中。這種程序模塊可以包括一個提供圖像和聲音APIs的操作系統(tǒng),一個或多個應(yīng)用程序,其他程序模塊,程序數(shù)據(jù)及游戲數(shù)據(jù)。用戶可以通過如鍵盤1227和指向設(shè)備1229那樣的輸入設(shè)備將命令和信息輸入到個人計算機系統(tǒng)1201中。其他輸入設(shè)備可以包括話筒、操縱桿、游戲控制器,衛(wèi)星盤,掃描器等。這些和其他的輸入設(shè)備經(jīng)常經(jīng)由耦合到系統(tǒng)總線1207的串行口接口1231連接到處理單元1203,但也可以借助其他接口連接,如并行口、游戲口或通用串行口總線(USB)。一個監(jiān)視器1223或其他類型的顯示設(shè)備也經(jīng)由如視頻適配器1235那樣的接口連接到系統(tǒng)總線1207上。
個人計算機1201也可包括一個調(diào)制解調(diào)器1154或其他裝置,以建立在類似因特網(wǎng)那樣的廣域網(wǎng)1152上的通訊。內(nèi)置式或外置式調(diào)制解調(diào)器1154經(jīng)由串行接口1231連接到系統(tǒng)總線123。也可以提供一個網(wǎng)絡(luò)接口1156以允許個人計算機1201經(jīng)由局域網(wǎng)1158(那樣的通信可以經(jīng)由廣域網(wǎng)1152如撥號上網(wǎng)的其他通訊路徑或其他通訊裝置)與一個遠(yuǎn)程計算設(shè)備1150(如另一臺個人計算機)通訊。個人計算機系統(tǒng)1201通常包括如打印機那樣的外圍輸出設(shè)備和其他標(biāo)準(zhǔn)外圍設(shè)備。
在一個例子中,視頻適配器1235可以包括3維圖像流水線芯片組,它響應(yīng)于根據(jù)諸如微軟公司的Direct X等的標(biāo)準(zhǔn)3維圖像應(yīng)用程序接口發(fā)出的3維圖像命令提供快速的3維圖像渲染。一組立體揚聲器1237也經(jīng)由類似傳統(tǒng)的“聲卡”那樣的聲音產(chǎn)生接口連接到系統(tǒng)總線1207,聲音接口提供硬件和嵌入式軟件支持,用于根據(jù)由總線1207提供的聲音命令產(chǎn)生高質(zhì)量的立體聲。這些硬件能力使主機1201提供足夠的圖像和聲音速度性能來播放存儲在存儲媒體1305中的視頻游戲。
舉例說明按照本發(fā)明的非圖像真實感的卡通輪廓技術(shù)按照本發(fā)明卡通輪廓/邊界線處理可以方便地在硬件和/或軟件中實現(xiàn)。例如,假設(shè)有足夠時間,處理器1010只要在圖像協(xié)處理器1020將一個圖像提供到幀緩沖器以后而該圖像尚未顯示以前訪問幀緩沖器40,就能完成象素的后處理,將邊界線顏色混合到彩色幀緩沖器42中?;蛘咴趫D像協(xié)處理器1020中提供硬件和/或軟件來完成此功能。如上所述,協(xié)處理器1020能使用存在圖像流水線中的如Alpha混合和Z緩沖器計算線路等硬件支持來完成圖像后處理/過濾,以提供物體邊緣周圍的邊界線。或者處理器1010和/或顯示單元1128能根據(jù)幀緩沖器1040的內(nèi)容完成象素過濾工作。一旦協(xié)處理器1020完成了那樣的象素后處理,被修改的顏色值能被寫回到幀緩沖存儲器1030,在協(xié)處理器中的視頻產(chǎn)生線路訪問其中的內(nèi)容用于產(chǎn)生在顯示器1009上的視覺映象—或者此被修改的值能送到其他地方(例如,直接送到顯示器1005)。為增加傳輸效率,幀緩沖器1040數(shù)據(jù)可以雙份緩沖而且可以使用DMA。如果在一個時刻幀緩沖器1040讀出并處理一條線,能使用線緩沖器以保持以前線的Z值。
圖2是按照最佳實施例的一個示例性象素過濾程序100的流程圖,該程序提供了一個象素后處理邊界線渲染象素過濾器50。圖2的象素過濾程序100可以對儲存在幀緩沖器1040中的每個象素[X][Y]實施(框102)。示例性象素過濾器100讀出象素的顏色值(Pixel.R[X][Y],Pixel.G[X][Y],Pixel.B[X][Y]),還讀出象素的深度值(Z[X][Y](框104)。此外,示例性象素過濾器程序讀出象素[X][Y]的鄰近象素的深度值(也見框104)。在此特例中,象素過濾器程序100讀出兩個鄰接象素的深度值在X-Y陣列中給定象素的“左”鄰接象素的深度值Z[x-1][Y];在X-Y陣列中給定象素的“下”鄰接象素的深度值Z[X][Y-1]。見圖2A,如果幀緩沖器1040被讀出,并且一個時刻處理一條線,則線緩沖器被用于保存以前線的Z值。
借助于確定該象素的深度值(Z[X][Y])和一個或多個鄰近(在這里是鄰接)象素的深度值(Z)之間的差值Dz,象素過濾程序100決定該象素[X][Y]是否在物體的邊緣,Dz的計算例子可如下(見框106)DzDx=|Z[X][Y]-Z[X-1][Y]|DzDy=|Z[X][Y]-Z[X][Y-1]|Dz=max(DzDx,DzDy)。
在完成上述計算時,象素過濾器100確定該象素的深度和兩個相鄰象素的每個深度之間的差;取這些差的絕對值(這樣做是考慮到一個物體可能比另一個物體更近,也可能更遠(yuǎn));選所得到的兩個幅值中較大的。其結(jié)果是一個距離值Dz,度量出在Z方向該象素與鄰近的象素離得多遠(yuǎn)。能使用此計算測試出該象素是否在一個物體的邊緣。例如,當(dāng)該象素在一個物體邊緣,Dz通常是大的(因為鄰近象素通常具有十分不同的深度),而當(dāng)該象素不在一個物體的邊緣,Dz通常是小的(因為鄰近的象素具有相似的深度)。
在另外的例子中,有可能采用將兩個鄰近象素距離幅值相加來計算距離值Dz=DzDx+DzDy其他的變化也是可能的(例如不同的計算,使用不同的鄰近象素或不同數(shù)量的鄰近象素等)。
在本例中,象素過濾程序100提供與上述計算的Dz距離值成比例的顏色變化。在一個例子中,象素過濾器100使用比例/校正系數(shù)修改此最終的Dz距離值,并限制此結(jié)果的值,以如下方式求得一個象素混合因子(見框108)Alpha=Clamp((Scale Coefficent*Dz+Base Coefficient),0,1)。假設(shè)比例系數(shù)為正,當(dāng)Dz大時,結(jié)果的Alpha值將是大的(例如接近于1或限制到1),當(dāng)Dz是小時,結(jié)果的Alpha值將是小的(例如接近于0或限制到0)。對于求得象素混合因子可以使用不同的特定計算。例如,計算象素混合因子的另一種方法如下Gray=Clamp((Dz-Coefficent A)*Coefficient B,0,1)在本例中象素過濾器100在混合過程(如Alpha混合)中使用最終的象素混合因子可選擇地使用從彩色幀緩沖器1042獲得的象素顏色值(Pixel.R[X][Y],Pixel.G[X][Y],Pixel.B[X][Y])與預(yù)定的邊界線顏色(如Line.R,Line.G,Line.B)混合(見框110)。完成此混合的一個示例性計算公式集是New Pixel.R[X][Y]=Old Pixel.R[X][Y]*(1-Alpha)+Line.R*AlphaNew Pixel.G[X][Y]=Old Pixel.G[X][Y]*(1-Alpha)+Line.G*Alpha
New Pixel.B[X][Y]=Old Pixel.B[X][Y]*(1-Alpha)+Line.B*Alpha按照這些計算公式,當(dāng)距離Dz小時,混合后的(“New”-新的)象素顏色值將主要是初始象素顏色值,而當(dāng)距離Dz大時,主要是邊界線顏色。
如果該邊界線限于黑色(即Line.R=0,Line.G=0,Line.B=0)和/或只使用白帆布顏色(Line.R=255,Line.G=255,Line.B=255),上述混合計算可以簡化(例如提供進一步優(yōu)化)。使用如YUV那樣的非RGB顏色格式(此時,需控制亮度Y確保邊界線畫得清晰可見)也有可能得到更好的優(yōu)化。
在混合以后將混合后的象素緩存,然后在顯示設(shè)備1009上顯示(框112)。在一個例子中,對幀緩沖器1040中的所有象素完成象素過濾程序100,然后將最終混合的幀緩沖器內(nèi)容在顯示器1009上顯示。
在某些情況下,透視變換可以影響由上述過程提供的結(jié)果。考慮在圖3A中所示包括一個遠(yuǎn)的象素PIXA和一個近的象素PIXB的情況。由于透視變換,遠(yuǎn)端象素PIXA的DzDy大于近端象素PIXB的DzDy。這使得使用原始的DzDx和DzDy值精確地在整個圖像中檢測邊界線更加困難。為克服此問題,根據(jù)Z度量標(biāo)度,某些Z值校正是有益的。一個示例性校正可以使用log2(n)函數(shù)來作度量標(biāo)度(范圍)轉(zhuǎn)換DzDx=|log2(Z[X][Y]-log2(Z[X-1][Y])|DzDy=|log2(Z[X][Y]-log2(Z[X][Y-1])|如果處理器10具有浮點計算能力而且Z值以浮點格式儲存,函數(shù)log2(n)是很方便的。浮點格式可以如下表示,[3位指數(shù)][11位尾數(shù)]圖3示出對圖2流程圖的修改,使其包括log2(n)度量標(biāo)度的轉(zhuǎn)換。
圖4示出另一個示例性后處理象素過濾器200,它提供用于控制混合的Alpha值的深度調(diào)制。圖4中的框204,206和208是與圖2(若使用度量標(biāo)度轉(zhuǎn)換是圖3B)相應(yīng)的框104,106和108相同的。加上圖4的框210用于計算Alpha值,該值是在框208中計算的值和另一個作為象素深度Z的函數(shù)的值的函數(shù)(例如乘積),例如Alpha=Alpha Dz* Alpha Z最終的Alpha值也取決于象素的深度,它如上結(jié)合圖2的框210所述的,用于控制混合過程(見框212)。
圖5A-5F顯示可以得到的示例性邊界線屏幕效果。圖5A顯示一示例性沒有邊界線效果的風(fēng)景景色。圖5B顯示混合到白帆布顏色的最終邊界線—提供圖5A的風(fēng)景景色的有效的線圖。圖5C用黑色邊界線顏色混合到景色中顯示圖5A的風(fēng)景。
圖5D示出一示例性的異想天開的冒險游戲風(fēng)景。圖5E示出混合到白帆布顏色的最終邊界線。圖5F示出用黑色邊界線混合的圖5D的風(fēng)景。
如上所討論,可以多種方法實現(xiàn)象素后處理過濾器100。下面是一個象素后處理過濾器的計算機源碼程序的例子<pre listing-type="program-listing"><![CDATA[cfb_PixelProc_1addsys0, cptr,cbuf_widthsubsys1, sys0,cbuf_sizelqvdepth00
, 0(sys0)lsvdepth10
, 32+14(zero)lqvdepth10[2], 0(sys0)lqvdepth01
, 0(sys1)lqvcolor00
, 0(cptr)sqvdepth00
, 0(sys1) sqvdepth00
, 32(zero)vnxor depth00, depth00,_0x7fffvnxor depth10, depth10,_0x7fffvnxor depth01, depth01,_0x7fffvsub depthDX, depth00,depth10 #Xvsub depthDX, depth00,depth01 #Yvabs depthDX, depthDX,depthDXvabs depthDY, depthDY,depthDY#if def FILTER_2vorcolor00, vzero, _0xffff#endifvadd depthDX, depthDX,depthDYvadd depthDX, depthDX,Coeff_Avmudh depthDX, depthDX,Coeff_BvgedepthDX, depthDX,_0x0000vmud1 color0r, color00,_0x0020vand color0g, color00,v0x07c0vand color0b, color00,v0x003evmulf color0r, color0r,depthDXvmulf color0g, color0g,depthDXvmulf color0b, color0b,depthDXvand color00, color0g,v0x07c0vmadn color00, color0b,_0x0001vmadn color00, color0r,v0x0800vorcolor00, color00,_0x0001addicptr,cptr,16bne cptr,cptr_end,cfb_PixelProc_1sqv color00
,-16(cptr)jr return_svnop]]></pre>另一個卡通輪廓實施例根據(jù)所使用的特定計算,在某些卡通輪廓情況下上述邊界線應(yīng)用算法可能不能提供完全可接受的結(jié)果。圖6示出了那樣的一個例子。圖6示例性卡通人物300具有如上所述加到輪廓邊緣302的邊界線。圖6示出此卡通人物還具有右手,手腕和舉在該人物前面的部分前臂。上述技術(shù)在某些情況(例如取決于該人物的手臂位于離人物軀干多遠(yuǎn)的位置)認(rèn)為右手、手腕和前臂部分周圍的邊緣是內(nèi)部邊緣而非輪廓邊緣,因此對那些邊緣不加邊界線。圖6說明了,如果卡通輪廓只加到該人物的輪廓邊緣302,則卡通人物300的有些部分可能消失或變得不明顯,然而觀察者(根據(jù)彩色書籍、手畫動畫卡通和/或喜劇書籍的經(jīng)驗)希望加上邊界線,來劃分出手、腕和前臂。
為了使卡通人物300象手繪的那樣,最好也將邊界線加到某些內(nèi)部邊緣304,即在本例中確定人物的手、腕和舉在該人物自身前面的前臂的內(nèi)部邊緣。圖7示出帶有將邊界線加到這些內(nèi)部邊緣304的人物300。如果該人物300將它的手臂舉在向外伸的位置,這些內(nèi)部邊緣304將成為輪廓邊緣,但在手臂取向如圖7所示時為內(nèi)部邊緣。
按照本發(fā)明提供的另外方面,卡通輪廓線自動加到某些內(nèi)部邊緣,如圖7所示。更詳細(xì)地,表示一個物體不同部分的象素被分配不同的識別值。作為一個例子,可以借助于在幀緩沖器1040和/或一般用于編碼Alpha信息的嵌入芯片內(nèi)的DRAM1126a中分配位來指定識別值。被指定的識別值可用于確定在那個象素位置是否要畫邊界線。例如,系統(tǒng)可以將一個象素的識別值與鄰近(如鄰接)象素的識別值進行比較。如果兩個鄰接的象素的識別值具有某種預(yù)定的關(guān)系,則不畫邊界線。例如,若識別值是相同的,則兩個象素在同一表面上,不畫邊界線。但是,如果兩個鄰接象素的識別值具有某種另外的預(yù)定關(guān)系,則畫邊界線。
圖8A-8C示出一個例子。圖8A示出包含3個物體部分320,322,324的一個物體319的透視圖。圖8B示出同一物體319的平面圖。物體部分320是一個正方形,物體部分322是一個圓,而物體部分324是一個錐形。假設(shè)圖像藝術(shù)家想要在錐形324與正方形320相交處畫出一條邊界線330(見圖8A),而不是在圓錐相交圓322處或圓相交正方形處。在此例中,在正方形320、圓322和錐形324中的象素被編碼成分別不同的識別值。例如在正方形320中的象素用識別值“1”編碼;在圓322中的象素用“2”編碼;在錐形324中的象素用“3”編碼。圖8C示出一個示例性的儲存該編碼的幀緩沖器1040和/或1126a的Alpha部分(打陰影線的格子指出是加邊界線顏色的格子)。
在象素后處理階段,在幀緩沖器中的各種識別值被測試。對于與鄰接象素具有相同識別值的象素(所有那樣的象素在同一表面上)不畫邊界線。而且如果一個象素具有的識別值在預(yù)定的準(zhǔn)則或準(zhǔn)則組之內(nèi)不同于鄰接的象素的識別值,也不畫邊界線(例如,若象素K的識別值與象素K+1的識別值的差小于2,則不畫邊界線)。但是,若一個象素具有的識別值按另一個準(zhǔn)則或準(zhǔn)則組不同于鄰接象素的識別值,則畫邊界線(例如,若象素K的識別值與象素K+1的識別值的差為2或大于2,則在象素K處畫邊界線)。
圖9是按本實施例畫邊界線的一個示例性象素后處理程序的流程圖。程序350包括一個循環(huán)(框352-362),對存在幀緩沖器1040和/或1126a中圖像的每個象素[i][j]逐個處理。如上討論,作為將圖像提交給幀緩沖器的部分,圖像產(chǎn)生過程可以在通常分配儲存Alpha值的幀緩沖位中的物體的每個明顯區(qū)分的部分設(shè)置識別值。程序350檢測這些Alpha(現(xiàn)在是ID)值,以確定是否畫邊界線。在本例中,程序350取出象素[i][j]的Alpha(ID)值和鄰接象素的Alpha(ID)值(即pixel[i-1][j]和pixel[i][j-1])(框352)。程序352然后完成(在框354)下面的計算,以確定象素[i][j]的Alpha(ID)值和鄰接象素的Alpha(ID)值之間的差值diff X=ABS(Alpha[i][j]-Alpha[i-1][j])diff Y=ABS(Alpha[i][j]-Alpha[i][j-1])然后,程序350檢測最終的計算差值diff X和diff Y,以確定兩者是否超過預(yù)定的差值(例如,任意固定的或可編程的閾值,如1)(框356)。如果至少一個差值超過預(yù)定的差值,則程序350將象素[i][j]的顏色設(shè)置成邊界線的顏色(框358)。于是,當(dāng)Alpha的斜率是-1到+1時,認(rèn)為象素在此特定例子中,是在同一表面上。對該圖象中的每個象素重復(fù)步驟352-358(框360,362)。
在程序350的一個變化中,某些物體能用一個專門的Alpha識別值(例如0×00)編碼,以規(guī)定在該物體中的那些象素在畫邊界線時可以忽略(見圖9A)。例如這可能有助于將一個非邊界線的物體描繪為一個位圖(例如用于曝炸動畫)。
圖10示出上述程序350如何能夠被用于有效地在圖6和圖7中顯示的物體300上畫出邊界線。在比例中,物體300的不同部分用不同的Alpha(ID)值來編碼。例如,物體300可以包括兩個手臂311a和311b以及一個軀干309。每條臂可以包括一個手313,一個腕部分315,一個小臂部分312,一個肘部分308,一個上臂部分310,和一個肩部分317。這些不同部分中的每一個能用不同的AlphaID編碼,如下所示身體部分Alpha ID左手313a1左腕315a2左小臂312a 3左肘308a4左上臂310a 5左肩317a6軀干309 7右肩317b8右上臂310b 9右肘311b10右小臂312b 11右腕315b12右手313b13帶著上述編碼的示例性AlphaID,程序350將畫出如圖10中黑線所示的邊界線,但在物體各部分之間的其他交界處(以點線所示)不畫出邊界線。
上述編碼也能用于將邊界線加到同一物體300的連結(jié)部分之間的交界處。傳統(tǒng)的彩色書籍,手畫動畫卡通等有時將卡通輪廓加到那些自相交部位以便給出對該接合處給出更好的確定位置,造成肌肉發(fā)達的形象等。例如,圖11A-11C示出人物300連接人物上臂310和小臂312的關(guān)節(jié)接合處308(即肘)的特寫。使用上述編碼,當(dāng)關(guān)節(jié)接合處308彎曲使肢體310和312以如圖11B和11C那樣方向連結(jié)時,程序350將(根據(jù)小臂310的AlphaID和上臂312的AlphaID之間的差大于1)一條邊界線段316加到身體部分310和312交相交處。
這樣,本發(fā)明就提供了有效的技術(shù)在3維計算機圖像系統(tǒng)中加上如卡通輪廓線那樣的非圖像真實感效果。這些技術(shù)可以在象素后處理階段應(yīng)用(即在3維圖像流水線將圖像提供到幀緩沖器之后),并且不需要除3維圖像流水提供的信息以外的象素信息(即,顏色、深度和Alpha象素信息)。因此,按照本發(fā)明提供的象素后處理技術(shù)能被切實有效地應(yīng)用在幀緩沖器的“下游”(例如,芯片上緩沖器、芯片外緩沖器的一部分或抗混操作或其他后處理操作的一部分),而不會使3維圖像流水線或系統(tǒng)的其他部分大為復(fù)雜化。
雖然本發(fā)明結(jié)合認(rèn)為是最實際的最佳實施例來描述,可以理解,本發(fā)明不限于所揭示的實施例,相反,在所附的權(quán)利要求書的精神和范圍內(nèi)涵蓋各種修改和等價的配置。
權(quán)利要求
1.一種交互式3維家庭視頻游戲系統(tǒng),其特征在于,它包括至少一個手動操作的控制設(shè)備,提供用戶操縱的實時輸入;一個存儲媒體,存儲表示至少一個卡通角色的3維數(shù)據(jù);一個存儲圖像數(shù)據(jù)的緩沖存儲器;一個與所述緩沖存儲器相耦連的3維圖像流水線,所述3維圖像流水線至少根據(jù)所述用戶操縱的實時輸入和所述的表示所述卡通角色的3維數(shù)據(jù)將對應(yīng)于所述卡通角色的圖像數(shù)據(jù)提供給所述緩沖存儲器;和一個與所述緩沖存儲器相耦連的過濾器,所述過濾器將一個卡通輪廓功能應(yīng)用到所述圖像數(shù)據(jù),以便在所述卡通角色周圍自動畫出明顯的邊界線。
2.如權(quán)利要求1所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述圖像流水線和所述緩沖存儲器設(shè)置在單個半導(dǎo)體基片上,而且在將所述象素數(shù)據(jù)從所述的半導(dǎo)體基片寫到外部設(shè)備的過程中所述的過濾器對所述的象素數(shù)據(jù)進行操作。
3.如權(quán)利要求1所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述圖像數(shù)據(jù)包括象素顏色數(shù)據(jù),而且所述過濾器用邊界線顏色數(shù)據(jù)替換所述象素顏色數(shù)據(jù)。
4.如權(quán)利要求1所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述過濾器至少部分地根據(jù)與所述象素對應(yīng)的所述深度數(shù)據(jù)可選擇地修改至少與存儲在所述緩沖存儲器中的一個所述象素對應(yīng)的顏色數(shù)據(jù)。
5.如權(quán)利要求1所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述過濾器至少部分地根據(jù)相應(yīng)于所述象素及周圍的所述深度數(shù)據(jù)可選擇地修改至少對應(yīng)存儲在所述緩沖存儲器中的一個所述象素的顏色數(shù)據(jù)。
6.如權(quán)利要求1所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述過濾器確定對應(yīng)所述象素的深度數(shù)據(jù)和對應(yīng)鄰近所述象素的至少一個象素的深度數(shù)據(jù)之間的差值,并且如果所述的確定揭示所述差值超過預(yù)定閾值,則修改對應(yīng)于所述象素的顏色數(shù)據(jù)。
7.如權(quán)利要求1所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述過濾器至少部分地根據(jù)儲存在所述緩沖存儲器中的物體部分ID值有選擇地修改所述顏色數(shù)據(jù)。
8.如權(quán)利要求7所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述緩沖存儲器配置成儲存與多個象素相關(guān)的Alpha值,而且所述的物體部分ID值作為Alpha值被存入所述緩沖存儲器。
9.如權(quán)利要求1所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述過濾器確定對應(yīng)至少一個象素的識別數(shù)據(jù)與對應(yīng)鄰接于所述象素的至少一個象素的識別數(shù)據(jù)的差值;如果所述的確定揭示,所述差值超過一個預(yù)定閾值,則修改對應(yīng)于所述象素的所述顏色數(shù)據(jù)。
10.如權(quán)利要求1所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述過濾器用Alpha值混合存儲在所述緩沖存儲器的顏色數(shù)據(jù)。
11.如權(quán)利要求10所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述過濾器借助于將對應(yīng)所述象素的Alpha值設(shè)置到與所述象素的深度對應(yīng)的值來可選擇地修改儲存在所述緩沖存儲器的顏色數(shù)據(jù)。
12.如權(quán)利要求11所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述過濾器借助于將一個對應(yīng)于至少一個象素的Alpha值設(shè)置到與所述象素的深度和至少一個鄰近象素的深度的差值相對應(yīng)的值,可選擇地修改儲存在所述緩沖存儲器內(nèi)的顏色數(shù)據(jù)。
13.如權(quán)利要求12所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述鄰近象素是一個鄰接象素。
14.如權(quán)利要求1所述的3維家庭視頻游戲系統(tǒng),其特征在于,在所述圖像中的所述象素被指定為P[X,Y],而且所述過濾器將所述象素的深度與指定為P[X-1,Y]的第一個象素及指定為P[X,Y-1]的第二個象素的深度進行比較。
15.如權(quán)利要求1所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述圖像中的所述象素被指定為P[X,Y],所述過濾器將所述象素的深度與指定為P[X+1,Y]的第一個象素及指定為P[X,Y+1]的第二個象素的深度進行比較。
16.如權(quán)利要求1所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述過濾器計算所述象素的深度的第一個對數(shù)值和至少一個鄰近象素的深度的第二個對數(shù)值的差值。
17.如權(quán)利要求1所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述過濾器對所述卡通輪廓的施加進行深度調(diào)制。
18.如權(quán)利要求1所述的3維家庭視頻游戲系統(tǒng),其特征在于,所述過濾器為了透視轉(zhuǎn)換所述的卡通輪廓。
19.在一個包括儲存對應(yīng)于所提供的3維圖像的象素的顏色和深度數(shù)據(jù)的象素存儲器的該類型的計算機圖像系統(tǒng)中,一種產(chǎn)生非圖像真實感視頻效果的方法,其特征在于,它包括下述步驟(a)從所述象素存儲器中對至少一個所述象素至少讀所述的顏色數(shù)據(jù);和(b)對所述提供的圖像有選擇地修改所述顏色數(shù)據(jù),以提供一個卡通輪廓效果。
20.如權(quán)利要求19所述的方法,其特征在于,所述象素存儲器設(shè)置在圖像芯片上;所述的讀步驟(a)是在寫從所述圖像芯片提交出的所述圖像的象素后處理步驟中完成的。
21.如權(quán)利要求19所述的方法,其特征在于,有選擇地修改步驟包括用邊界線顏色數(shù)據(jù)替換所述象素的顏色數(shù)據(jù)的步驟。
22.如權(quán)利要求19所述的方法,其特征在于,所述可選擇地修改步驟是至少部分地根據(jù)對應(yīng)于所述象素的所述深度數(shù)據(jù)完成的。
23.如權(quán)利要求19所述的方法,其特征在于,所述可選擇地修改步驟是至少部分地根據(jù)對應(yīng)所述象素及周圍的所述深度進行的。
24.如權(quán)利要求19所述的方法,其特征在于,所述可選擇地修改步驟包括確定對應(yīng)所述象素的深度數(shù)據(jù)和對應(yīng)鄰近所述象素的至少一個象素的深度數(shù)據(jù)之間的差值;并且如果所述的確定揭示所述的差值超過預(yù)定的閾值,則修改對應(yīng)于所述象素的顏色數(shù)據(jù)。
25.如權(quán)利要求19所述的方法,其特征在于,所述可選擇地修改步驟至少部分地根據(jù)儲存在所述象素存儲器的一個物體部分ID值進行的。
26.如權(quán)利要求25所述的方法,其特征在于,所述象素存儲器配置成儲存與所述象素相關(guān)的Alpha值,而且所述物體部分ID值作為Alpha值被存入所述象素存儲器。
27.如權(quán)利要求19所述的方法,其特征在于,所述可選擇的修改步驟包括確定對應(yīng)所述象素的識別數(shù)據(jù)與對應(yīng)鄰接于所述象素的至少一個象素的識別數(shù)據(jù)的差值;如果所述的確定步驟揭示,所述的差值超過一個預(yù)定的閾值,則修改對應(yīng)所述象素的所述顏色數(shù)據(jù)。
28.如權(quán)利要求19所述的方法,其特征在于,所述可選擇地修改步驟包括使用Alpha值混合將邊界線加到所述的象素顏色數(shù)據(jù)中。
29.如權(quán)利要求28所述的方法,其特征在于,所述可選擇的修改步驟包括將對應(yīng)于所述象素的一個Alpha值設(shè)置成對應(yīng)于所述象素的深度的值。
30.如權(quán)利要求29所述的方法,其特征在于,所述可選擇地修改步驟包括將對應(yīng)于所述象素的Alpha值設(shè)置成對應(yīng)于所述象素的深度和至少一個鄰近象素的深度之間的差值的值。
31.如權(quán)利要求30所述的方法,其特征在于,所述鄰近象素是一個鄰接象素。
32.如權(quán)利要求19所述的方法,其特征在于,所述圖像中所述象素被指定為P[X,Y],而所述可選擇地修改步驟包括將所述象素的深度與指定為P[X-1,Y]的第一個象素及指定為P[X,Y-1]的第二個象素的深度進行比較。
33.如權(quán)利要求19所述的方法,其特征在于,所述圖像中所述象素指定為P[X,Y],而所述可選擇的修改步驟包括將所述象素的深度與指定為P[X+1,Y]的第一個象素及指定為P[X,Y+1]的第二個象素的深度進行比較。
34.如權(quán)利要求19所述的方法,其特征在于,所述可選擇修改步驟包括計算所述象素的深度的第一個對數(shù)值和至少一個鄰接象素的深度的第二個對數(shù)值的差值。
35.一種計算機圖像系統(tǒng),其特征在于,它包括一個圖像發(fā)動機,該圖像發(fā)動機將3維圖像提供到儲存對應(yīng)于所述3維圖像象素的顏色和深度數(shù)據(jù)的象素存儲器;一個耦連到所述象素存儲器的象素過濾器,所述象素過濾器至少從所述的象素存儲器讀出至少一個所述象素的所述顏色數(shù)據(jù);而且可選擇地修改所述的顏色數(shù)據(jù),以為所述提供的圖像提供卡通輪廓效果。
36.如權(quán)利要求35所述的系統(tǒng),其特征在于,所述圖像發(fā)動機和所述的象素存儲器設(shè)置在一個共同的基片上,所述圖像系統(tǒng)包括所述基片以外的另一個象素存儲器,而且所述象素過濾器將所述提供的圖像寫到所述另一個象素存儲器。
37.如權(quán)利要求35所述的系統(tǒng),其特征在于,所述象素過濾器將邊界線顏色數(shù)據(jù)替代所述象素的顏色數(shù)據(jù)。
38.如權(quán)利要求35所述的系統(tǒng),其特征在于,所述象素過濾器至少部分地根據(jù)對應(yīng)于所述象素的深度數(shù)據(jù)可選擇地修改所述顏色數(shù)據(jù)。
39.如權(quán)利要求35所述的系統(tǒng),其特征在于,所述象素過濾器至少部分地根據(jù)對應(yīng)于所述象素及周圍的所述深度數(shù)據(jù)可選擇地修改所述顏色數(shù)據(jù)。
40.如權(quán)利要求35所述的系統(tǒng),其特征在于,所述象素過濾器確定對應(yīng)所述象素的深度數(shù)據(jù)和對應(yīng)鄰近所述象素的至少一個象素的深度數(shù)據(jù)之間的差值;并且如果所述的確定揭示,所述的差值超過預(yù)定的閾值,則修改對應(yīng)于所述象素的顏色數(shù)據(jù)。
41.如權(quán)利要求35所述的系統(tǒng),其特征在于,所述象素過濾器至少部分地根據(jù)儲存在所述象素存儲器的物體部分ID值,可選擇地修改所述的顏色數(shù)據(jù)。
42.如權(quán)利要求41所述的系統(tǒng),其特征在于,所述象素存儲器配置成存儲與所述象素相關(guān)的Alpha值,而且所述物體部分ID值作為Alpha值被存入所述象素存儲器。
43.如權(quán)利要求35所述的系統(tǒng),其特征在于,所述象素過濾器確定對應(yīng)所述象素的識別數(shù)據(jù)與對應(yīng)鄰接于所述象素的至少一個象素的識別數(shù)據(jù)的差值;如果所述的確定揭示,所述的差值超過一個預(yù)定的閾值,則修改對應(yīng)于所述象素的所述顏色數(shù)據(jù)。
44.如權(quán)利要求35所述的系統(tǒng),其特征在于,所述象素過濾器借助于Alpha混合可選擇地修改所述的顏色數(shù)據(jù)。
45.如權(quán)利要求44所述的系統(tǒng),其特征在于,所述象素過濾器借助于將一個對應(yīng)所述象素的Alpha值設(shè)置到對應(yīng)所述象素的深度的值來可選擇地修改所述顏色數(shù)據(jù)。
46.如權(quán)利要求45所述的系統(tǒng),其特征在于,所述象素過濾器借助于將一個對應(yīng)于所述象素的Alpha值設(shè)置到對應(yīng)于一個差值的值,可選擇地修改所述的顏色數(shù)據(jù),所述的差值是所述象素的深度和至少一個鄰近象素的深度的差。
47.如權(quán)利要求46所述的系統(tǒng),其特征在于,所述鄰近象素是一個鄰接的象素。
48.如權(quán)利要求35所述的系統(tǒng),其特征在于,所述圖像中的所述象素被指定為P[X,Y],所述過濾器將所述象素的深度與指定為P[X-1,Y]的第一個象素及指定為P[X,Y-1]的第二個象素的深度進行比較。
49.如權(quán)利要求35所述的系統(tǒng),其特征在于,所述圖像中的所述象素被指定為P[X,Y],所述過濾器將所述象素的深度與指定為P[X+1,Y]的第一個象素及指定為P[X,Y+1]的第二個象素的深度進行比較。
50.如權(quán)利要求35所述的系統(tǒng),其特征在于,所述象素過濾器計算所述象素的深度的第一個對數(shù)值和至少一個鄰接象素的深度的第二個對數(shù)值的差值。
51.一種交互式3維家庭視頻游戲系統(tǒng),其特征在于,它包括至少一個手動操作控制設(shè)備,提供用戶操縱的實時輸入;一個存儲媒體,存儲至少表示一個卡通角色的3維數(shù)據(jù);一個存儲圖像數(shù)據(jù)的幀緩沖存儲器;一個與所述幀緩沖存儲器耦連的3維圖像流水線,所述3維圖像流水線至少根據(jù)所述用戶操縱的實時輸入以及代表所述卡通角色的所述3維數(shù)據(jù)將對應(yīng)于所述卡通角色的圖像數(shù)據(jù)提供到所述幀緩沖器;和一個與所述幀緩沖存儲器耦連的過濾器,所述過濾器將卡通輪廓功能應(yīng)用到所述圖像數(shù)據(jù),以便在所述卡通角色周圍自動畫出明顯的邊界線。
52.如權(quán)利要求51所述的家庭視頻游戲系統(tǒng),其特征在于,所述圖像流水線和所述幀緩沖存儲器設(shè)置在一個共同的半導(dǎo)體基片上;所述圖像系統(tǒng)包括所述基片外的另一個象素存儲器;而且所述過濾器將所述提供的圖像寫入所述另一個象素存儲器。
53.如權(quán)利要求51所述的系統(tǒng),其特征在于,所述過濾器用一個邊界線顏色數(shù)據(jù)替換所述象素的顏色數(shù)據(jù)。
54.如權(quán)利要求51所述的系統(tǒng),其特征在于,所述過濾器至少部分地根據(jù)對應(yīng)于所述象素的所述深度數(shù)據(jù)可選擇地修改對應(yīng)于存儲在所述幀緩沖存儲器中的至少一個象素的顏色數(shù)據(jù)。
55.如權(quán)利要求51所述的系統(tǒng),其特征在于,所述過濾器至少部分地根據(jù)對應(yīng)于所述象素的可能的所述深度數(shù)據(jù),可選擇地修改對應(yīng)于存儲在所述幀緩沖存儲器中至少一個象素的顏色數(shù)據(jù)。
56.如權(quán)利要求51所述的系統(tǒng),其特征在于,所述過濾器確定對應(yīng)所述象素的深度數(shù)據(jù)和對應(yīng)鄰近所述象素的至少一個象素的深度數(shù)據(jù)之間的差值;并且如果所述的確定揭示,所述的差值超過預(yù)定的閾值,則修改對應(yīng)于所述象素的顏色數(shù)據(jù)。
57.如權(quán)利要求51所述的系統(tǒng),其特征在于,所述過濾器至少部分地根據(jù)儲存在所述幀緩沖存儲器的物體部分ID值,可選擇地修改所述顏色數(shù)據(jù)。
58.如權(quán)利要求57所述的系統(tǒng),其特征在于,所述幀緩沖存儲器配置成儲存與多個象素有關(guān)的Alpha值;所述的物體部分ID值作為Alpha值存儲所述幀緩沖存儲器中。
59.如權(quán)利要求51所述的系統(tǒng),其特征在于,所述過濾器確定對應(yīng)至少一個象素的識別數(shù)據(jù)與對應(yīng)鄰接于所述象素的至少一個象素的識別數(shù)據(jù)的差值;如果所述的確定揭示,所述差值超一個預(yù)定的閾值,則修改對應(yīng)于所述象素的所述顏色數(shù)據(jù)。
60.如權(quán)利要求51所述的系統(tǒng),其特征在于,所述過濾器Alpha混合儲存在所述幀緩沖存儲器中的顏色數(shù)據(jù)。
61.如權(quán)利要求60所述的系統(tǒng),其特征在于,所述過濾器借助于將對應(yīng)于所述象素的Alpha值設(shè)置到與所述象素的深度對應(yīng)的值,可選擇地修改存儲在所述幀緩沖存儲器的顏色數(shù)據(jù)。
62.如權(quán)利要求61所述的系統(tǒng),其特征在于,所述過濾器借助于將一個對應(yīng)于至少一個象素的Alpha值設(shè)置到對應(yīng)于一個差值的值,可選擇地修改儲存在所述幀緩沖存儲器的顏色數(shù)據(jù),所述的差值是所述象素的深度和至少一個鄰近象素的深度的差。
63.如權(quán)利要求62所述的系統(tǒng),其特征在于,所述鄰近象素是鄰接象素。
64.如權(quán)利要求51所述的系統(tǒng),其特征在于,在所述圖像中的所述的象素被指定為[X,Y],而且所述過濾器將所述象素的深度與指定為P[X-1,P]的第一個象素及指定為P[X,Y-1]的第二個象素的深度進行比較。
65.如權(quán)利要求51所述的系統(tǒng),其特征在于,在所述圖像中的所述的象素指定為P[X,Y],所述過濾器將所述象素的深度與指定為P[X+1,Y]的第一個象素及指定為P[X,Y+1]的第二個象素的深度進行比較。
66.如權(quán)利要求51所述的系統(tǒng),其特征在于,所述過濾器計算所述象素的深度的第一個對數(shù)值和至少一個鄰近象素的深度的第二個對數(shù)值的差值。
67.一個模擬交互式3維家庭視頻游戲系統(tǒng)的仿真器,其特征在于,它包括至少一個手動操作的控制設(shè)備,提供用戶操縱的實時輸入;儲存代表至少一個卡通角色的3維數(shù)據(jù)的一個存儲媒體;一個存儲圖像數(shù)據(jù)的幀緩沖存儲器;一個與所述幀緩沖存儲器耦連的3維圖像流水線,所述3維圖像流水線至少根據(jù)所述用戶操縱的實時輸入和所述的表示所述卡通角色的3維數(shù)據(jù)將對應(yīng)于所述卡通角色的圖像數(shù)據(jù)提供給所述的幀緩沖存儲器;和一個與所述的幀緩沖存儲器相耦連的過濾器,所述過濾器將一個卡通輪廓功能應(yīng)用到所述的圖像數(shù)據(jù),以便在所述卡通角色周圍自動畫出明顯的邊界線。
全文摘要
在諸如3維家庭視頻游戲操作臺等的3維計算機圖像系統(tǒng)中,產(chǎn)生如卡通輪廓那樣非圖像真實感效果的有效技術(shù)涉及根據(jù)一個象素存儲器的內(nèi)容在物體的邊緣產(chǎn)生和顯示邊界線。某些技術(shù)使用深度(Z)值確定哪些象素位于物體的邊緣,然后可選擇地把邊界顏色混合到要顯示的那些象素中。借助于將象素深度值與鄰近象素的深度值進行比較定位物體的邊緣。根據(jù)計算的距離值將希望的邊界線顏色混合到象素的顏色值。
文檔編號G06F19/00GK1316723SQ00128840
公開日2001年10月10日 申請日期2000年9月22日 優(yōu)先權(quán)日1999年9月24日
發(fā)明者安本吉孝 申請人:任天堂株式會社