顯示器上的像素再現的製作方法
2023-10-06 21:00:49 6
專利名稱:顯示器上的像素再現的製作方法
技術領域:
本發明涉及在顯示器上再現像素。
背景技術:
提供用於視覺呈現的內容的裝置一般包含圖形處理單元(GPU)。GPU在顯示器上再現表示內容的像素。GPU接收顯示器上的每一像素的一個或一個以上像素值。GPU對顯示器上的每一像素的像素值進行摻合以再現用於呈現的每一像素。
發明內容
大體上,本發明描述用於在顯示器上再現像素的技術。例如圖形處理單元(GPU)等處理單元可接收將在顯示器上顯示的多個表面的位置。對於顯示器的像素,處理單元可識別哪些表面包含與顯示器的所述像素位於同一地點的表面像素。每一表面像素可由像素值界定,所述像素值包含像素的色彩和像素的不透明度值。在一些實例中,像素的色彩還可包含像素的強度。在一些實例中,替代於或除了每一表面像素的不透明度值之外,每一表面可由其表面不透明度值界定。處理單元可基於所識別表面的次序來摻合位於同一地點的表面像素的色彩值。處理單元可基於所述多個表面中的所識別表面的次序來累加位於同一地點的表面像素的不透明度值和/或包含位於同一地點的表面像素的所識別表面的表面不透明度值。在一些實例中,處理單元可基於經累加不透明度值來確定是否終止色彩值的摻合。在一個實例中,本發明的方面是針對一種方法,其包括:以處理單元接收將在顯示器上顯示的多個表面中的每一者的位置;以所述處理單元至少基於所述表面中的每一者的所述位置來識別所述多個表面中包含與所述顯示器的至少一個像素位於同一地點的一個或一個以上位於同一地點的表面像素的一個或一個以上表面;以及以所述處理單元至少基於所述多個表面中的所述所識別一個或一個以上表面的次序來摻合所述所識別一個或一個以上表面的與所述至少一個像素位於同一地點的所述一個或一個以上位於同一地點的表面像素的像素值。在另一實例中,本發明的方面是針對一種設備,其包括:圖形處理單元(GPU),其經配置以接收將在顯示器上顯示的多個表面中的每一者的位置;著色器,其經配置以:基於所述表面中的每一者的所述位置來識別所述多個表面中包含與所述顯示器的至少一個像素位於同一地點的一個或一個以上位於同一地點的表面像素的一個或一個以上表面;以及至少基於所述多個表面中的所述所識別一個或一個以上表面的次序來摻合所述所識別一個或一個以上表面的與所述至少一個像素位於同一地點的所述一個或一個以上位於同一地點的表面像素的像素值;以及存儲器,其經配置以存儲所述經摻合像素值。在另一實例中 ,本發明的方面是針對一種計算機可讀存儲媒體,其包括致使一個或一個以上處理器進行以下操作的指令:接收將在顯示器上顯示的多個表面中的每一者的位置;至少基於所述表面中的每一者的所述位置來識別所述多個表面中包含與所述顯示器的至少一個像素位於同一地點的一個或一個以上位於同一地點的表面像素的一個或一個以上表面;以及至少基於所述多個表面中的所述所識別一個或一個以上表面的次序來摻合所述所識別一個或一個以上表面的與所述至少一個像素位於同一地點的所述一個或一個以上位於同一地點的表面像素的像素值。在另一實例中,本發明的方面是針對一種設備,其包括:用於接收將在顯示器上顯示的多個表面中的每一者的位置的裝置;用於至少基於所述表面中的每一者的所述位置來識別所述多個表面中包含與所述顯示器的至少一個像素位於同一地點的一個或一個以上位於同一地點的表面像素的一個或一個以上表面的裝置;以及用於至少基於所述多個表面中的所述所識別一個或一個以上表面的次序來摻合所述所識別一個或一個以上表面的與所述至少一個像素位於同一地點的所述一個或一個以上位於同一地點的表面像素的像素值的裝置。一個或一個以上實例的細節陳述於附圖及以下描述中。其它特徵、目的及優點將從描述及附圖和從權利要求書中顯而易見。
圖1是說明可經配置以實施本發明的方面的裝置的框圖。圖2是呈現多個表面的顯示器的實例說明。圖3是說明根據本發明的一些方面的圖形處理單元(GPU)的實例操作的流程圖。圖4是說明根據本發明的一些方面的GPU的另一實例操作的流程圖。
具體實施例方式在裝置上執行的一個或一個以上應用程式可產生可視對象以在顯示器上呈現。所述可視對象可視為表面。每一表面包含與顯示器上的像素位於同一地點的表面像素。每一表面可通過其在顯示器上的位置來識別。在一些實例中,例如當兩個表面包含重疊位置時,一表面可重疊於另一表面上或可被另一表面重疊。在這些實例中,重疊表面的表面像素中的至少一些與被重疊表面的表面像素中的至少一些位於同一地點。如本發明中使用,位於同一地點的像素指代位於顯示器上大體上相似位置處的像素。在本發明的一些方面中,對於顯示器的像素,處理單元可識別哪些表面包含與顯示器的像素位於同一地點的表面像素。處理單元可至少基於所識別表面的次序來摻合所述位於同一地點的表面像素的像素值。像素值可指示像素的色彩和不透明度值。色彩的指示還可指示像素的強度。處理單元還可至少基於所識別表面的次序而累加所述位於同一地點的表面像素的不透明度值和/或包含位於同一地點的表面像素的所識別表面的表面不透明度值。在一些實例中,處理單元可在經累加不透明度值大於或大體上等於不透明度值閾值之後終止累加和摻合。在這些情況下,當經累加不透明度值大於或大體上等於不透明度值閾值時,後續所識別表面中的位於同一地點的表面像素可被遮擋且不可見。因為後續所識別表面中的位於同一地點的表面像素可為不可見的,所以可以無需處理這些表面像素,從而允許處理單元終止摻合和累加。在終止累加和摻合後,處理單元可即刻在顯示器上再現像素或可即刻將最終像素值存儲在顯示緩衝器中用於未來呈現。所識別表面的次序可指示哪一表面是最前方表面、次最前方表面等等,直到最後方表面為止。所識別表面可為包含與顯示器的給定像素位於同一地點的位於同一地點的表面像素的表面。如本發明中使用,所識別表面中的最前方表面指代未被任何其它所識別表面重疊的表面,且所識別表面中的最後方表面指代不重疊於任何其它所識別表面上的表面。次最前方表面是可位於最前方表面與最後方表面之間的表面。舉例來說,次最前方表面可部分地或完全地被最前方表面重疊,且可部分地或完全地重疊於最後方表面上。在最前方表面與最後方表面之間可存在多個介入表面。最後方表面可為顯示器的背景。所識別表面的次序可根據次序識別符來排序。次序識別符可指示哪一表面在哪一其它表面前方,且反之亦然。如下文更詳細描述,在一些實例中,次序識別符可明確地指示所識別表面的次序,然而,本發明的方面不受此限制。圖1是說明可經配置以實施本發明的方面的裝置2的框圖。裝置2的實例包含(但不限於)移動無線電話、個人數字助理(PDA)、包含視頻顯示器的視頻遊戲控制臺、移動視頻會議單元、膝上型計算機、桌上型計算機、電視機機頂盒和類似物。裝置2可包含主機處理器4、圖形處理單元(GPU)6、顯示器8、顯示緩衝器10、存儲裝置12、收發器模塊14和用戶接口 16。主機處理器4和/或GPU6可為處理單元的實例。裝置2可包含圖1中為了清楚而未圖示的額外模塊或單元。舉例來說,在裝置2為移動無線電話的實例中,裝置2可包含揚聲器和麥克風(圖1中均未圖示)以實現電話通信。此外,裝置2中所示的各種模塊和單元可能不是在裝置2的每個實例中都是必要的。舉例來說,在裝置2為桌上型計算機的實例中,用戶接口 16和顯示器8可在裝置2的外部。主機處理器4可執行一個或一個以上應用程式。應用程式的實例包含網絡瀏覽器、電子郵件應用程式、電子數據表、視頻遊戲或產生用於呈現的可視對象的其它應用程式。所述一個或一個以上應用程式可存儲在存儲裝置12內。在一些實例中,主機處理器4可經由收發器模塊14下載所述一個或一個以上應用程式。主機處理器4可基於用戶經由用戶接口 16的選擇而 執行所述一個或一個以上應用程式。在一些實例中,主機處理器4可在無用戶交互的情況下執行所述一個或一個以上應用程式。主機處理器4的實例包含(但不限於)數位訊號處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現場可編程邏輯陣列(FPGA)或其它等效集成或離散邏輯電路。存儲裝置12可包括一個或一個以上計算機可讀存儲媒體。存儲裝置12的實例包含(但不限於)隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、CD-ROM或其它光碟存儲裝置、磁碟存儲裝置或其它磁性存儲裝置、快閃記憶體或可用以用指令或數據結構的形式載運或存儲所要程序代碼且可由計算機或處理器存取的任何其它媒體。在一些方面中,存儲裝置12在本發明中可包含致使主機處理器4和/或圖形處理單元6執行歸屬於主機處理器4和圖形處理單元6的功能的指令。用戶接口 16的實例包含(但不限於)軌跡球、滑鼠、鍵盤和其它類型的輸入裝置。用戶接口 16還可為觸控螢幕且可作為顯示器8的一部分而併入。收發器模塊14可包含用以允許裝置2與另一裝置或網絡之間的無線或有線通信的電路。收發器模塊14可包含調製器、解調器、放大器和用於有線或無線通信的其它此類電路。在所述一個或一個以上應用程式的執行後,主機處理器4可以表面的形式產生可視對象。所述表面可作為圖像而在顯示器8上再現以用於呈現。在一些實例中,所述表面的表面像素中的一些可能不被再現,因為這些表面像素可被其它位於同一地點的表面像素遮擋。所述表面可為圓、線、矩形、三角形或其它類型的多邊形。主機處理器4還可基於顯示器8的像素坐標而識別所述表面在顯示器8上所在的位置。所述位置可識別所述表面在顯示器8上的範圍。顯示器8可包括液晶顯示器(IXD)、陰極射線管(CRT)顯示器、等離子顯示器或另一類型的顯示裝置。顯示器8包含在2維(2-D)像素陣列中水平和垂直地布置的多個像素。顯示器8的每一像素可通過其2-D坐標來識別,例如笛卡爾坐標中的(x,y)。舉例來說,位於顯示器8的左上角的像素可被識別為位於(0,0)處的像素。緊鄰位於(0,0)處的像素右邊的像素可被識別為位於(1,0)處的像素。緊鄰位於(0,0)處的像素下方的像素可被識別為位於(0,1)處的像素。可類似地識別顯示器8的所有像素。上文描述的笛卡爾坐標僅是為了說明目的而描述。顯示器8的像素可通過不同類型的坐標系來識別,例如極坐標、雙極坐標、拋物線坐標和類似坐標。此外,像素的實例位置也是僅為了說明目的而描述。在一些實例中,位於(0,0)處的像素可處於顯示器8的左下方、右上方、右下方或任一其它像素位置。由主機處理器4產生的表面的位置可至少基於所述表面的坐標來界定。在所述表面為圓的實例中,所述表面的位置可至少基於所述圓的中心坐標和半徑。隨後可基於所述圓的中心坐標和半徑而計算所述表面的範圍,例如所述表面的周界。大體上,對於多邊形,可至少基於所述表面的頂點的頂點坐標中的一者或一者以上來界定所述表面的位置。所述表面的頂點的頂點坐標可識別所述表面的範圍。在所述表面為矩形的實例中,所述表面的位置可基於矩形的四個頂點的頂點坐標。在所述表面為矩形的一些實例中,至少兩個頂點坐標可足以識別所述表面的位置和範圍。可根據所述兩個頂點坐標計算其餘頂點坐標。舉例來說,頂點坐標可為識別矩形的左上方頂點的(xmin,ymin)坐標,以及識別矩形的右下方頂點的(xmax,yfflax)坐標。矩形的左下方頂點則為(xmin,yfflax),且矩形的右上方頂點則為·(X_,ymin)。為了說明的目的,在矩形表面的上下文中描述本發明的方面。然而,所述表面不應視為限於矩形表面,且可採取其它多邊形、圓或類似物的形式。通過所述一個或一個以上應用程式的執行產生的每一表面包含一個或一個以上表面像素。主機處理器4可將像素值(例如包含強度值和不透明度值的色彩值)指派給所述表面中的每一者的表面像素中的每一者。每一表面像素的像素值指示所述表面像素的色彩、亮度和不透明度。主機處理器4還可指派一個或一個以上表面中的每一者的整個表面的不透明度值。表面像素表示顯示器的像素且被視為與顯示器8上的像素位於同一地點。舉例來說,位於第一表面的(I,I)處的表面像素與顯不器8的位於(1,1)處的像素位於同一地點,且表不顯不器8的位於(1,1)處的像素。位於第二表面的(1,1)處的表面像素與位於第一表面的(1,1)處的表面像素和顯示器8的位於(1,1)處的像素位於同一地點,且也表示顯示器8的位於(1,1)處的像素。每一表面像素的色彩值可基於紅色值、綠色值和藍色值(RGB值)。RGB值可表示每一表面像素的色彩和強度。強度可指示表面像素的亮度。每一表面像素的不透明度值可表示每一表面像素的不透明性。每一表面的表面不透明度值可表示整個表面的不透明性。表面像素的不透明性或表面的不透明性可指示表面像素或表面的不透明度。不透明度值可表示為完全不透明性的分數。舉例來說,完全不透明表面像素或完全不透明表面(即,100%不透明性)被指派I的不透明度值。50%不透明的半透明表面像素或半透明表面(S卩,50%不透明性)可被指派0.5的不透明度值,以此類推。半透明表面像素或半透明表面可不會完全遮擋其它像素或表面。事實上,半透明表面像素或半透明表面可部分地遮擋其它像素或表面。上文描述的色彩值和不透明度值是為了說明目的而提供且不應視為限制性的。根據本發明的方面可利用用以識別色彩值和不透明度值的任何技術。主機處理器4還可確定通過所述一個或一個以上應用程式的執行產生的表面的次序。例如當若干表面的至少若干部分處於大體上類似位置時,一表面可部分地或完全地重疊於一個或一個以上其它表面上。作為一個實例,第一表面的頂點坐標為(1,1)、(5,1)、(1,5)和(5,5),且第二表面的頂點坐標為(2,3)、(2,7), (10,3)和(10,7)。在此實例中,第一表面部分地重疊於第二表面上,或反之亦然。從用戶的視點,重疊於另一表面上的表面可被視為在另一表面的前方。從用戶的視點,被另一表面重疊的表面可被視為在另一表面的後方。表面的次序可指示哪一表面在哪些其它表面前方或後方。為了識別表面的次序,主機處理器4可將次序識別符指派於每一表面。舉例來說,在所有其它表面前方的表面可被指派I的次序識別符。緊鄰具有I的次序識別符的表面後方的表面可被指派2的次序識別符,以此類推。上文描述的次序識別符實例是對表面進行排序的一個實例,且本發明的方面不應視為限於上文描述的排序實例。在一些實例中,主機處理器4可能不會明確地將次序識別符指派於每一表面。可基於如下文更詳細描述的主機處理器4處理表面的方式來確定表面的次序。表面的次序可由用戶選擇 或在無用戶幹預的情況下由主機處理器4選擇。舉例來說,用戶可能希望所選表面比其它表面更顯著地顯示。用戶可能希望沒有其它表面重疊於所選表面上,但可允許其它表面被所選表面重疊。在此實例中,所選表面可被視為在所有其它表面前方,因為沒有其它表面重疊於所選表面上。作為另一實例,主機處理器4可基於正在執行的應用程式的類型而選擇哪一表面應比其它表面更顯著地顯示。在此實例中,由主機處理器4選擇的表面可重疊於其它表面上,但可不被任何其它表面重疊。由主機處理器4選擇的表面可被視為在所有其它表面前方。在一些實例中,主機處理器4可將每一表面的次序、位置、表面像素值以及(在一些實例中)表面不透明度值傳輸到存儲裝置12用於存儲。在一些實例中,主機處理器4可將每一表面的次序、位置、表面像素值和表面不透明度值傳輸到圖形處理單元6用於進一步處理。如上所述,在一些實例中,主機處理器4可不將次序識別符指派於每一表面。在這些實例中的一些實例中,作為一個實例,圖形處理單元6可基於主機處理器4在存儲裝置12中存儲每一表面的位置的次序來確定表面的次序。作為另一實例,圖形處理單元6可基於存儲裝置12內主機處理器4存儲每一表面的位置的位置來確定表面的次序。舉例來說,主機處理器4可在存儲裝置12中的地址O處存儲最後方表面,在存儲裝置12中的地址I處存儲次最後方表面,且繼續到在存儲裝置12中的地址η處存儲最前方表面。在這些實例中,次序識別符可被視為主機處理器4在存儲裝置12中存儲每一表面的信息的次序的指示。可利用用以識別每一表面的次序的其它技術,且本發明的方面不應視為限於上文提供的實例。圖形處理單元6可處理表面像素以用於在顯示器8上呈現。圖形處理單元6的實例包含(但不限於)DSP、通用微處理器、ASIC、FPGA或其它等效集成或離散邏輯電路。雖然圖1中圖示為單獨的,但在一些實例中,主機處理器4可包含圖形處理單元6。對於顯示器8的至少一個像素,圖形處理單元(GPU) 6可識別哪些表面包含與顯示器8的所述至少一個像素位於同一地點的表面像素。GPU6可至少基於存儲在存儲裝置12中或從主機處理器4接收的表面位置來識別表面。在GPU6從主機處理器4接收表面位置的實例中,GPU6可將所接收表面位置存儲在其內部存儲器中,例如GPU6內的高速緩衝存儲器。作為一個實例,對於顯示器8上的位於(5,5)處的像素,GPU6可識別哪些表面包含也位於(5,5)處的表面像素。GPU6可至少基於表面的位置來識別哪些表面包含與顯示器8上的位於(5,5)處的像素位於同一地點的表面像素。所述位於同一地點的表面像素可被視為相對於彼此且相對於顯示器8的像素的位置位於同一地點。GPU6還可從主機處理器4或存儲裝置12接收表面的次序。表面的次序可識別哪一表面在哪些其它表面前方或後方。在GPU6從主機處理器4接收表面的次序的實例中,GPU6可將次序識別符存儲在其高速緩衝存儲器中。如上所述,在一些實例中,主機處理器4可不將次序識別符指派於每一表面。在這些實例中的一些實例中,GPU6可基於主機處理器4在存儲裝置12中存儲表面的信息的次序來確定表面的次序。舉例來說,主機處理器4可將存儲裝置12中存儲每一表面的信息的位置的經排序列表傳輸到GPU6。所述經排序列表中的第一位置可對應於存儲裝置12內存儲最後方表面的信息的位置,所述經排序列表中的第二位置可對應於存儲裝置12內存儲次最後方表面的信息的位置 ,以此類推。GPU6可基於存儲裝置12中存儲每一表面的信息的位置的經排序列表來識別表面的次序。為了清楚和說明的目的,相對於次序識別符來描述本發明的方面。然而,本發明的方面適用於主機處理器4可不指派次序識別符的實例。在這些實例中,如上所述,GPU6可基於主機處理器4在存儲裝置12中存儲表面的信息的次序來確定表面的次序。GPU6可包含著色器18,但在一些實例中,著色器18可在GPU6的外部。著色器18可實施為硬體單元、固件單元或軟體單元。在著色器18實施為固件或軟體的實例中,例如GPU6等硬體單元可執行著色器18。而且,在著色器18實施為固件或軟體的一些實例中,著色器18可被上載到GPU6。著色器18可經配置以摻合相對於彼此且相對於顯示器8的像素位於同一地點的表面像素的像素值。在一些實例中,著色器18可以光柵方式摻合顯不器8上的像素的表面像素值。如本發明中使用的術語「摻合」表示多個表面像素的可能組合以產生將在顯示器8上再現的經摻合像素值。因此,如本發明中使用的術語「摻合」涵蓋了表面像素值經組合的情形。在一些實例中,當摻合兩個或兩個以上位於同一地點的表面像素,且在其它位於同一地點的表面像素前方的表面像素的不透明度值指示100%不透明性時,著色器18可僅利用所述前方表面像素的像素值。在這些實例中,所述前方表面像素可完全遮擋其它位於同一地點的表面像素且僅所述前方表面像素的像素值可為著色器18進行處理所需要。
舉例來說,著色器18可在顯示器8上的位於(0,0)處的像素處開始。著色器18可基於表面的位置來識別哪些表面包含與顯示器8上的位於(0,0)處的像素位於同一地點的位於同一地點的表面像素。舉例來說,第一表面的位置可指示第一表面的頂點位於(0,O)、(1,0)、(0,1)和(1,1)。在此實例中,第一表面包含與顯示器8上的位於(0,0)處的像素位於同一地點的表面像素,例如位於(0,0)處的表面像素。著色器18還可確定所識別表面的次序。著色器18可接收每一表面的次序識別符,或可接收由GPU6確定的所識別表面的次序。在一些實例中,基於所接收次序識別符,著色器18可確定所識別表面的次序。所識別表面可為由主機處理器4產生的表面的子集。所識別表面是包含位於同一地點的表面像素的表面。基於所識別表面的次序,著色器18可識別所識別表面中的最前方表面、所識別表面中的最後方表面,以及所識別表面中的最前方表面與所識別表面中的最後方表面之間的任何介入表面的次序。在確定包含與顯示器8上的位於(0,0)處的像素位於同一地點的位於同一地點的表面像素的表面的次序之後,著色器18可檢索所識別表面中的最前方表面的位於同一地點的表面像素的像素值,且在一些實例中還可檢索最前方表面的表面不透明度值。著色器18可從存儲裝置12或GPU6的高速緩衝存儲器檢索像素值和表面不透明度值。GPU6的高 速緩衝存儲器或存儲裝置12可存儲經累加不透明度值和經摻合的色彩值。著色器18可基於位於同一地點的表面像素的不透明度值和色彩值來更新所存儲的經摻合色彩值。在每一表面均包含表面不透明度值的實例中,位於同一地點的表面像素的不透明度值可等效於表面不透明度值。為了更新所存儲的經摻合色彩值,著色器18可檢索當前所存儲的經摻合色彩值且將當前所存儲的經摻合色彩值與最前方表面的位於同一地點的表面像素的色彩值進行摻合。下文更詳細描述用以摻合色彩值的技術。在一些實例中,著色器18還可基於位於同一地點的表面像素的不透明度值來更新經累加不透明度值。在某個實例中,替代地或除此之外,著色器18可基於最前方表面的表面不透明度值來更新經累加不透明度值。在一些非限制性實例中,著色器18可確定經累加不透明度值是否大體上等於或大於不透明度值閾值。在一些實例中,不透明度值閾值可為完全不透明性,例如100%不透明性,但其它不透明度值閾值也是可能的。經累加不透明度值可初始為O。經累加不透明度值可通過從I減去當前經累加不透明度值來更新。可將所得值乘以當前像素的不透明度值和當前表面的不透明度值。用以計算經累加不透明度值的等式可為:新不透明度值=Dest_alpha+(l_Dest_alpha)*(Src_alpha*surface[i].surface_alpha) Dest_alpha =新不透明度值。在前述等式中,Dest_alpha是當前經累加不透明度值,Src_alpha是當前表面像素的不透明度值,且surface [i].surface_alpha是當前表面的不透明度值。作為一個實例,假定第一表面的第一表面像素的不透明度值是0.4,第二表面的與第一表面像素位於同一地點的第二表面像素的不透明度值是0.6,且第三表面的與第一和第二表面像素位於同一地點的第三表面像素的不透明度值是0.8。在此實例中,假定第一、第二和第三表面的不透明度值(例如,表面不透明度值)是I。而且,假定在此實例中,不透明度值閾值為0.95。
在第一表面像素的不透明度值是0.4且第一表面的不透明度值是I的此實例中,在著色器18處理第一表面像素之後經更新的經累加不透明度值是0.4,即0+(1-0)* (0.4*1)。在一些實例中,著色器18可將經累加不透明度值與不透明度值閾值進行比較,例如將0.4與0.95進行比較。因為經累加不透明度值小於閾值,所以著色器18可繼續到第二表面上的第二表面像素。如上所述,第二表面像素的不透明度值是0.6且第二表面的不透明度值是I。在此實例中,在著色器18處理第二表面像素之後經更新的經累加不透明度值是0.76,即0.4+(1-0.4)*(0.6*1)。因為經累加不透明度值(例如,0.76)小於不透明度值閾值(例如,0.95),所以著色器18可繼續到第三表面上的第三表面像素。如上所述,第三表面像素的不透明度值是0.8且第三表面的不透明度值是I。在此實例中,在著色器18處理第三表面像素之後經更新的經累加不透明度值是0.952,即
0.76+(1-0.76) *(0.8*1)。在此實例中,因為經累加不透明度值(例如,0.952)大於不透明度值閾值(例如,0.95),所以著色器18可終止累加。與第一、第二和第三表面像素位於同一地點且屬於在第三表面之後的表面的任何表面像素可被視為被遮擋且不可見的,因為在此實例中第一、第二和第三表面的總不透明性大於不透明度值閾值。著色器18可隨後繼續到所識別表面中的次最前方表面。作為一個實例,次最前方表面可通過次序識別符來識別。著色器18可累加位於(0,0)處的次最前方表面的位於同一地點的表面像素的不透明度值,且還可次最前方表面的表面不透明度值與經累加不透明度值。著色器18還可摻合次最前方表面的位於同一地點的表面像素的色彩值與所存儲的經摻合色彩值。著色器18可確定經累加不透明度值是否大體上等於或大於不透明度閾值。著色器18可隨後繼續到在次最前方表面後方的表面且執行類似於上文描述的功能的功能。在一些實例中,著色器18可繼續所述表面直到著色器18到達最後方表面為止,且隨後終止摻合和累加。在一些實例中,著色器18可繼續所述表面直到經累加不透明度值大體上等於或大於不透明度值閾值為止。在這些實例中,當經累加不透明度值大體上等於或大於不透明度值閾值 時,著色器18可終止摻合和累加。如上所述,在一些實例中,對於顯示器8的給定像素,著色器18可檢索最前方所識別表面的位於同一地點的表面像素的像素值,且隨後執行摻合。著色器18可隨後繼續到次最前方表面,執行摻合,且繼續到在次最前方表面後方的表面。然而,本發明的方面不受此限制。在一些實例中,並非從最前方所識別表面開始,而是著色器18可從最後方所識別表面開始。對於顯示器8的給定像素,著色器18可檢索最後方所識別表面的位於同一地點的表面像素的像素值,且執行摻合。著色器18可隨後繼續到次最後方所識別表面,執行摻合,且繼續到在次最後方表面前方的表面,以此類推。著色器18可在處理最前方所識別表面的位於同一地點的像素之後終止摻合。在著色器18從最後方表面開始且繼續到最前方表面的實例中,著色器18可不累加表面像素的不透明度值或表面不透明度值。在終止摻合和累加之後,GPU6可至少基於經摻合色彩值而再現顯示器8上的位於(0,0)處的像素。GPU6可將經再現像素值傳輸到顯示器8用於呈現或傳輸到顯示緩衝器10用於臨時存儲。在GPU6將經再現像素值傳輸到顯示器8的實例中,顯示器8呈現經再現像素,例如顯示器8上的位於(0,0)處的像素。顯示緩衝器10可為與顯示器8大小相同的緩衝器。舉例來說,顯示緩衝器10可包含用於存儲像素值的2-D存儲陣列。所述2-D存儲陣列內的每一位置可對應於顯示器8上的每一像素。舉例來說,顯示緩衝器10的2-D存儲陣列中的(100,50)位置對應於顯示器8上的位於(100,50)處的像素。在GPU6將經再現像素傳輸到顯示緩衝器10的實例中,顯示緩衝器10可將經再現像素值存儲在其在2-D存儲陣列中的對應位置中。舉例來說,在GPU6再現顯示器8上的位於(100,50)處的像素且將經再現像素值傳輸到顯示緩衝器10之後,顯示緩衝器10將經再現像素值存儲在2-D存儲陣列的(100,50)位置中。顯示緩衝器10可存儲經再現像素值直到GPU6完成顯示器8上所有像素的再現為止。顯示緩衝器10可隨後將經再現像素值傳輸到顯示器8供呈現且清除所有所存儲值。顯示緩衝器10是僅用於說明目的而提供,且可能不是在裝置2的每個實例中都是必要的。在先前實例中,著色器18以顯示器8上的位於(0,0)處的像素開始。在終止針對與顯示器8上的位於(0,0)處的像素位於同一地點的表面像素的摻合和累加之後,著色器18可隨後繼續到顯示器8上的另一像素且執行類似功能。舉例來說,著色器18可繼續摻合顯示器8上的位於(0,1)處的像素的像素值。著色器18可利用類似於上文所描述技術的技術來摻合顯示器8上的一個或一個以上像素的像素值。如上所述,著色器18可每次一個地摻合顯示器8上的一個或一個以上像素的像素值。舉例來說,如上所述,著色器18摻合顯示器8上的位於(0,0)處的像素的像素值,隨後繼續摻合位於(0,1)處的像素的像素值,以此類推。在一些實例中,並非每次一個地摻合像素值,而是著色器18可同時摻合多個像素的像素值。舉例來說,著色器18可同時摻合顯示器8上的位於(0,0)、(0,1)和(0,2)處的像素的像素值,且隨後繼續到顯示器8上的位於(0,3), (0,4)和(0,5)處的像素,以此類推。此外,如上所述,著色器18可每次一個地檢索位於同一地點的表面像素的像素值。舉例來說,如上所述,著色器18檢索來自所識別表面中的最前方表面的位於同一地點的表面像素的像素值,摻合所述像素值,隨後檢索來自所識別表面中的次最前方表面的位於同一地點的表面像素的像素值,以此類推。在一些實例中,並非每次一個地檢索位於同一地點的表面像素的像素·值,著色器18可在一個批次中檢索位於同一地點的表面像素中的至少一些表面像素的像素值。一批位於同一地點的表面像素可指代不同表面上的多個位於同一地點的表面像素。檢索一批位於同一地點的表面像素可包含著色器18通過對GPU6的高速緩衝存儲器或存儲裝置12的一次存取來檢索不同表面上的多個位於同一地點的表面像素。舉例來說,著色器18可在一個批次中,例如通過對GPU6的高速緩衝存儲器或存儲裝置12的一次存取來檢索最前方表面、次最前方表面以及緊在次最前方表面後方的表面的位於同一地點的表面像素的像素值。在本發明的一些方面中,GPU6可讀取和寫入顯示器8上的像素的像素值僅一次。從存儲器讀取像素值以及寫入顯示器的像素值稱為塊變換(BLT)或(BLTing)。重複的BLTing由於對像素值的重複請求和經再現像素值的寫入而可能需要大量的處理和帶寬消耗。此重複的BLTing可在處理單元從最後方表面開始且朝向最前方表面繼續的一些裝置中發生。此外,重複的BLTing還可再現後續被重疊的表面像素遮擋的像素。在本發明的非限制性實例中,對於顯示器8上的像素,GPU6可能僅需要讀取位於同一地點的表面像素的像素值一次,且可能僅需要寫入經再現像素值一次,進而促進有效的處理和帶寬消耗。如上所述,作為一個實例,著色器18可從所識別表面中的最前方表面開始且朝向所識別表面中的最後方表面繼續,來更新與顯示器8上的像素位於同一地點的每一位於同一地點的表面像素的經摻合色彩值。作為另一實例,著色器18可從所識別表面中的最後方表面開始且朝向所識別表面中的最前方表面繼續,來更新與顯示器8上的像素位於同一地點的每一位於同一地點的表面像素的經摻合色彩值。隨後在終止累加之後而不是在每次摻合位於同一地點的表面像素之後,提供顯示器8上的像素的經再現像素值僅一次。著色器18可被視為執行單一屏幕大小BLT操作的著色器。本發明的非限制性方面也可進一步促進有效的處理和帶寬消耗。如上所述,在一些非限制性實例中,著色器18可累加每一位於同一地點的表面像素的不透明度值和/或每一表面的不透明度值(例如,表面不透明度值)。著色器18可從所識別表面中的最前方表面開始且朝向所識別表面中的最後方表面繼續來累加不透明度值。在一些實例中,在經累加不透明度值大體上等於或大於不透明度值閾值之後,著色器18可終止摻合和累加。在這些實例中,著色器18可不檢索在著色器18終止了摻合和累加的表面後方的其它位於同一地點的表面像素的像素值。舉例來說,假定著色器18終止了在第三表面之後的位於同一地點的表面像素的摻合和累加,所述第三表面可為所識別表面的從前到後排序中的第三表面。在此實例中,著色器18可不檢索在第三表面後方的表面的位於同一地點的表面像素的像素值。在此情況下,此些像素即使經再現也將不被呈現(或至少在足夠程度上不呈現),因為不透明度值足夠高而使得所述像素被大體上或完全遮擋。當著色器18終止摻合和累加之後,在著色器18終止了摻合和累加的表面後方的位於同一地點的表面像素可被完全遮擋且對用戶不可見。如上所述,著色器18可在不透明度值大體上等於或大於不透明度值閾值時終止摻合和累加。不透明度值閾值可為完全不透明性,但其它閾值也是可能的。完全不透明性可指示在累加指示了完全不透明性的表面像素後方的位於同一地點的表面像素是不可見的。因為在著色器18終止了摻合和累加的表面後方的位於同一地點的表面像素將對用戶不可見,所以著色 器18可不需要檢索和處理其像素值。以此方式,著色器18可檢索和處理可見的位於同一地 點的表面像素的像素值,且不檢索不可見的位於同一地點的表面像素的像素值,進而進一步促進有效的處理和帶寬消耗。在一些實例中,可在無棋盤格化(tessellation)的情況下實施本發明的方面。棋盤格化可能需要處理單元確定一表面的被一個或一個以上其它表面重疊的部分。處理單元隨後將表面劃分(即,棋盤格化)為子表面。所述子表面可為被其它表面重疊或重疊於其它表面上的部分。處理單元隨後處理這些經棋盤格化的子表面。然而,棋盤格化可為複雜且相對緩慢的過程。棋盤格化可能在處理包含不透明表面像素和半透明表面像素兩者的表面時不是有效的。本發明的方面還可利用僅色彩處理技術來實施,而不是如同利用早期Z測試技術的Z緩衝器的情況那樣需要每一像素的Z(或深度)坐標。利用早期Z測試技術的Z緩衝器可需要處理器基於(X,y,z)坐標系而不是僅僅(x,y)來識別每一像素,且需要額外存儲器表面來存儲每一像素的z坐標值。額外z坐標的存儲和讀取可需要額外帶寬。然而,通過基於每一像素的色彩、(X,y)坐標以及已知表面排序而無需額外Z緩衝器處理來處理每一像素,本發明的方面可有用於以減少GPU6的讀取和寫入次數以及有效地處理包含不透明表面像素與半透明表面像素的混合體的表面的方式再現像素。
圖2是呈現多個表面的顯示器8的實例說明。圖2的實例是僅為了說明目的而提供,且不應視為限制性的。如圖2中所示,顯示器8呈現表面20、表面22、表面24和表面
26。表面20可為顯示器8的背景。為了說明目的,顯示器8包括100X100像素的2-D陣列。表面20包含位於(0,0)、(0,100)、(100,0)和(100,100)處的頂點。表面22包含位於(5,5)、(5,75)、(25,5)和(25,75)處的頂點。表面 24 包含位於(20,10)、(20,50)、(40,10)和(40,50)處的頂點。表面26包含位於(35,30), (35,60), (70,30)和(70,60)處的頂點。如圖2所不,表面22被表面24重疊。表面24的部分28重疊於表面22的一部分上。表面22的虛線指示表面22的被表面24重疊且對用戶不可見的範圍。表面24被表面26重疊。表面26的部分30重疊於表面24的一部分上。表面24的虛線指不表面24的被表面26重疊且對用戶不可見的範圍。在本發明的方面中,GPU6可接收表面20、22、24和26中的每一者的位置和次序。位置可基於表面20、22、24和26的由其頂點界定的範圍。表面的次序可將表面26識別為第一表面,將表面24識別為第二表面,將表面22識別為第三表面,且將表面20識別為第四表面,第四表面可為顯示器8的背景。對於顯示器8上的像素,GPU6可識別哪些表面20、22、24和26包含與顯示器8上的像素位於同一地點的位於同一地點的表面像素。GPU6可至少基於表面的位置來識別表面
20、22、24和26。表面20、22、24和26的位置可由其頂點界定。舉例來說,顯示器8上的位於(10,20)處的像素與來自表面22和20的表面像素位於同一地點。作為另一實例,顯不器8上的位於(22,30)處的像素與來自表面24、22和20的表面像素位於同一地點。作為又一實例,顯示器8上的位於(37,40)處的像素與來自表面26、24和20的表面像素位於同一地點。 對於顯示器8上的像素,著色器18可摻合色彩值,且在一些實例中,累加與顯示器8上的像素位於同一地點的位於同一地點的表面像素中的一者或一者以上的不透明度值。對於一個或一個以上位於同一地點的表面像素,著色器18可至少基於所述位於同一地點的表面像素的色彩值和不透明度值來摻合像素值。下文更詳細地提供用以摻合像素值的實例技術。著色器18可在摻合每一位於同一地點的表面像素之後更新所存儲的經摻合色彩值。著色器18可在累加每一位於同一地點的表面像素的不透明度值或包含位於同一地點的表面像素的每一表面的不透明度值之後更新所存儲的經累加不透明度值。對於摻合和累力口,著色器18可以所識別表面中的最前方表面開始,且朝向所識別表面中的最後方表面繼續。作為一個實例,對於顯示器8上的位於(22,30)處的像素,著色器18可將表面24、22和20識別為各自包含與顯示器8上的位於(22,30)處的像素位於同一地點的表面像素的表面。作為一個實例,基於表面24、22和20的次序識別符,著色器18可識別所識別表面中的最前方表面、所識別表面中的最後方表面以及任何介入表面的次序。在此實例中,著色器18可將表面24識別為最前方表面,將表面22識別為次最前方表面,且將表面20識別為最後方表面。在著色器18從所識別表面中的最前方表面開始處理的實例中,著色器18可隨後檢索表面24的位於同一地點的表面像素的像素值,因為表面24是最前方表面。著色器18可將表面24的位於同一地點的表面像素的像素值與所存儲的經摻合色彩值進行摻合。所存儲的經摻合色彩值可經初始化為零,且在著色器18的每次像素摻合之後更新。著色器18可基於表面24的位於同一地點的表面像素的像素值來更新所存儲的經摻合色彩值。著色器18還可累加表面24的位於同一地點的表面的不透明度值和/或表面24的不透明度值(例如,表面24的表面不透明度值)與經累加不透明度值。經累加不透明度值可經初始化為零,且在著色器18的每次累加之後更新。在一些實例中,在每次摻合之後,著色器18可將經累加不透明度值與不透明度值閾值進行比較。如果經累加不透明度值小於不透明度值閾值,那麼著色器18可以從前到後的方式繼續到下一表面。在此實例中,著色器18可繼續到表面22且以與上文相對於表面24的位於同一地點的表面像素描述的方式大體上類似的方式來處理表面22的位於同一地點的表面。如果經累加不透明度值大體上等於或大於不透明度值閾值,那麼著色器18可終止摻合和累加。在此實例中,著色器18可不處理表面22的位於同一地點的表面像素。在此實例中,表面22的位於同一地點的表面像素可被表面24的位於同一地點的表面像素完全遮擋。表面22的被完全遮擋的 表面像素對用戶是不可見的且可無需進行處理。在著色器18從所識別表面中的最後方表面開始處理的實例中,著色器18可隨後檢索表面20的位於同一地點的表面像素的像素值,因為表面20是最後方表面。著色器18可摻合色彩值。著色器18可將表面20的位於同一地點的表面像素的像素值與所存儲的經摻合色彩值進行摻合。著色器18可隨後繼續到次最後方表面,其在圖2中說明的實例中為表面22。圖3是說明根據本發明的一些方面的GPU6的實例操作的流程圖。為了說明的目的,對圖1做出參考。GPU6可為處理單元。舉例來說,處理單元可經配置以如上文相對於GPU6和著色器18所描述來處理表面像素。GPU6可接收將在顯示器上顯示的多個表面中的每一者的位置(32)。在一些實例中,可形成於GPU6內的著色器18可至少基於表面中的每一者的位置來識別所述多個表面中的一個或一個以上表面,所述一個或一個以上表面包含與顯示器上的至少一個像素位於同一地點的一個或一個以上位於同一地點的表面像素(34)。與所述至少一個像素位於同一地點的所述一個或一個以上位於同一地點的表面像素可相對於彼此位於同一地點。GPU6可隨後至少基於所述多個表面中的所識別一個或一個以上表面的次序來摻合所識別一個或一個以上表面的與所述至少一個像素位於同一地點的所述一個或一個以上位於同一地點的表面像素的像素值(36)。圖4是說明根據本發明的方面的GPU6的另一實例操作的流程圖。為了說明目的,對圖1做出參考。GPU6可為處理單元。GPU6可將所存儲的經摻合色彩值和經累加不透明度值初始化為零(38)。GPU6可選擇顯示器8上的像素(40)。在一些實例中,GPU6可選擇顯示器8上的位於(0,0)處的像素,但GPU6可選擇顯示器8上的任一其它像素。GPU6可識別包含與顯示器8上的選定像素位於同一地點的表面像素的表面(42)。在一些實例中,GPU6可至少基於表面的位置來識別表面。作為一個實例,主機處理器4可基於表面的頂點的頂點坐標來確定表面的位置。主機處理器4可將表面的位置傳輸到GPU6供內部存儲或傳輸到存儲裝置12供存儲。GPU6可從其自身的高速緩衝存儲器或從存儲裝置12接收表面的位置。
至少基於所識別表面,GPU6可將在包含位於同一地點的表面像素的所有其它表面前方的包含位於同一地點的表面像素的表面識別為當前表面,例如所識別表面中的最前方表面(44)。GPU6可至少基於表面的次序識別符來識別當前表面。主機處理器4或用戶可選擇表面的次序。主機處理器4可將次序識別符指派於每一表面。主機處理器4可將次序識別符傳輸到GPU6供內部存儲或傳輸到存儲裝置12供存儲。GPU6可從其自身的高速緩衝存儲器或從存儲裝置12接收表面的次序識別符。在一些實例中,主機處理器4可不將次序識別符指派於每一表面。在這些實例中的一些實例中,GPU6可基於主機處理器4將表面的信息存儲在存儲裝置12中的次序來確定表面的次序。著色器18可將當前表面的位於同一地點的表面像素的像素值與所存儲的經摻合色彩值進行摻合(46)。像素值可包含當前表面的位於同一地點的表面像素的色彩值和不透明度值。為了摻合像素值,著色器18可實施以下等式:New_color_value = (Src_color)(Src_alpha)+(1-Src_alpha)(Dest_color)在前述等式中,Src_color等於當前表面的位於同一地點的表面像素的色彩值。Src_color還可包含位於同一地點的表面像素的強度。Src_alpha等於當前表面的位於同一地點的表面像素的不透明度值。DeSt_C0l0r等於所存儲的經摻合色彩值。當前表面的位於同一地點的表面像素的色彩值和不透明度值可由主機處理器4指派。著色器18可在摻合像素值之後更新所存儲的經摻合色彩值(48)。為了更新所存儲的經摻合色彩,著色器18可將所存儲的經摻合色彩值設定為等於經摻合像素值。舉例來說,著色器 18 可設定 Dest_color = New_color_value。在一些實例中,著色器18還可更新所存儲的經累加不透明度值(50)。主機處理器4可對每一表面像素指派一不透明度值。主機處理器4也可對每一表面指派一不透明度值。著色器18可至少基 於所存儲的經累加不透明度值和位於同一地點的表面像素的不透明度值和/或當前表面的不透明度值來更新經累加不透明度值。如上所述,著色器18可實施以下等式以更新所存儲的不透明度值。New_opaqueness_value = D e s t _a I pha+(I _D e s t_a I ph a) * (Sr c_alpha*surface[i].surface_alpha)Dest_alpha = New_opaqueness_value在前述等式中,Src_alpha等於當前表面的位於同一地點的表面像素和當前表面的不透明度值中的至少一者的不透明度值。Surface[i].surface_alpha等於「第i」表面的表面不透明度值。變量「i」可指示正在處理的當前表面的次序。Dest_alpha等於所存儲的經累加不透明度值。著色器18可確定經累加不透明度值是否小於不透明度值閾值(52)。不透明度值閾值可為100%不透明性,但其它較低閾值是可能的。如果經累加不透明度值大體上等於或大於不透明度值閾值(52的「否」),那麼GPU6可再現顯示器8上的選定像素(58)。GPU6可至少基於所存儲的色彩值來再現顯示器8上的選定像素。如果經累加不透明度值小於不透明度值閾值(52的「是」),那麼GPU6可確定是否存在更多包含與顯示器8上的選定像素位於同一地點的位於同一地點的表面像素的表面,例如更多所識別表面(54)。如果不存在更多包含位於同一地點的表面像素的表面(54的「否」),那麼GPU6可再現顯示器8上的選定像素(58)。如果存在更多包含位於同一地點的表面像素的表面(54的「是」),那麼GPU6可基於所接收的表面的排序來選擇下一表面。下一表面可為包含被當前表面的位於同一地點的表面像素重疊的位於同一地點的表面像素的表面。下一表面的位於同一地點的表面像素可與顯示器8上的選定像素位於同一地點。GPU6可將下一表面識別為當前表面(56)。GPU6可重複摻合像素值動作(46)和更新色彩值和不透明度值動作(48和50),直到不透明度值大於不透明度值閾值或不存在更多包含位於同一地點的表面像素的表面。在GPU6再現像素(58)之後,GPU6可確定是否存在更多像素待在顯示器8上再現
(60)。如果存在更多像素待在顯示器8上再現¢0的「是」),那麼GPU6可將顯示器8上的下一像素識別為選定像素出2)。在一些實例中,GPU6可以光柵方式選擇下一像素。GPU6可隨後識別具有與選定像素位於同一地點的表面像素的表面(42)。GPU6和著色器18可重複上述動作,直到不存在更多像素待在顯示器8上再現。以下是本發明的方面的實例實施方案的偽碼。所述偽碼可存儲在存儲裝置12上且由GPU6和著色器18實施,或可存儲在GPU6內部的存儲器上。
權利要求
1.一種方法,其包括 以處理單元接收將在顯示器上顯示的多個表面中的每一者的位置; 以所述處理單元至少基於所述表面中的每一者的所述位置來識別所述多個表面中包含與所述顯示器的至少一個像素位於同一地點的一個或一個以上位於同一地點的表面像素的一個或一個以上表面;以及 以所述處理單元至少基於所述多個表面中的所述所識別一個或一個以上表面的次序來摻合所述所識別一個或一個以上表面的與所述至少一個像素位於同一地點的所述一個或一個以上位於同一地點的表面像素的像素值。
2.根據權利要求I所述的方法,其進一步包括 累加所述一個或一個以上位於同一地點的表面像素的不透明度值和所述所識別一個或一個以上表面的不透明度值中的至少一者。
3.根據權利要求2所述的方法,其中累加不透明度值包括基於所述所識別一個或一個以上表面的所述次序來累加不透明度值直到經累加不透明度值大體上等於或大於不透明度值閾值為止,所述方法進一步包括當所述經累加不透明度值等於或大於所述不透明度值閾值時終止所述累加和摻合。
4.根據權利要求3所述的方法,其中所述不透明度值閾值包括對應於完全不透明性的值。
5.根據權利要求2所述的方法,其中累加不透明度值包括從所述所識別一個或一個以上表面中的最前方表面開始且朝向所述所識別一個或一個以上表面中的最後方表面繼續來累加不透明度值,其中所述最前方表面和所述最後方表面是基於所述多個表面中的所述所識別一個或一個以上表面的所述次序確定的。
6.根據權利要求2所述的方法,其進一步包括 在一批次中檢索所述不透明度值, 其中累加不透明度值包括累加在所述批次中檢索的所述不透明度值。
7.根據權利要求I所述的方法,其進一步包括 接收所述多個表面中的每一表面的次序, 其中所述多個表面中的所述所識別一個或一個以上表面的所述次序是基於所述所接收次序。
8.根據權利要求I所述的方法,其進一步包括 基於所述摻合而再現所述至少一個像素。
9.根據權利要求I所述的方法,其中所述多個表面中的每一者的所述位置包括所述多個表面中的每一者的至少兩個頂點的坐標。
10.根據權利要求I所述的方法,其中由在包含所述處理單元的裝置上執行的一個或一個以上應用程式產生的可見對象形成所述多個表面中的每一者。
11.根據權利要求I所述的方法,其中所述多個表面中的至少一者部分地或完全地重疊於所述多個表面中的另一表面上。
12.根據權利要求I所述的方法,其中所述像素值包括色彩值和不透明度值。
13.根據權利要求I所述的方法,其中摻合所述一個或一個以上表面像素的像素值包括摻合所述一個或一個以上位於同一地點的表面像素僅一次。
14.根據權利要求I所述的方法,其中摻合所述一個或一個以上表面像素的像素值包括從最後方表面開始且繼續到最前方表面來摻合像素值。
15.—種設備,其包括 圖形處理單元GPU,其經配置以接收將在顯示器上顯示的多個表面中的每一者的位置; 著色器,其經配置以 基於所述表面中的每一者的所述位置來識別所述多個表面中包含與所述顯示器的至少一個像素位於同一地點的一個或一個以上位於同一地點的表面像素的一個或一個以上表面;以及 至少基於所述多個表面中的所述所識別一個或一個以上表面的次序來摻合所述所識別一個或一個以上表面的與所述至少一個像素位於同一地點的所述一個或一個以上位於同一地點的表面像素的像素值;以及 存儲器,其經配置以存儲所述經摻合像素值。
16.根據權利要求15所述的設備,其中所述GPU包含所述著色器。
17.根據權利要求15所述的設備,其進一步包括 主機處理器,其經配置以識別將在所述顯示器上顯示的所述多個表面中的每一者的所述位置,指派所述一個或一個以上表面像素的所述像素值,且確定所述多個表面的所述次序。
18.根據權利要求15所述的設備,其中所述著色器進一步經配置以累加所述一個或一個以上位於同一地點的表面像素的不透明度值和所述所識別一個或一個以上表面的不透明度值中的至少一者。
19.根據權利要求18所述的設備,其中所述著色器進一步經配置以 基於所述所識別一個或一個以上表面的所述次序來累加不透明度值直到經累加不透明度值大體上等於或大於不透明度值閾值為止;以及 當所述經累加不透明度值等於或大於所述不透明度值閾值時終止所述累加和摻合。
20.根據權利要求19所述的設備,其中所述不透明度值閾值包括對應於完全不透明性的值。
21.根據權利要求18所述的設備,其中所述著色器進一步經配置以從所述所識別一個或一個以上表面中的最前方表面開始且朝向所述所識別一個或一個以上表面中的最後方表面繼續來累加不透明度值,其中所述最前方表面和所述最後方表面是基於所述多個表面中的所述所識別一個或一個以上表面的所述次序確定的。
22.根據權利要求18所述的設備,其中所述著色器進一步經配置以 在一批次中檢索不透明度值;以及 累加在所述批次中檢索的所述不透明度值。
23.根據權利要求15所述的設備,其中所述GPU進一步經配置以 接收所述多個表面中的每一表面的次序, 其中所述多個表面中的所述所識別一個或一個以上表面的所述次序是基於所述所接收次序。
24.根據權利要求15所述的設備,其中所述GPU進一步經配置以基於所述摻合而再現所述至少一個像素。
25.根據權利要求15所述的設備,其中所述多個表面中的每一者的所述位置包括所述多個表面中的每一者的至少兩個頂點的坐標。
26.根據權利要求15所述的設備,其中由在所述設備上執行的一個或一個以上應用程式產生的可見對象形成所述多個表面中的每一者。
27.根據權利要求15所述的設備,其中所述多個表面中的至少一者部分地或完全地重疊於所述多個表面中的另一表面上。
28.根據權利要求15所述的設備,其中所述像素值包括色彩值和不透明度值。
29.根據權利要求15所述的設備,其中所述著色器經配置以摻合所述一個或一個以上位於同一地點的表面像素僅一次。
30.根據權利要求15所述的設備,其中所述著色器經配置以從最後方表面開始且繼續到最前方表面來進行摻合。
31.一種計算機可讀存儲媒體,其包括致使一個或一個以上處理器進行以下操作的指令 接收將在顯示器上顯示的多個表面中的每一者的位置; 至少基於所述表面中的每一者的所述位置來識別所述多個表面中包含與所述顯示器的至少一個像素位於同一地點的一個或一個以上位於同一地點的表面像素的一個或一個以上表面;以及 至少基於所述多個表面中的所述所識別一個或一個以上表面的次序來摻合所述所識別一個或一個以上表面的與所述至少一個像素位於同一地點的所述一個或一個以上位於同一地點的表面像素的像素值。
32.根據權利要求31所述的計算機可讀存儲媒體,其進一步包括致使所述一個或一個以上處理器進行以下操作的指令 累加所述一個或一個以上位於同一地點的表面像素的不透明度值和所述所識別一個或一個以上表面的不透明度值中的至少一者。
33.根據權利要求32所述的計算機可讀存儲媒體,其中所述致使所述一個或一個以上處理器累加不透明度值的指令包括致使所述一個或一個以上處理器基於所述所識別一個或一個以上表面的所述次序來累加不透明度值直到經累加不透明度值大體上等於或大於不透明度值閾值為止的指令,所述指令進一步包括致使所述一個或一個以上處理器當所述經累加不透明度值等於或大於所述不透明度值閾值時終止所述累加和摻合的指令。
34.根據權利要求33所述的計算機可讀存儲媒體,其中所述不透明度值閾值包括對應於完全不透明性的值。
35.根據權利要求32所述的計算機可讀存儲媒體,其中所述致使所述一個或一個以上處理器累加不透明度值的指令包括致使所述一個或一個以上處理器從所述所識別一個或一個以上表面中的最前方表面開始且朝向所述所識別一個或一個以上表面中的最後方表面繼續來累加不透明度值的指令,其中所述最前方表面和所述最後方表面是基於所述多個表面中的所述所識別一個或一個以上表面的所述次序確定的。
36.根據權利要求32所述的計算機可讀存儲媒體,其進一步包括致使所述一個或一個以上處理器進行以下操作的指令在一批次中檢索所述不透明度值, 其中所述致使所述一個或一個以上處理器累加不透明度值的指令包括致使所述一個或一個以上處理器累加在所述批次中檢索的所述不透明度值的指令。
37.根據權利要求31所述的計算機可讀存儲媒體,其進一步包括致使所述一個或一個以上處理器進行以下操作的指令 接收所述多個表面中的每一表面的次序, 其中所述多個表面中的所述所識別一個或一個以上表面的所述次序是基於所述所接收次序。
38.根據權利要求31所述的計算機可讀存儲媒體,其進一步包括致使所述一個或一個以上處理器進行以下操作的指令 基於所述摻合而再現所述至少一個像素。
39.根據權利要求31所述的計算機可讀存儲媒體,其中所述多個表面中的每一者的所述位置包括所述多個表面中的每一者的至少兩個頂點的坐標。
40.根據權利要求31所述的計算機可讀存儲媒體,其中所述像素值包括色彩值和不透明度值。
41.根據權利要求31所述的計算機可讀存儲媒體,其中所述致使所述一個或一個以上處理器摻合所述一個或一個以上表面像素的像素值的指令包括致使所述一個或一個以上處理器摻合所述一個或一個以上位於同一地點的表面像素僅一次的指令。
42.—種設備,其包括 用於接收將在顯示器上顯示的多個表面中的每一者的位置的裝置; 用於至少基於所述表面中的每一者的所述位置來識別所述多個表面中包含與所述顯示器的至少一個像素位於同一地點的一個或一個以上位於同一地點的表面像素的一個或一個以上表面的裝置;以及 用於至少基於所述多個表面中的所述所識別一個或一個以上表面的次序來摻合所述所識別一個或一個以上表面的與所述至少一個像素位於同一地點的所述一個或一個以上位於同一地點的表面像素的像素值的裝置。
43.根據權利要求42所述的設備,其進一步包括 用於累加所述一個或一個以上位於同一地點的表面像素的不透明度值和所述所識別一個或一個以上表面的不透明度值中的至少一者的裝置。
44.根據權利要求43所述的設備,其中所述用於累加的裝置基於所述所識別一個或一個以上表面的所述次序來累加不透明度值直到經累加不透明度值大體上等於或大於不透明度值閾值為止,所述設備進一步包括用於當所述經累加不透明度值等於或大於所述不透明度值閾值時終止所述累加和摻合的裝置。
全文摘要
本發明描述用於在顯示器上再現像素的技術。處理單元可接收多個表面中的每一表面的表面像素的像素值。所述處理單元還可接收所述多個表面的次序。至少基於所述多個表面的位置和次序,所述處理單元可摻合位於同一地點的表面像素的像素值。所述處理單元還可累加位於同一地點的表面像素的不透明度值和/或具有位於同一地點的表面像素的表面的不透明度值。
文檔編號G09G5/14GK103238169SQ201180045468
公開日2013年8月7日 申請日期2011年8月24日 優先權日2010年8月24日
發明者安德魯·E·格魯伯 申請人:高通股份有限公司