[0062] 回頭參考前面的圖5B的討論,導(dǎo)致有效組合的創(chuàng)建的二進制索引值00在樣本顏 色索引232a-d中的至少一個中的存在被分配用于編碼像素樣本數(shù)據(jù)231已經(jīng)被設(shè)置為完 全著色狀態(tài)的指示,在完全著色狀態(tài),樣本272a_d中的每一個都與顏色數(shù)據(jù)值相關(guān)聯(lián)。然 而,在圖6b中的此示例中,到目前為止,只有樣本272a和272b與任何顏色數(shù)據(jù)值相關(guān)聯(lián)。 因此,像素樣本數(shù)據(jù)231還不在完全著色狀態(tài)。相反,像素樣本數(shù)據(jù)231被置于部分著色狀 態(tài),在部分著色狀態(tài),樣本272c和272d有待于與任何顏色數(shù)據(jù)值相關(guān)聯(lián)。
[0063] 如此,由樣本存儲組件243導(dǎo)致處理器電路250同時指出樣本272a和272b被給 予利用存儲在顏色存儲位置236a中的顏色數(shù)據(jù)值描述的顏色,并通過將二進制值01與通 常分別存儲在樣本顏色索引232a和232b中的每一個中的二進制索引值00相加,指出像素 樣本數(shù)據(jù)231被設(shè)置為部分著色狀態(tài)。如所討論的,結(jié)果是,所有樣本顏色索引232a-d中 的最低二進制索引值是01,而不是00。具體而言,它是二進制索引值01作為二進制索引值 中的最低值在樣本顏色索引232a-d中的任何一個中的存在(導(dǎo)致創(chuàng)建無效組合),該存在 提供部分著色狀態(tài)的編碼指示。這種部分著色狀態(tài)的指示也被當作如下指示:必須通過從 存儲在樣本顏色索引232a和232b中的每一個中的二進制索引值01減去二進制值01,導(dǎo)出 指出哪一個顏色存儲位置存儲分配給樣本272a和272b的顏色數(shù)據(jù)值的真實的二進制索引 值。此減法導(dǎo)致利用導(dǎo)出的二進制值00準確地標識顏色存儲位置236w。
[0064] 部分著色狀態(tài)的另一個特征是,樣本顏色索引232a_d中的任何一個中的二進制 索引值11繼續(xù)被解釋為指出樣本272a_d中的其相關(guān)聯(lián)的樣本還沒有被分配顏色數(shù)據(jù)值。 這與存在于所有樣本顏色索引232a_d中的此相同二進制索引值11所給出的解釋不同,盡 管二進制索引值11在所有顏色索引232a-d中的存在也編碼未著色狀態(tài)的指示。如此,樣本 顏色索引232a-b中的每一個中的指向顏色存儲位置236w的二進制索引值01被解釋(通 過減去二進制值01)為存儲分配給樣本272a-b的顏色數(shù)據(jù)值,而樣本顏色索引232c-d中 的每一個中的二進制索引值11被解釋為指出樣本272c-d中沒有一個被指定一個顏色。
[0065] 簡要地返回到前面的圖5a和5b的示例,在該示例中,作出了直接從未著色狀態(tài)到 完全著色狀態(tài)的轉(zhuǎn)換,因為在該示例中存儲在顏色存儲位置236w的一種顏色數(shù)據(jù)值應(yīng)用 于全部四個樣本272a-d。如此,在該示例中,決不會有少于全部樣本272a-d與一個顏色數(shù) 據(jù)值相關(guān)聯(lián)的實例。這是為什么在該示例不會發(fā)生其中最低二進制索引值是01的無效二 進制索引值組合。
[0066] 轉(zhuǎn)向圖6c,通過樣本存儲組件243,導(dǎo)致處理器電路250存儲第二顏色數(shù)據(jù)值,該 第二顏色數(shù)據(jù)值指定由柵格化組件241導(dǎo)出的并且此時被確定為應(yīng)用于樣本272c和272d 的另一個顏色。這樣做時,導(dǎo)致處理器電路250根據(jù)上述的分配顏色存儲位置的順序的規(guī) 貝IJ,將此第二顏色數(shù)據(jù)值存儲在待分配的下一顏色存儲位置,即,顏色存儲位置236x。
[0067] 在將此第二顏色數(shù)據(jù)值存儲在顏色存儲位置236x的情況下,現(xiàn)在給所有四個樣 本272a-d中的每一個分配顏色,因此,像素樣本數(shù)據(jù)231現(xiàn)在被置于完全著色狀態(tài)。如前 面所討論的,像素樣本數(shù)據(jù)231處于完全著色狀態(tài)的事實被分配為通過使用樣本顏色索引 232a-d中的二進制索引值指出,這些二進制索引值準確地標識存儲與每一個樣本272a-d 相關(guān)聯(lián)的顏色數(shù)據(jù)值的顏色存儲位置236w-z的顏色存儲位置。更具體而言,完全著色狀態(tài) 用存儲標識顏色存儲位置236w的二進制索引值00的樣本顏色索引232a-d中的至少一個 來指出,使得〇〇是這些索引之中的最低二進制值。
[0068] 如此,在從指出部分著色狀態(tài)轉(zhuǎn)換到完全著色狀態(tài)時,由樣本存儲組件243導(dǎo)致 處理器電路250將存儲在樣本顏色索引232a和232b中的每一個中的二進制索引值從01 修改為00,以準確指向顏色存儲位置236w(無需如在部分著色狀態(tài)時那樣減去二進制01)。 還由樣本存儲組件243導(dǎo)致處理器電路250將值01存儲在樣本顏色索引232c和232d中 的每一個中,以指向顏色存儲位置236x(也無需減去二進制01)。這樣做時,導(dǎo)致處理器電 路250跨全部樣本顏色索引232a-d創(chuàng)建有效二進制索引值組合。
[0069] 圖7a、7b,7c和7d各自描繪了與在圖4中描繪的計算設(shè)備1000的相同部分,但是, 處于存儲為像素的樣本指定顏色的顏色數(shù)據(jù)值的再一個示例的不同階段。在此示例中,存 儲了四個顏色數(shù)據(jù)值,一次一個,其中每一個都應(yīng)用于像素271中的樣本272a-d中的一個。 進一步,顏色數(shù)據(jù)值中的一個指定"透明"顏色。
[0070] 從圖7a開始,再次,像素樣本數(shù)據(jù)231通過將全部樣本顏色索引232a-d初始化為 全1,初始化為未著色狀態(tài),為存儲顏色數(shù)據(jù)值作準備。再次,全1的存在是用于編碼像素樣 本數(shù)據(jù)231已經(jīng)被初始化到未著色狀態(tài)的指示的原本無效的二進制索引值組合。
[0071] 轉(zhuǎn)向圖7b,通過樣本存儲組件243,導(dǎo)致處理器電路250存儲第一顏色數(shù)據(jù)值,該 第一顏色數(shù)據(jù)值指定由柵格化組件241導(dǎo)出的并由柵格化組件241確定為只應(yīng)用于樣本 272a的顏色。這樣做時,導(dǎo)致處理器電路250將此顏色的此第一顏色數(shù)據(jù)值存儲在顏色存 儲位置236w,該顏色存儲位置236w始終是第一個分配的顏色存儲位置。
[0072] 假定這導(dǎo)致只給樣本272a分配顏色數(shù)據(jù)值,像素樣本數(shù)據(jù)231現(xiàn)在處于部分著色 狀態(tài)。結(jié)果,為指出此部分著色狀態(tài)以及指出存儲在顏色存儲位置236w中的顏色數(shù)據(jù)值是 分配給樣本272a的顏色數(shù)據(jù)值,二進制索引值01存儲在樣本顏色索引232a中。如前面所 討論的,并如在圖7b中所描繪的,這會導(dǎo)致存儲在樣本顏色索引232a-d中的任何一個中的 最低二進制索引值是二進制01,并且,這會導(dǎo)致需要存儲在樣本顏色索引232a-d中的指向 顏色存儲位置的樣本顏色索引232a-d中任一個的二進制索引值中的任何一個減去二進制 值01,以導(dǎo)出顏色存儲位置236W-Z中的一個的正確的數(shù)字標識符。如此,為使樣本顏色索 引232a中的二進制索引值01被正確地解釋為指向顏色存儲位置236w,必須將此二進制索 引值01減去二進制值01 (由此,得出匹配顏色存儲位置236w的數(shù)字標識符的二進制索引 值 00) 〇
[0073] 部分著色模式再次導(dǎo)致樣本顏色索引232a_d中的任何一個中的二進制索引值11 繼續(xù)被解釋為指出樣本272a-d中的其相關(guān)聯(lián)的樣本還沒有被分配顏色數(shù)據(jù)值。如此,樣本 顏色索引232b-d中的每一個中的二進制索引值11被解釋為指出樣本272b-d中沒有一個 被分配顏色數(shù)據(jù)值。
[0074] 轉(zhuǎn)向圖7c,通過樣本存儲組件243,導(dǎo)致處理器電路250存儲第二顏色數(shù)據(jù)值,該 第二顏色數(shù)據(jù)值指定由柵格化組件241導(dǎo)出的并且此時被確定為只應(yīng)用于樣本272c的另 一個顏色。這樣做時,導(dǎo)致處理器電路250根據(jù)上述的分配顏色存儲位置的順序的規(guī)則,將 此第二顏色數(shù)據(jù)值存儲在可用于分配的下一顏色存儲位置,即,顏色存儲位置236x。
[0075] 假定這導(dǎo)致只給樣本272a和272c分配顏色數(shù)據(jù)值,像素樣本數(shù)據(jù)231仍保持在 部分著色狀態(tài)。為繼續(xù)指出此部分著色狀態(tài)以及指出存儲在顏色存儲位置236w中的顏色 數(shù)據(jù)值是分配給樣本272c的顏色數(shù)據(jù)值,二進制索引值10存儲在樣本顏色索引232c中。 再次,存儲在樣本顏色索引232a-d中的任何一個中的最低二進制索引值仍然是存儲在樣 本顏色索引232a中的二進制索引值01,再次,這會提供像素樣本數(shù)據(jù)231仍處于部分著色 狀態(tài)的指示。再次,繼續(xù)需要減去二進制值01,以導(dǎo)出由存儲在樣本顏色索引232a-d中的 一個中的二進制索引值中的被解釋為指向顏色存儲位置236w-z中的一個的任何一個所指 向的顏色存儲位置236w-z中的任何一個的正確的數(shù)字標識符。如此,為使樣本顏色索引 232c中的二進制索引值10被正確地解釋為指向顏色存儲位置236x,必須將此二進制索引 值10減去二進制值10 (由此,得出匹配顏色存儲位置236x的數(shù)字標識符的二進制索引值 01) 〇
[0076] 而且,樣本顏色索引232a_d中的任何一個中的二進制索引值11繼續(xù)被解釋為指 出樣本272a-d中的其相關(guān)聯(lián)的樣本還沒有被分配顏色數(shù)據(jù)值。如此,樣本顏色索引232b 和232d中的每一個中的二進制索引值11被解釋為指出樣本272b或272d中沒有一個被分 配顏色數(shù)據(jù)值。
[0077] 轉(zhuǎn)向圖7d,通過樣本存儲組件243,導(dǎo)致處理器電路250存儲第三顏色數(shù)據(jù)值,該 第三顏色數(shù)據(jù)值指定由柵格化組件241導(dǎo)出的并且此時被確定為只應(yīng)用于樣本272d的再 一個顏色。這樣做時,導(dǎo)致處理器電路250根據(jù)上述的分配顏色存儲位置的順序的規(guī)則,將 此第三顏色數(shù)據(jù)值存儲在可用于分配的下一顏色存儲位置,即,顏色存儲位置236y。
[0078] 假定這導(dǎo)致給樣本272a和272c-d,但不給樣本272b,分配顏色數(shù)據(jù)值,像素樣本 數(shù)據(jù)231將仍保持在部分著色狀態(tài)。然而,在將此第三顏色數(shù)據(jù)值存儲到顏色存儲位置 236y時,顏色存儲位置的倒數(shù)第二個現(xiàn)在已經(jīng)分配,響應(yīng)于此,由樣本存儲組件243導(dǎo)致處 理器電路250也將"透明"顏色的顏色數(shù)據(jù)值存儲在顏色存儲位置236z(始終是最后一個 被分配的顏色存儲位置)。這實際會導(dǎo)致也給樣本272b分配顏色數(shù)據(jù)值,這會導(dǎo)致像素樣 本數(shù)據(jù)231現(xiàn)轉(zhuǎn)換成處于完全著色狀態(tài)。這是使用顏色存儲位置中的倒數(shù)第二個(具體而 言,在此示例中,顏色存儲位置236y),此時,并非所有樣本272a-d都被指定了著色,從而觸 發(fā)此將"透明"顏色的顏色數(shù)據(jù)值存儲在最后一個顏色存儲位置。
[0079] 在此轉(zhuǎn)換到完全著色狀態(tài)時,預(yù)期全部樣本顏色索引232a_d中的二進制索引值 的組合是有效值,其中,樣本顏色索引232a_d中的每一個的二進制索引值都正確地標識顏 色存儲位置236w-z中的一個(例如,存儲在樣本顏色索引232中的每一個中的二進制索引 值實際匹配存儲位置236W-Z中的它們所指向的存儲位置的數(shù)字標識符,使得不再需要減 去二進制01以導(dǎo)出正確的數(shù)字標識符)。如此,在此轉(zhuǎn)換到完全著色狀態(tài)時,由樣本存儲 組件243進一步導(dǎo)致處理器電路250使用正確的二進制索引值,代替使用要求減去二進制 01以導(dǎo)出匹配數(shù)字標識符的正確二進制索引值的二進制索引值,分別修改存儲在樣本顏色 索引232a和232c中的二進制索引值,以指向顏色存儲位置236w和236x。如此,存儲在顏 色存儲位置232a中的二進制索引值01被替換為二進制索引值00,而存儲在樣本顏色索引 232c中的二進制索引值10被替換為二進制索引值01。通過這樣做,二進制索引值10變得 可用于樣本顏色索引232d中,以正確地指出分配給樣本272d的顏色數(shù)據(jù)值存儲在顏色存 儲位置236y。樣本顏色索引232b繼續(xù)存儲二進制索引值11,然而,在進入完全著色模式時, 二進制索引值11現(xiàn)在被解釋為指向顏色存儲位置236z。
[0080] 在某些實施例中,其顏色數(shù)據(jù)值存儲在顏色存儲位置236Z中的"透明"顏色可以 是用于圖像270中由3D模型數(shù)據(jù)130所表示的任何對象的沒有任何部份被示出的區(qū)域中 的背景顏色。在其他實施例中,透明顏色可以根本不是真正的顏色,而是可以簡單地是向控 制例程240的另一個組件(未示出)提供需要導(dǎo)出一個像素和/或一個或多個像素的一個 或多個樣本的沒有示出由3D模型數(shù)據(jù)所表示的任何對象的一部分的背景或其他顏色的指 示的顏色數(shù)據(jù)值。這可以是背景顏色不是單一均勻顏色的情況。
[0081] 部分著色狀態(tài)的一個特征是,"透明"顏色的存儲即便沒有完全避免,也至少被推 遲。這改進了MSAA的其他實現(xiàn),在其他實現(xiàn)中,將任何一個顏色數(shù)據(jù)值存儲在顏色存儲 位置236W-Z中的任何一個中,緊跟著將"透明"顏色的顏色數(shù)據(jù)值存儲在顏色存儲位置 236W-Z中的下一可用的顏色存儲位置,用于將該透明顏色分配給樣本272a-d中的還沒有 被分配顏色的任何一個樣本。換言之并返回到圖6b,在MSAA的那些其他實現(xiàn)中,將顏色數(shù) 據(jù)值存儲在顏色存儲位置236w中以及其分配到樣本272a和272b,緊跟著將透明顏色存儲 在顏色存儲位置236x,以及其分配到樣本272c和272d。然而,通過稍后在圖6c中將顏色 分配到那些完全相同的樣本272c和272d,這將變得多余。如此,用于訪問存儲器260的存 儲器設(shè)備的某些可用帶寬被這樣快地浪費于存儲該"透明"顏色的顏色值數(shù)據(jù)。通過在部分 著色狀態(tài)過程中將透明顏色的存儲至少推遲到倒數(shù)第二個顏色存儲位置用于存儲由柵格 化組件241導(dǎo)出的顏色數(shù)據(jù)值,如圖7d所示,在全部樣本272a-d被分配由柵格化組件241 導(dǎo)出的顏色數(shù)據(jù)值的情況下,提供了完全避免訪問存儲器260以存儲透明顏色的機會。當 跨構(gòu)成圖像270的許多像素執(zhí)行時,這樣的存儲透明顏色的顏色數(shù)據(jù)值的推遲可以防止浪 費大量的帶寬。例如,假定存儲在顏色存儲位置236y中的顏色數(shù)據(jù)值(如圖7d所示)被 分配給樣本272b和272d兩者,那么,透明顏色的顏色數(shù)據(jù)值的存儲將會被完全避免,因為 樣本272a-d中的全部都被分配了由柵格化組件241導(dǎo)出的顏色。在渲染圖像270時的稍 后的階段,這樣的避免存儲透明顏色的顏色數(shù)據(jù)值也可以提供進一步的優(yōu)點,因為透明顏 色的顏色數(shù)據(jù)值的最終是多余的所存儲副本在顏色存儲位置236W-Z之中不存在,不會被 檢索訪問,然后被再次存儲。
[0082] 從圖5a_b、圖6a_c以及圖7a_7d的示例概括,實行顏色存儲位置的分配的順序 的規(guī)則,該規(guī)則導(dǎo)致樣本顏色索引中的二進制索引值的可能組合的子集被定義為可能(因 此,有效的),并導(dǎo)致二進制索引值的可能組合的另一個子集被定義為不可能的(因此,無 效的)。選擇無效組合中的一個來編碼像素的像素樣本數(shù)據(jù)被初始化到未著色狀態(tài)(其中, 與該像素相關(guān)聯(lián)的樣本中沒有一個被分配了顏色)的指示。在上面的示例中,導(dǎo)致全1的 樣本顏色索引232a_d的二進制索引值組合被選擇來編碼此指示。
[0083] 若干個其他無效組合用于同時編碼由于少于全部樣本被分配了由柵格化導(dǎo)出的 顏色而該像素的像素樣本數(shù)據(jù)已經(jīng)被置于部分著色狀態(tài)的指示,并編碼標識哪些顏色存儲 位置存儲應(yīng)用于樣本中的一個或多個的顏色數(shù)據(jù)值的指示。在標識顏色存儲位置的指示的 編碼中,不使用與數(shù)字標識符匹配以正確地標識二進制索引值所指向的顏色存儲位置的二 進制索引值,來避免創(chuàng)建有效的二進制索引值組合。相反,存儲在樣本顏色索引中的二進制 索引值被選擇以要求算術(shù)運算來導(dǎo)出匹配二進制索引值指向的顏色存儲位置的數(shù)字標識 符的二進制索引值。在上面的示例中,存儲在樣本顏色索引232a_d中的指向顏色存儲位置 236w-z中的一個或多個的二進制索引值被選擇來要求減去二進制值01,以導(dǎo)出正確的標 識的二進制索引值。
[0084] 在部分著色狀態(tài),盡管可能有被分配了由柵格化導(dǎo)出的顏色的一個或多個樣本, 但是,沒有一個樣本被分配了透明顏色。實際上,在部分著色狀態(tài),表示透明顏色的顏色數(shù) 據(jù)值的存儲被推遲(至少直到分配了倒數(shù)第二個顏色存儲位置),以有可能不需要存儲這 樣的顏色數(shù)據(jù)值,因為為從柵格化導(dǎo)出的顏色存儲的下一顏色數(shù)據(jù)值可以應(yīng)用于還沒有被 分配顏色的全部樣本的可能性仍存在。如此,通過使存儲隨后可能被渲染的透明顏色的顏 色數(shù)據(jù)值的存儲器訪問不必要,以及避免導(dǎo)致在渲染流水線的以后階段對該不必要的顏色 數(shù)據(jù)值的后續(xù)不必要的訪問,努力防止浪費存儲器帶寬。
[0085] 將通過柵格化導(dǎo)出的顏色數(shù)據(jù)值存儲到倒數(shù)第二個顏色存儲位置(如由顏色存 儲位置的分配的順序的規(guī)則規(guī)定的)觸發(fā)從部分著色狀態(tài)轉(zhuǎn)換到完全著色狀態(tài),該轉(zhuǎn)換可 以以兩種方式中的一種執(zhí)行一一將指定透明顏色的顏色數(shù)據(jù)值存儲到最后一個顏色存儲 位置,或不。在存儲在倒數(shù)第二個顏色存儲位置中的顏色數(shù)據(jù)值應(yīng)用于還沒有被分配顏色 的全部樣本的情況下,不存儲透明顏色的顏色數(shù)據(jù)值。如此,在部分著色狀態(tài)被推遲,結(jié)果 是阻止存儲透明顏色的顏色數(shù)據(jù)值。然而,在存儲在倒數(shù)第二個存儲位置中的顏色數(shù)據(jù)值 將不會應(yīng)用于還沒有被分配顏色的全部樣本以便仍至少有一個樣本仍未被分配顏色的情 況下,貫穿整個部分著色狀態(tài)對存儲透明顏色的顏色數(shù)據(jù)值的推遲在此轉(zhuǎn)換中結(jié)束。最后 一個顏色存儲位置用于存儲透明顏色的顏色數(shù)據(jù)值,對應(yīng)于仍未被分配顏色的任何樣本的 任何樣本顏色索引被提供有指向現(xiàn)在存儲透明顏色的顏色數(shù)據(jù)值的最后一個顏色存儲位 置的二進制索引值。
[0086] 在此轉(zhuǎn)換中,從部分著色狀態(tài)到完全著色狀態(tài),檢查已經(jīng)存儲在樣本顏色索引中 的二進制索引值,以確定哪些樣本已經(jīng)被分配了通過柵格化導(dǎo)出的顏色。這與哪些樣本現(xiàn) 在將被分配由現(xiàn)在被存儲在倒數(shù)第二個顏色存儲位置中的顏色數(shù)據(jù)值所指定的顏色一起 被考慮。如果確定將仍有一個或多個仍未被分配通過柵格化導(dǎo)出的顏色的樣本,那么,觸發(fā) "透明"顏色的顏色數(shù)據(jù)值存儲在最后一個顏色存儲位置。
[0087] 在此轉(zhuǎn)換中,不管是否觸發(fā)透明顏色的顏色數(shù)據(jù)值的存儲,已經(jīng)存儲在樣本顏色 索引中的任何一個中的并且指向顏色存儲位置的二進制索引值從要求算術(shù)運算以導(dǎo)出正 確的二進制索引值的