CN103238169A - 显示器上的像素再现 - Google Patents

显示器上的像素再现 Download PDF

Info

Publication number
CN103238169A
CN103238169A CN2011800454687A CN201180045468A CN103238169A CN 103238169 A CN103238169 A CN 103238169A CN 2011800454687 A CN2011800454687 A CN 2011800454687A CN 201180045468 A CN201180045468 A CN 201180045468A CN 103238169 A CN103238169 A CN 103238169A
Authority
CN
China
Prior art keywords
value
pixel
opacity
same place
opacity value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011800454687A
Other languages
English (en)
Other versions
CN103238169B (zh
Inventor
安德鲁·E·格鲁伯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN103238169A publication Critical patent/CN103238169A/zh
Application granted granted Critical
Publication of CN103238169B publication Critical patent/CN103238169B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本发明描述用于在显示器上再现像素的技术。处理单元可接收多个表面中的每一表面的表面像素的像素值。所述处理单元还可接收所述多个表面的次序。至少基于所述多个表面的位置和次序,所述处理单元可掺合位于同一地点的表面像素的像素值。所述处理单元还可累加位于同一地点的表面像素的不透明度值和/或具有位于同一地点的表面像素的表面的不透明度值。

Description

显示器上的像素再现
技术领域
本发明涉及在显示器上再现像素。
背景技术
提供用于视觉呈现的内容的装置一般包含图形处理单元(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可包括液晶显示器(LCD)、阴极射线管(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,ymax)坐标。矩形的左下方顶点则为(xmin,ymax),且矩形的右上方顶点则为(xmax,ymin)。
为了说明的目的,在矩形表面的上下文中描述本发明的方面。然而,所述表面不应视为限于矩形表面,且可采取其它多边形、圆或类似物的形式。
通过所述一个或一个以上应用程序的执行产生的每一表面包含一个或一个以上表面像素。主机处理器4可将像素值(例如包含强度值和不透明度值的色彩值)指派给所述表面中的每一者的表面像素中的每一者。每一表面像素的像素值指示所述表面像素的色彩、亮度和不透明度。主机处理器4还可指派一个或一个以上表面中的每一者的整个表面的不透明度值。
表面像素表示显示器的像素且被视为与显示器8上的像素位于同一地点。举例来说,位于第一表面的(1,1)处的表面像素与显示器8的位于(1,1)处的像素位于同一地点,且表示显示器8的位于(1,1)处的像素。位于第二表面的(1,1)处的表面像素与位于第一表面的(1,1)处的表面像素和显示器8的位于(1,1)处的像素位于同一地点,且也表示显示器8的位于(1,1)处的像素。
每一表面像素的色彩值可基于红色值、绿色值和蓝色值(RGB值)。RGB值可表示每一表面像素的色彩和强度。强度可指示表面像素的亮度。每一表面像素的不透明度值可表示每一表面像素的不透明性。每一表面的表面不透明度值可表示整个表面的不透明性。表面像素的不透明性或表面的不透明性可指示表面像素或表面的不透明度。不透明度值可表示为完全不透明性的分数。举例来说,完全不透明表面像素或完全不透明表面(即,100%不透明性)被指派1的不透明度值。50%不透明的半透明表面像素或半透明表面(即,50%不透明性)可被指派0.5的不透明度值,以此类推。半透明表面像素或半透明表面可不会完全遮挡其它像素或表面。事实上,半透明表面像素或半透明表面可部分地遮挡其它像素或表面。上文描述的色彩值和不透明度值是为了说明目的而提供且不应视为限制性的。根据本发明的方面可利用用以识别色彩值和不透明度值的任何技术。
主机处理器4还可确定通过所述一个或一个以上应用程序的执行产生的表面的次序。例如当若干表面的至少若干部分处于大体上类似位置时,一表面可部分地或完全地重叠于一个或一个以上其它表面上。作为一个实例,第一表面的顶点坐标为(1,1)、(5,1)、(1,5)和(5,5),且第二表面的顶点坐标为(2,3)、(2,7)、(10,3)和(10,7)。在此实例中,第一表面部分地重叠于第二表面上,或反之亦然。从用户的视点,重叠于另一表面上的表面可被视为在另一表面的前方。从用户的视点,被另一表面重叠的表面可被视为在另一表面的后方。表面的次序可指示哪一表面在哪些其它表面前方或后方。
为了识别表面的次序,主机处理器4可将次序识别符指派于每一表面。举例来说,在所有其它表面前方的表面可被指派1的次序识别符。紧邻具有1的次序识别符的表面后方的表面可被指派2的次序识别符,以此类推。上文描述的次序识别符实例是对表面进行排序的一个实例,且本发明的方面不应视为限于上文描述的排序实例。在一些实例中,主机处理器4可能不会明确地将次序识别符指派于每一表面。可基于如下文更详细描述的主机处理器4处理表面的方式来确定表面的次序。
表面的次序可由用户选择或在无用户干预的情况下由主机处理器4选择。举例来说,用户可能希望所选表面比其它表面更显著地显示。用户可能希望没有其它表面重叠于所选表面上,但可允许其它表面被所选表面重叠。在此实例中,所选表面可被视为在所有其它表面前方,因为没有其它表面重叠于所选表面上。作为另一实例,主机处理器4可基于正在执行的应用程序的类型而选择哪一表面应比其它表面更显著地显示。在此实例中,由主机处理器4选择的表面可重叠于其它表面上,但可不被任何其它表面重叠。由主机处理器4选择的表面可被视为在所有其它表面前方。
在一些实例中,主机处理器4可将每一表面的次序、位置、表面像素值以及(在一些实例中)表面不透明度值传输到存储装置12用于存储。在一些实例中,主机处理器4可将每一表面的次序、位置、表面像素值和表面不透明度值传输到图形处理单元6用于进一步处理。
如上所述,在一些实例中,主机处理器4可不将次序识别符指派于每一表面。在这些实例中的一些实例中,作为一个实例,图形处理单元6可基于主机处理器4在存储装置12中存储每一表面的位置的次序来确定表面的次序。作为另一实例,图形处理单元6可基于存储装置12内主机处理器4存储每一表面的位置的位置来确定表面的次序。举例来说,主机处理器4可在存储装置12中的地址0处存储最后方表面,在存储装置12中的地址1处存储次最后方表面,且继续到在存储装置12中的地址n处存储最前方表面。在这些实例中,次序识别符可被视为主机处理器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,0)、(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%不透明性,但其它不透明度值阈值也是可能的。
经累加不透明度值可初始为0。经累加不透明度值可通过从1减去当前经累加不透明度值来更新。可将所得值乘以当前像素的不透明度值和当前表面的不透明度值。用以计算经累加不透明度值的等式可为:
新不透明度值=Dest_alpha+(1-Dest_alpha)*(Src_alpha*surface[i].surface_alpha)Dest_alpha=新不透明度值。
在前述等式中,Dest_alpha是当前经累加不透明度值,Src_alpha是当前表面像素的不透明度值,且surface[i].surface_alpha是当前表面的不透明度值。
作为一个实例,假定第一表面的第一表面像素的不透明度值是0.4,第二表面的与第一表面像素位于同一地点的第二表面像素的不透明度值是0.6,且第三表面的与第一和第二表面像素位于同一地点的第三表面像素的不透明度值是0.8。在此实例中,假定第一、第二和第三表面的不透明度值(例如,表面不透明度值)是1。而且,假定在此实例中,不透明度值阈值为0.95。
在第一表面像素的不透明度值是0.4且第一表面的不透明度值是1的此实例中,在着色器18处理第一表面像素之后经更新的经累加不透明度值是0.4,即0+(1-0)*(0.4*1)。在一些实例中,着色器18可将经累加不透明度值与不透明度值阈值进行比较,例如将0.4与0.95进行比较。因为经累加不透明度值小于阈值,所以着色器18可继续到第二表面上的第二表面像素。
如上所述,第二表面像素的不透明度值是0.6且第二表面的不透明度值是1。在此实例中,在着色器18处理第二表面像素之后经更新的经累加不透明度值是0.76,即0.4+(1-0.4)*(0.6*1)。因为经累加不透明度值(例如,0.76)小于不透明度值阈值(例如,0.95),所以着色器18可继续到第三表面上的第三表面像素。
如上所述,第三表面像素的不透明度值是0.8且第三表面的不透明度值是1。在此实例中,在着色器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_color等于所存储的经掺合色彩值。当前表面的位于同一地点的表面像素的色彩值和不透明度值可由主机处理器4指派。
着色器18可在掺合像素值之后更新所存储的经掺合色彩值(48)。为了更新所存储的经掺合色彩,着色器18可将所存储的经掺合色彩值设定为等于经掺合像素值。举例来说,着色器18可设定Dest_color=New_color_value。
在一些实例中,着色器18还可更新所存储的经累加不透明度值(50)。主机处理器4可对每一表面像素指派一不透明度值。主机处理器4也可对每一表面指派一不透明度值。着色器18可至少基于所存储的经累加不透明度值和位于同一地点的表面像素的不透明度值和/或当前表面的不透明度值来更新经累加不透明度值。
如上所述,着色器18可实施以下等式以更新所存储的不透明度值。
New_opaqueness_value=Dest_alpha+(1-Dest_alpha)*(Src_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上再现(60的“是”),那么GPU6可将显示器8上的下一像素识别为选定像素(62)。在一些实例中,GPU6可以光栅方式选择下一像素。GPU6可随后识别具有与选定像素位于同一地点的表面像素的表面(42)。GPU6和着色器18可重复上述动作,直到不存在更多像素待在显示器8上再现。
以下是本发明的方面的实例实施方案的伪码。所述伪码可存储在存储装置12上且由GPU6和着色器18实施,或可存储在GPU6内部的存储器上。
Figure BDA00002946449600181
在实例伪码中,在第10和20行,着色器18将所存储的经掺合色彩值和经累加不透明度值初始化为零。在第30行,对于包含与显示器8上的像素位于同一地点的位于同一地点的表面像素的每一所识别表面,着色器18实施第50到180行的指令。
在第50到70行,着色器18确保位于同一地点的表面像素位于当前表面内。在第90和100行,着色器18从存储装置12或GPU6内部的存储器检索位于同一地点的像素的像素值。在第110和120行,着色器18将位于同一地点的表面像素的色彩值与所存储的经掺合色彩值进行掺合,且更新经掺合色彩值。在第130和140行,着色器18以位于同一地点的表面像素的不透明度值更新经累加不透明度值。
在第160和170行,着色器18确定经累加不透明度值是否大于或等于不透明度值阈值。在实例伪码中,不透明度值阈值为100%不透明性。如果经累加不透明度值大于或等于不透明度值阈值,那么着色器18终止位于同一地点的表面像素的累加和掺合。在第190行,GPU6将经掺合色彩值写入到缓冲器(例如,缓冲器10)供未来呈现。
在一个或一个以上实例中,所描述的功能可以硬件、软件、固件或其任一组合来实施。如果以软件实施,那么所述功能可存储为包括非暂时性计算机可读媒体的制品上的一个或一个以上指令或代码。计算机可读媒体可包含计算机数据存储媒体或通信媒体,包含促进计算机程序从一处到另一处的转移到任何媒体。数据存储媒体可为可由一个或一个以上计算机或一个或一个以上处理器存取以检索指令、代码和/或数据结构以实施本发明中描述的技术的任何可用媒体。举例来说且并非限制,此类计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来以指令或数据结构的形式载运或存储所要程序代码且可由计算机存取的任何其它媒体。如本文中所使用,磁盘及光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常磁性地再现数据,而光盘使用激光光学地再现数据。上述的组合也应包含在计算机可读媒体的范围内。
代码可由一个或一个以上处理器执行,所述一个或一个以上处理器例如为一个或一个以上DSP、通用微处理器、ASIC、FPGA或其它等效集成或离散逻辑电路。因此,如本文中使用的术语“处理器单元”可指代上述结构或适合于实施本文中描述的技术的任一其它结构中的任一者。如本文中使用的术语“处理单元”可指代主机处理器4、GPU6、着色器18或其任一组合。另外,在一些方面中,本文描述的功能性可提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或并入于组合式编解码器中。而且,可将所述技术完全实施于一个或一个以上电路或逻辑元件中。
本发明的技术可实施于广泛多种装置或设备中,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元以强调经配置以执行所揭示技术的装置的功能方面,但不一定需要通过不同硬件单元来实现。而是如上所述,各种单元可组合于编解码器硬件单元中或通过互操作的硬件单元(包含如上所述的一个或一个以上处理器)结合合适的软件和/或固件的集合来提供。
已描述了各种实例。这些及其它实例属于所附权利要求书的范围内。

Claims (44)

1.一种方法,其包括:
以处理单元接收将在显示器上显示的多个表面中的每一者的位置;
以所述处理单元至少基于所述表面中的每一者的所述位置来识别所述多个表面中包含与所述显示器的至少一个像素位于同一地点的一个或一个以上位于同一地点的表面像素的一个或一个以上表面;以及
以所述处理单元至少基于所述多个表面中的所述所识别一个或一个以上表面的次序来掺合所述所识别一个或一个以上表面的与所述至少一个像素位于同一地点的所述一个或一个以上位于同一地点的表面像素的像素值。
2.根据权利要求1所述的方法,其进一步包括:
累加所述一个或一个以上位于同一地点的表面像素的不透明度值和所述所识别一个或一个以上表面的不透明度值中的至少一者。
3.根据权利要求2所述的方法,其中累加不透明度值包括基于所述所识别一个或一个以上表面的所述次序来累加不透明度值直到经累加不透明度值大体上等于或大于不透明度值阈值为止,所述方法进一步包括当所述经累加不透明度值等于或大于所述不透明度值阈值时终止所述累加和掺合。
4.根据权利要求3所述的方法,其中所述不透明度值阈值包括对应于完全不透明性的值。
5.根据权利要求2所述的方法,其中累加不透明度值包括从所述所识别一个或一个以上表面中的最前方表面开始且朝向所述所识别一个或一个以上表面中的最后方表面继续来累加不透明度值,其中所述最前方表面和所述最后方表面是基于所述多个表面中的所述所识别一个或一个以上表面的所述次序确定的。
6.根据权利要求2所述的方法,其进一步包括:
在一批次中检索所述不透明度值,
其中累加不透明度值包括累加在所述批次中检索的所述不透明度值。
7.根据权利要求1所述的方法,其进一步包括:
接收所述多个表面中的每一表面的次序,
其中所述多个表面中的所述所识别一个或一个以上表面的所述次序是基于所述所接收次序。
8.根据权利要求1所述的方法,其进一步包括:
基于所述掺合而再现所述至少一个像素。
9.根据权利要求1所述的方法,其中所述多个表面中的每一者的所述位置包括所述多个表面中的每一者的至少两个顶点的坐标。
10.根据权利要求1所述的方法,其中由在包含所述处理单元的装置上执行的一个或一个以上应用程序产生的可见对象形成所述多个表面中的每一者。
11.根据权利要求1所述的方法,其中所述多个表面中的至少一者部分地或完全地重叠于所述多个表面中的另一表面上。
12.根据权利要求1所述的方法,其中所述像素值包括色彩值和不透明度值。
13.根据权利要求1所述的方法,其中掺合所述一个或一个以上表面像素的像素值包括掺合所述一个或一个以上位于同一地点的表面像素仅一次。
14.根据权利要求1所述的方法,其中掺合所述一个或一个以上表面像素的像素值包括从最后方表面开始且继续到最前方表面来掺合像素值。
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所述的设备,其中所述用于累加的装置基于所述所识别一个或一个以上表面的所述次序来累加不透明度值直到经累加不透明度值大体上等于或大于不透明度值阈值为止,所述设备进一步包括用于当所述经累加不透明度值等于或大于所述不透明度值阈值时终止所述累加和掺合的装置。
CN201180045468.7A 2010-08-24 2011-08-24 显示器上的像素再现 Active CN103238169B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/861,865 2010-08-24
US12/861,865 US8493404B2 (en) 2010-08-24 2010-08-24 Pixel rendering on display
PCT/US2011/049002 WO2012027498A2 (en) 2010-08-24 2011-08-24 Pixel rendering on display

Publications (2)

Publication Number Publication Date
CN103238169A true CN103238169A (zh) 2013-08-07
CN103238169B CN103238169B (zh) 2016-04-13

Family

ID=44675814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180045468.7A Active CN103238169B (zh) 2010-08-24 2011-08-24 显示器上的像素再现

Country Status (6)

Country Link
US (1) US8493404B2 (zh)
EP (1) EP2609574A2 (zh)
JP (2) JP5763195B2 (zh)
KR (1) KR101511455B1 (zh)
CN (1) CN103238169B (zh)
WO (1) WO2012027498A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI622016B (zh) * 2013-09-13 2018-04-21 Square Enix Holdings Co Ltd Depicting device
CN111406277A (zh) * 2017-12-05 2020-07-10 高通股份有限公司 以微砖为基础的低分辨率深度存储

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8600538B2 (en) * 2011-04-11 2013-12-03 Disney Enterprises, Inc. System and method for producing three-dimensional multi-layer objects from digital models
US9384711B2 (en) 2012-02-15 2016-07-05 Microsoft Technology Licensing, Llc Speculative render ahead and caching in multiple passes
US9087409B2 (en) 2012-03-01 2015-07-21 Qualcomm Incorporated Techniques for reducing memory access bandwidth in a graphics processing system based on destination alpha values
US9235925B2 (en) 2012-05-31 2016-01-12 Microsoft Technology Licensing, Llc Virtual surface rendering
US9286122B2 (en) 2012-05-31 2016-03-15 Microsoft Technology Licensing, Llc Display techniques using virtual surface allocation
US9230517B2 (en) 2012-05-31 2016-01-05 Microsoft Technology Licensing, Llc Virtual surface gutters
US9177533B2 (en) * 2012-05-31 2015-11-03 Microsoft Technology Licensing, Llc Virtual surface compaction
US9672584B2 (en) * 2012-09-06 2017-06-06 Imagination Technologies Limited Systems and methods of partial frame buffer updating
US20140267327A1 (en) 2013-03-14 2014-09-18 Microsoft Corporation Graphics Processing using Multiple Primitives
JP2014186392A (ja) * 2013-03-21 2014-10-02 Fuji Xerox Co Ltd 画像処理装置及びプログラム
US10789757B2 (en) * 2013-05-06 2020-09-29 Disney Enterprises Inc. Ray-mediated illumination control
US9307007B2 (en) 2013-06-14 2016-04-05 Microsoft Technology Licensing, Llc Content pre-render and pre-fetch techniques
GB2545893B (en) * 2015-12-17 2018-05-09 Displaylink Uk Ltd Pipelining pre-composition data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000068887A1 (en) * 1999-05-10 2000-11-16 Apple Computer, Inc. Rendering translucent layers
US20050270297A1 (en) * 2004-06-08 2005-12-08 Sony Corporation And Sony Electronics Inc. Time sliced architecture for graphics display system

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69315969T2 (de) * 1992-12-15 1998-07-30 Sun Microsystems Inc Darstellung von Informationen in einem Anzeigesystem mit transparenten Fenstern
JP3598575B2 (ja) * 1995-03-30 2004-12-08 カシオ計算機株式会社 画像制御装置
JPH08317284A (ja) * 1995-05-23 1996-11-29 Sanyo Electric Co Ltd 画像出力装置およびデータ合成方法
JPH10333869A (ja) * 1997-06-02 1998-12-18 Mitsubishi Electric Corp マルチウィンドウ画像生成装置およびマルチウィンドウ画像生成方法
US6771264B1 (en) 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6608630B1 (en) 1998-11-09 2003-08-19 Broadcom Corporation Graphics display system with line buffer control scheme
US6518985B2 (en) * 1999-03-31 2003-02-11 Sony Corporation Display unit architecture
US6807620B1 (en) 2000-02-11 2004-10-19 Sony Computer Entertainment Inc. Game system with graphics processor
US7450123B1 (en) 2001-08-31 2008-11-11 Nvidia Corporation System and method for render-to-texture depth peeling
KR100510131B1 (ko) 2003-01-29 2005-08-26 삼성전자주식회사 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법
US6879328B2 (en) 2003-03-03 2005-04-12 Sun Microsystems, Inc. Support of multi-layer transparency
JP2005049913A (ja) 2003-05-30 2005-02-24 Konami Computer Entertainment Yokyo Inc 画像処理装置、画像処理方法及びプログラム
US7274370B2 (en) * 2003-12-18 2007-09-25 Apple Inc. Composite graphics rendered using multiple frame buffers
WO2005103877A1 (ja) * 2004-04-22 2005-11-03 Fujitsu Limited 画像処理装置及びグラフィックスメモリ装置
JP2009193089A (ja) * 2006-06-01 2009-08-27 Panasonic Corp オブジェクト透過表示装置
US7907792B2 (en) * 2006-06-16 2011-03-15 Hewlett-Packard Development Company, L.P. Blend maps for rendering an image frame
US20080001967A1 (en) * 2006-06-30 2008-01-03 Srikanth Rengarajan Display bandwidth reduction apparatus, system, and method
JP5264097B2 (ja) 2007-04-11 2013-08-14 株式会社日立メディコ 超音波診断装置
US20080284798A1 (en) * 2007-05-07 2008-11-20 Qualcomm Incorporated Post-render graphics overlays
CN101539856B (zh) * 2008-03-17 2013-01-16 国际商业机器公司 在应用共享软件中恢复被遮挡窗口的方法和装置
US8125495B2 (en) * 2008-04-17 2012-02-28 Microsoft Corporation Displaying user interface elements having transparent effects

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000068887A1 (en) * 1999-05-10 2000-11-16 Apple Computer, Inc. Rendering translucent layers
US20050270297A1 (en) * 2004-06-08 2005-12-08 Sony Corporation And Sony Electronics Inc. Time sliced architecture for graphics display system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI622016B (zh) * 2013-09-13 2018-04-21 Square Enix Holdings Co Ltd Depicting device
CN111406277A (zh) * 2017-12-05 2020-07-10 高通股份有限公司 以微砖为基础的低分辨率深度存储
CN111406277B (zh) * 2017-12-05 2022-06-14 高通股份有限公司 以图块为基础的低分辨率深度存储

Also Published As

Publication number Publication date
JP5763195B2 (ja) 2015-08-12
JP2013541032A (ja) 2013-11-07
US8493404B2 (en) 2013-07-23
US20120050313A1 (en) 2012-03-01
WO2012027498A2 (en) 2012-03-01
WO2012027498A3 (en) 2013-03-21
CN103238169B (zh) 2016-04-13
EP2609574A2 (en) 2013-07-03
KR101511455B1 (ko) 2015-04-10
JP2015146204A (ja) 2015-08-13
KR20130079508A (ko) 2013-07-10

Similar Documents

Publication Publication Date Title
CN103238169B (zh) 显示器上的像素再现
US10049426B2 (en) Draw call visibility stream
CN103503031B (zh) 基于低分辨率缓冲器的像素剔除
JP6042584B2 (ja) 加えられたインライン動作とともに、ビン毎の可視情報に基づくレンダリングコマンドの条件付き実行
CN104169974A (zh) 图形处理单元中基于可见性的状态更新
CN103460253A (zh) 用于图形处理的像素值精简
CN103971391A (zh) 一种动画生成方法及装置
CN101243694A (zh) 立体显示装置
CN107533752A (zh) 用于图形处理的基于表面格式的自适应存储器地址扫描
CN101656037B (zh) 在小屏幕设备上显示大幅面图片的方法、小屏幕设备
CN110402462A (zh) 无用户感知情况下的低延时断裂
TWI698834B (zh) 用於圖形處理之方法及裝置
CN104200459A (zh) 一种信息处理方法及电子设备
EP4379647A1 (en) Render format selection method and device related thereto
US10896661B2 (en) Image processing apparatus and method for controlling the same
US9824721B2 (en) Video generation device, video generation program, and video generation method
CN105513050A (zh) 一种目标图像提取方法及装置
EP2169623A1 (en) Semiconductor device, graphics controller, and information processing method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant