CN106127848B - 对视点视差图像执行渲染的设备和方法 - Google Patents
对视点视差图像执行渲染的设备和方法 Download PDFInfo
- Publication number
- CN106127848B CN106127848B CN201610288982.8A CN201610288982A CN106127848B CN 106127848 B CN106127848 B CN 106127848B CN 201610288982 A CN201610288982 A CN 201610288982A CN 106127848 B CN106127848 B CN 106127848B
- Authority
- CN
- China
- Prior art keywords
- image
- pixels
- pixel
- rendering
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/15—Processing image signals for colour aspects of image signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20228—Disparity calculation for image-based rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Studio Devices (AREA)
Abstract
本发明提供一种对视点视差图像执行渲染的设备和方法。提供对具有双眼视差或视点视差的第一图像和第二图像执行渲染的装置和方法。所述方法包括:确定与第一图像的像素相应的第二图像的一些像素,基于第一图像的渲染结果执行重投影,以确定第二图像的被确定为与第一图像的像素相应的像素的颜色值,基于重投影选择性地渲染第二图像的剩余像素。
Description
本申请要求于2015年5月4日提交到韩国知识产权局的第10-2015-0062651号韩国专利申请的权益,该韩国专利申请的公开通过引用全部合并于此。
技术领域
一个或多个实施例涉及对双眼视差图像或视点视差图像执行渲染的设备和方法。
背景技术
图形处理设备或元件(例如,图形处理单元(GPU))在装置中执行图像数据渲染。仅作为示例,图形处理设备可通过将与二维(2D)或三维(3D)对象对应的图形数据转换为2D像素来产生用于显示的帧。装置不仅可包括个人计算机(PC)、膝上型计算机、视频游戏机,还可包括嵌入式装置,诸如,智能电话、平板装置和可穿戴装置。对于具有相对低的处理能力和相对大的功耗的特性的嵌入式装置来说,难以具有与工作站(诸如,具有足够大的存储空间和处理电力的PC、膝上型计算机或视频游戏机)相同的图形处理能力。然而,随着便携式装置(诸如,智能电话或平板装置)已经被广泛分布,用户越来越多地通过他们的智能电话或平板装置玩游戏或观看内容(诸如,电影或戏剧)。因此,已经发现可能期望具有改善的或者更高效的图形处理元件的嵌入式装置。
发明内容
一个或多个实施例可提供一种对具有双眼视差或视点视差的第一图像和第二图像执行渲染的方法,所述方法包括:对第一图像执行渲染,以产生第一图像的深度信息;基于第一图像的深度信息,确定第二图像的已经被确定为与第一图像的像素相应的第一像素,并执行用于确定第二图像的第一像素的像素值的重投影;基于重投影选择并渲染与第二图像的第一像素不同的第二图像的第二像素。
执行重投影的步骤可包括:产生将第二图像的第一像素与第二图像的第二像素进行区分的遮挡图,选择并渲染的步骤可包括:基于遮挡图选择并光栅化第二图像的第二像素。
执行重投影的步骤可包括:产生遮挡图,以通过设置第一值来在遮挡图中指示第二图像的每个第一像素,并通过设置第二值来在遮挡图中指示第二图像的每个第二像素,选择并渲染的步骤可包括:选择并光栅化第二图像的其遮挡图的像素具有第二值的像素。
产生遮挡图的步骤还可包括:设置包括第二图像的第二像素并选择第一像素的与第二像素相邻的像素的像素组,并将遮挡图中的像素组的每个像素设置为第二值。
当对第一图像和第二图像执行的各个渲染是基于图块的渲染时,选择并渲染的步骤还可包括:基于遮挡图确定是否对第二图像的每个图块执行调度;基于确定是否执行调度的结果对将被调度的图块执行图块渲染。
执行重投影的步骤可包括:将包括第二图像的第二像素和第二图像的第一像素中的一些像素的第一像素组设置为预定值,以产生扩展的遮挡图;选择并渲染的步骤可包括:基于扩展的遮挡图选择并光栅化第一像素组。
执行重投影的步骤可包括:将第二图像的每个第一像素的各个深度值确定为确定的第一图像的相应像素的深度值,并将第二图像的每个第二像素的深度值确定为满足深度测试的预设值,以产生第二图像的深度缓冲区,选择并渲染的步骤还可包括:使用第二图像的深度缓冲区对第二图像的第一像素和第二像素执行深度测试;在第二图像的渲染期间,仅对满足深度测试的第二图像的像素执行像素着色。
执行重投影的步骤可包括:基于被产生为对第一图像执行的渲染的结果的第一图像的颜色信息,将第二图像的每个第一像素的各个颜色值确定为确定的第一图像的相应像素的颜色值,将第二图像的每个第二像素的颜色值确定为预设值,以产生第二图像的颜色缓冲区,选择并渲染的步骤还可包括:计算第二图像的每个第二像素的各自的颜色值;将确定的第二图像的每个第二像素的预设颜色值分别改变为针对第二图像的每个第二像素计算的各个颜色值,以修改第二图像的颜色缓冲区。
对第一图像执行渲染以产生第一图像的深度信息的步骤可包括:接收针对第一图像和第二图像的绘制命令;基于接收的绘制命令对第一图像执行渲染。
绘制命令可包括:针对第一图像和第二图像中的每个图像的状态信息。
当将对第一图像和第二图像执行的各个渲染是基于图块的渲染时,对第一图像执行渲染以产生第一图像的深度信息的步骤可包括:对第一图像的每个图块执行渲染,以产生针对每个图块的深度缓冲区,执行重投影的步骤可包括:基于每个图块的深度缓冲区,确定与第一图像的每个图块的像素相应的第二图像的第一像素。
当将对第一图像和第二图像执行的各个渲染是基于图块的渲染时,所述方法还可包括:基于针对第一图像和第二图像的绘制命令,对第一图像和第二图像执行图块像素组合。
执行图块像素组合的步骤还可包括:将绘制命令划分为多个批处理,将所述多个批处理分配到多个图形管线;当所述多个批处理的第一批处理被分配到所述多个图形管线的第一图形管线时,基于第一批处理和与第一批处理相应的状态信息,对第一图像和第二图像中的每个图像执行图块像素组合。
一个或多个实施例可提供一种渲染装置,所述装置包括:图形处理单元(GPU),被配置为对第一图像执行渲染,以产生第一图像的深度信息;存储器,被配置为存储第一图像的深度信息,其中,GPU被配置为基于第一图像的深度信息确定第二图像的与第一图像的像素相应的第一像素,以执行重投影来确定第二图像的第一像素的像素值,并基于重投影来选择并渲染与第二图像的第一像素不同的第二图像的第二像素,其中,第一图像和第二图像具有双眼视差或视点视差。
GPU可包括:着色器,被配置为产生将第二图像的第一像素与第二图像的第二像素进行区分的遮挡图;光栅化器,被配置为基于遮挡图选择并光栅化第二图像的第二像素。
着色器可产生遮挡图,以通过设置第一值来在遮挡图中指示第二图像的每个第一像素,并通过设置第二值来在遮挡图中指示第二图像的每个第二像素,光栅化器可选择并光栅化第二图像的其遮挡图的像素具有第二值的像素。
在遮挡图的产生中,着色器可设置包括第二图像的第二像素并选择与第二像素相邻的第一像素的像素的像素组,并将遮挡图中的像素组的每个像素设置为第二值。
着色器可将包括第二图像的第二像素和第二图像的第一像素中的一些像素的第一像素组设置为预定值,以产生扩展的遮挡图;光栅化器可基于扩展的遮挡图选择并光栅化第一像素组。
GPU还可包括:调度器,被配置为基于遮挡图确定是否对第二图像的多个图块中的每个图块执行调度;图形管线,被配置为基于调度器的确定,对将被调度的图块执行图块渲染。
GPU还可包括:着色器,被配置为将第二图像的每个第一像素的各个深度值确定为确定的第一图像的相应像素的深度值,并将第二图像的每个第二像素的深度值确定为满足深度测试的预设值,以产生第二图像的深度缓冲区;Z测试器,被配置为使用第二图像的深度缓冲区对第二图像的第一像素和第二像素执行深度测试;其中,GPU可在第二图像的渲染期间,仅对满足深度测试的第二图像的像素执行像素着色。
GPU还可包括着色器,着色器被配置为基于被产生为对第一图像执行的渲染的结果的第一图像的颜色信息,将第二图像的每个第一像素的各个颜色值确定为确定的第一图像的相应像素的颜色值,将第二图像的每个第二像素的颜色值确定为预设值,以产生第二图像的颜色缓冲区,GPU可计算针对第二图像的每个第二像素的各个颜色值,将确定的第二图像的每个第二像素的预设颜色值分别改变为针对第二图像的每个第二像素计算的各个颜色值,以修改第二图像的颜色缓冲区。
GPU可接收针对第一图像和第二图像的绘制命令,基于接收的绘制命令对第一图像执行渲染。
绘制命令可包括:针对第一图像和第二图像中的每个图像的状态信息。
GPU可被配置为:对第一图像的多个图块中的每个图块执行渲染,以产生每个图块的深度缓冲区,并且存储器可存储每个图块的深度缓冲区,GPU可被配置为基于每个图块的深度缓冲区,确定与第一图像的每个图块的像素相应的第二图像的第一像素,并基于与图块的像素相应的确定的第二图像的第一像素执行重投影。
GPU可被配置为基于针对第一图像和第二图像的绘制命令,对第一图像和第二图像执行图块像素组合。
GPU可被配置为将绘制命令划分为多个批处理,将所述多个批处理分配到多个图形管线,当所述多个批处理的第一批处理被分配到所述多个图形管线的第一图形管线时,GPU可被配置为基于第一批处理和与第一批处理相应的状态信息,对第一图像和第二图像中的每个图像执行图块像素组合。
一个或多个实施例提供一种非暂时性记录介质,包括:编码,用于控制至少一个处理装置来实施在此描述的一个或多个方法实施例。
其他的方面将部分地在下面的描述中阐述,部分地将通过所述描述而明显,或者可通过实施例的实施来了解。
附图说明
从以下结合附图对一个或多个实施例进行的描述,这些和/或其它方面将变得明显和更容易理解,其中:
图1是根据一个或多个实施例的装置的框图;
图2A和图2B示出根据一个或多个实施例的图形处理单元(GPU)确定与第一图像的像素相应的第二图像的像素的示例;
图3是示出根据一个或多个实施例的装置对具有双眼视差或视点视差的第一图像和第二图像执行渲染的方法的流程图;
图4是根据一个或多个实施例的装置的框图;
图5示出根据一个或多个实施例的着色器产生遮挡图(occlusion map)的示例;
图6示出根据一个或多个实施例的光栅化器基于遮挡图执行光栅化的示例;
图7示出根据一个或多个实施例的图形处理单元(GPU)修改第二图像的颜色缓冲区的示例;
图8是根据一个或多个实施例的着色器扩展遮挡图的示例;
图9示出根据一个或多个实施例的GPU基于扩展的遮挡图修改第二图像的颜色缓冲区的示例;
图10是示出根据一个或多个实施例的装置对具有双眼视差或视点视差的第一图像和第二图像执行渲染的方法的流程图;
图11是根据一个或多个实施例的装置的框图;
图12示出根据一个或多个实施例的着色器产生第二图像的深度缓冲区的示例;
图13示出根据一个或多个实施例的GPU修改第二图像的颜色缓冲区的示例;
图14是示出根据一个或多个实施例的装置对具有双眼视差或视点视差的第一图像和第二图像执行渲染的方法的流程图;
图15是根据一个或多个实施例的装置的框图;
图16是根据一个或多个实施例的装置的框图;
图17是根据一个或多个实施例的装置的框图;
图18示出根据一个或多个实施例的GPU执行图块像素组合(tile binning)的示例;
图19是示出根据一个或多个实施例的装置对具有双眼视差或视点视差的第一图像和第二图像执行图块渲染的方法的流程图;
图20是示出根据一个或多个实施例的图19的操作S1910的操作的流程图;
图21是根据一个或多个实施例的装置的框图。
具体实施方式
提供以下详细描述来帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本公开之后,在此描述的方法、设备和/或系统的各种改变、修改及等同物对本领域的普通技术人员而言将是清楚的。这里描述的操作的顺序仅是示例,然而,除了必需按特定顺序发生的步骤和/或操作之外,操作的顺序不限于在此阐述的顺序,并且可如本领域中所清楚的那样改变。此外,为了更加清楚和简明,可省略对本领域的普通技术人员公知的功能和构造的描述。
在此描述的特征可以以许多替代形式实施,不应被解释为限于在此描述的示例。
可对描述的实施例进行各种替代和修改,描述的实施例中的一些将在附图和具体实施方式中被详细示出。然而,应理解,这些实施例不应被解释为局限于示出的形式,且包括本公开的构思和技术范围内的所有改变、等同物或替代物。
这里使用的术语仅用于解释特定实施例,因而不意图限制。除非当两个表述在上下互不相同时,否则单数表述也意图包括复数表述。例如,如这里所使用,除非上下文另外明确指示,否则单数形式也意图包括复数形式。任何及所有示例的使用或这里提供的示例性语言(例如,“诸如”)仅意在更好地阐明潜在构思,而非限制本公开的范围。这里,术语“包括”或“具有”还意图指示存在说明书中公开的特征、图形、操作、元件、组件或它们的组合。术语“包括”或“具有”应该被理解为不排除存在一个或更多个其它特征、图形、操作、元件、组件和/或它们的组或者另外的可能性。此外,为了描述的简单起见,使用包括诸如“第一”、“第二”等的原始数字的术语,来描述各种元件之间的差异,但是元件不应该被这些术语限制,并且除非上下文具有不同的含义,否则这些术语不意在表示必须的次序或顺序。
考虑到本公开,除非另外定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此明确地如此定义,否则诸如在通用字典中定义的术语应被解释为具有与在相关领域和本公开的上下文中的含义一致的含义,不将被解释为理想化或过于形式化的意义。
以下,将参照附图更详细地解释特定实施例,在附图中,相同的参考标号始终表示相同的元件。相同或相似的元件或彼此相应的元件将被提供相同的相似的参考标号,并将省略它们的详细解释。当确定相关或公知的功能或结构的详细描述被使本公开的实施例的目的解释不必要地模糊冗长时,将省略这样的详细描述。
此外,这里仅作为除以下进一步解释之外的示例,装置100、400、1100、1500、1600、1700和2100是硬件装置,硬件装置可以是台式计算机、膝上型计算机、智能电话、个人数字助理(PDA)、便携式媒体播放器、视频游戏机、电视机顶盒、平板设备、电子书阅读器或可穿戴装置,但不限于此,另外的实施例也是可行的。此外,装置100、400、1100、1500、1600、1700和2100可以是被配置为实现虚拟现实的装置。例如,装置100、400、1100、1500、1600、1700和2100可以是例如至少包括一个显示器的头戴式显示器(HMD),或者是被配置为用于连接这样的一个或多个显示器或与这样的一个或多个显示器交互的装置。换言之,在一个或多个实施例中,装置100、400、1100、1500、1600、1700和2100可以是被配置为具有图形处理能力的装置以进行内容的显示,装置100、400、1100、1500、1600、1700和2100的示例可包括各种硬件装置。
在实施例中,仅作为除以下进一步解释之外的示例,作为专用图形处理器的图形处理单元(GPU)110、410、1110、1530、1630、1730和2150可以以硬件实现,以将三维(3D)图像上的3D对象渲染为用于显示的二维(2D)图像。例如,GPU 110、410、1110、1530、1630、1730和2150可被配置为执行各种图形处理操作(仅作为示例,诸如,着色、混合和照明)以及用于针对将被显示的像素产生像素值的图形操作。
在实施例中,仅作为除以下进一步解释之外的示例,存储器120、420、1120、1540、1640、1740和2160可以是用于存储由装置100、400、1100、1500、1600、1700和2100处理的各种数据的硬件。例如,存储器120、420、1120、1540、1640、1740和2160可存储由GPU 110、410、1110、1530、1630、1730和2150处理的数据以及将由GPU 110、410、1110、1530、1630、1730和2150处理的数据。此外,存储器120、420、1120、1540、1640、1740和2160可存储将由GPU 110、410、1110、1530、1630、1730和2150驱动的驱动器和应用的计算机/处理器可读代码。存储器120、420、1120、1540、1640、1740和2160每个均可包括随机随机存取存储器(RAM)(诸如,动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM))、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、CD-ROM、蓝光或另一光盘存储器、硬盘驱动器(HDD)、固态硬盘驱动器(SSD)或闪存,或者可包括装置100、400、1100、1500、1600、1700和2100可访问的外部存储装置。此外,在一个或多个实施例中,在此讨论的一个或多个方法操作可由在这样的硬件存储器或其它非暂时性介质中记录的计算机/处理器可读代码实施。
在实施例中,仅作为除以下进一步解释之外的示例,总线130、430、1130和2170是连接示例示出的组件(即,装置100、400、1100、1500、1600、1700和2100中的各种硬件)的硬件,从而在各种硬件之间发送并接收数据。总线130、430、1130和2170可包括各种类型的总线,仅作为示例,诸如,PCI总线和PCI Express总线。
在实施例中,GPU 110、410、1110、1530、1630、1730和2150可对多个相关视点图像(诸如,表示左视点和右视点的双眼视差图像)的至少两个不同的视点图像执行渲染。换言之,在此实施例中并且在一个或多个实施例中,GPU 110、410、1110、1530、1630、1730和2150可对具有双眼视差的第一图像和第二图像中的每个执行渲染,并显示双眼视差图像。例如,在实施例中,第一图像可以是针对左眼的图像,第二图像可以是针对右眼的图像。以下,为了解释的方便起见,被提及的第一图像和第二图像指具有双眼视差或视点视差的第一图像和第二图像。
图1是根据一个或多个实施例的装置100的框图。
参照图1,装置100可包括GPU 110、存储器120和总线130,例如,要注意的是,还可包括除所示的元件之外的元件。
根据实施例,GPU 110可对第一图像执行渲染。根据实施例,GPU 100可对第一图像执行渲染以产生第一图像的深度信息。第一图像的深度信息可包括第一图像的每个像素的深度值。例如,第一图像的深度信息可以存储在第一图像的深度缓冲区(buffer)中。此外,根据实施例,GPU 110可对第一图像执行渲染以产生第一图像的颜色信息。第一图像的颜色信息可包括第一图像的每个像素的颜色值。例如,第一图像的颜色信息可以存储在第一图像的颜色缓冲区中。
根据实施例,存储器120可存储被产生为对第一图像执行渲染的结果的第一图像的深度信息。此外,根据实施例,存储器120可存储作为对第一图像执行渲染的结果而产生的第一图像的颜色信息。
根据实施例,GPU 110可基于存储在存储器120中的第一图像的深度信息或颜色信息执行重投影。这里,重投影可以是分别确定与第一图像的像素相应的第二图像的一些(或者,哪些)像素(即,第一像素),将第二图像的这样的第一像素的像素值确定为与确定的第一图像的相应像素的各个像素值相同或匹配。各个像素值中的每个像素值可以是,例如,像素的深度值或颜色值。根据实施例,重投影可包括例如基于第一图像的深度信息和颜色信息产生第二图像的遮挡图(occlusion map)和颜色缓冲区的处理,并且重投影可分别指示通过基于第一图像的深度信息和颜色信息产生第二图像的遮挡图和颜色缓冲区的处理而做出的这样的确定。此外,或者可选地,重投影可包括基于第一图像的深度信息和颜色信息产生第二图像的深度缓冲区和第二图像的颜色缓冲区的处理,并且重投影可分别指示通过基于第一图像的深度信息和颜色信息产生第二图像的深度缓冲区和第二图像的颜色缓冲区的处理而做出的这样的确定。
当第一图像是通过基于第一视点渲染对象而获得的图像并且第二图像是通过基于第二视点渲染对象而获得的图像时,当通过第一图像的特定像素示出对象的预定部分并且通过第二图像的特定像素示出相同对象的所述预定部分时,第一图像的特定像素可被确定为与第二图像的特定像素相应。当第一视点是左眼并且第二视点是右眼时,被确定为与第一图像的具有(x,y)坐标的特定像素相应的第二图像的特定像素的坐标可以是(x+d,y)。换言之,与第一图像的特定像素相应的第二图像的特定像素的定位或位置可在X轴具有变化d的差异。此外,由于在第一视点观看的对象可能在第二视点观看不到,因此不是第一图像的所有像素在第二图像中都可具有相应的像素。换言之,只有第二图像的一些像素(即,第一像素)与第一图像的像素具有各自的对应关系,而可存在与第一图像的任何像素都不具有各自的对应关系的其它像素(即,第二像素)。
根据实施例,例如,GPU 110可基于第一图像的深度信息确定与第一图像的像素相应的第二图像的这样的第一像素。以下参考图2A至图2B更详细地描述实施例。
仅作为示例,图2A至图2B示出根据一个或多个实施例的GPU 110可确定第二图像的像素与第一图像的像素对应的方法。
图2A示出基于第一相机视点212渲染的第一图像214,图2B示出基于第二相机视点222渲染的第二图像224。例如,在实施例中,第一相机视点212可与左眼的位置或视点相应,因此第一图像214可以是左眼图像。在这样的实施例中,第二相机视点222可与右眼的位置或视点相应,因此第二图像224可以是右眼图像。根据图2A,由于可通过第一图像214的β像素示出具有深度值z的对象216,因此,第一图像214的β像素的坐标可被表示为(x’,y,z)。
此外,GPU 110可基于关于第一相机视点212和第二相机视点222的信息和β像素的坐标信息,确定与第一图像214的β像素相应的第二图像224的α像素。换言之,由被确定为与第一图像214的β像素相应的第二图像224的α像素表示的对象218可与图2A的对象216相同。例如,根据实施例,GPU 110可通过以下等式1确定与第一图像214的β像素相应的第二图像224的α像素。
等式1:
在等式1中,变量“b”和“f”分别表示关于第一相机视点212和第二相机视点222的信息。这里,变量“b”表示基线,变量“f”表示焦距,变量“z”表示第一图像214的β像素的深度值,“d”表示β像素的X坐标的变化。因此,GPU 110可通过等式1计算d,并将(x,y,z)=(x’-d,y,z)确定为第二图像224的α像素的坐标。换言之,GPU 110可在不对第二图像224执行渲染的情况下,通过使用关于第一相机视点212和第二相机视点222的信息以及第一图像214的β像素的深度值确定第二图像224的哪个像素(即,第二图像224的α像素)与第一图像214的β像素相应。因此,GPU 110还可将针对第二图像224的α像素的深度值和/或颜色值确定或设置为与第一图像214的β像素的深度值或颜色值相同或匹配,在实施例中,GPU 110可在对第二图像224执行渲染之前,将针对第二图像224的α像素的深度值和/或颜色值确定为与第一图像214的β像素的深度值或颜色值相同或匹配。此外,在此示例中,第一图像214的β像素的深度值或颜色值可在针对β像素渲染第一图像214期间被确定,第二图像224的相应的α像素的深度值和/或颜色值可在渲染第二图像224之前基于第一图像214的渲染结果被确定或设置。
根据实施例,图1的GPU 110可执行重投影以产生遮挡图(occlusion map)。这里,遮挡图表示用于将分别与第一图像214的像素相应的第二图像224的一些像素(即,第一像素)和在第一图像214中不具有相应的像素的第二图像224的一些其它像素(即,第二像素)进行区分的图。因此,在实施例中,GPU 110可例如基于第一图像的深度信息确定第二图像的这样的第一像素,并产生将第二图像224的每个第一像素与第二图像224的每个第二像素进行区分的遮挡图。
如上所讨论,根据基于第一图像214的渲染产生的第一图像214的颜色缓冲区,GPU110可将第二图像224的每个第一像素的各个的颜色值确定或设置为与确定的第一图像214的每个相应像素的颜色值相同或匹配,并还可将第二图像224的每个第二像素的颜色值确定或设置为任意值(例如,相同的任意值),以产生第二图像224的所有像素的颜色缓冲区。任意值可以是由用户预先确定的值。此外,当产生遮挡图时,GPU 110可基于第二图像224的第二像素在第二图像224的颜色缓冲区中的确定的或设置的任意值,来识别第二图像的第二像素。例如,GPU 110可将具有任意颜色值的那些像素识别为第二像素和/或将不具有任意颜色值的那些像素识别为第一像素。随后在第二图像224的渲染期间或为了第二图像224的渲染,可使用遮挡图来选择第二图像224的多个像素中的哪些像素将被渲染,例如,在第二图像224的渲染期间,第二图像224的第一像素中的一些或全部不被渲染。
根据实施例,存储器120可存储由GPU 110产生的遮挡图或第二图像224的颜色缓冲。
根据实施例,如上所述,GPU可在第一图像214的渲染之后,执行对第二图像224的像素的选择性的渲染,并产生第二图像224的图像缓冲区或遮挡图。GPU 110可基于存储在存储器120中的遮挡图或颜色缓冲区执行对第二图像的像素的选择性的渲染。例如,根据实施例,GPU 110可选择第二图像224的确定的第二像素(即,第二图像的被预先确定为与第一图像214的像素不相应的那些像素),以基于存储在存储器120中的遮挡图仅对选择的第二像素执行渲染。由于在遮挡图中第二图像224的确定的第一像素不同于第二图像224的确定的第二像素,因此,GPU 110可在不对第二图像224的第一像素执行光栅化(rasterization,栅格化)的情况下,根据遮挡图对第二图像224的第二像素执行光栅化。除光栅化之外,GPU110可仅对第二图像224的每个第二像素执行另外的计算或图形处理(诸如,各个像素着色),因此计算第二图像224的每个第二像素的颜色值或更新第二图像224的每个第二像素的颜色值。例如,GPU 110可读取预先存储在如上所述的存储器120中的第二图像224的颜色缓冲区,并通过第二图像224的每个第二像素的各个最新设置的颜色值修改或更新第二图像224的颜色缓冲区。换言之,GPU 110可将第二图像224的第二像素的在第二图像224的颜色缓冲区中预先设置的任意值改变为作为选择性渲染第二图像224的结果而计算的各个新设置的颜色值。
因此,GPU 110可在不对第二图像224的所有像素执行渲染而是选择并渲染第二图像224的被确定为在第一图像214中不具有对应像素的的像素的情况下,完成或完结第二图像224的颜色缓冲区。根据实施例,装置100可通过完成/完结的第二图像224的颜色缓冲区来输出第二图像224。
如上所述,根据实施例,GPU 110可执行重投影,并可确定或设置第二图像224的与第一图像214的像素相应的每个示例第一像素的各个深度值,以使第二图像224的第一像素具有与第一图像214的它们的对应像素相同的深度值。此外,在此处理中,第二图像224的每个示例第二像素的深度值可被确定或设置为预定值。这些深度确定/设置处理可因而产生第二图像224的深度缓冲区。仅作为示例,预定值可以是由用户预先设置的明确的值(即,初始值)。同样地,GPU 110可将第二图像224的每个第一像素的颜色值确定或设置为第一图像214的相应像素的各个颜色值,并将第二图像224的每个第二像素的颜色值确定或设置为任意值,从而产生表示第二图像224的第一像素和第二像素的第二图像224的颜色缓冲区。
根据实施例,存储器120可存储由GPU 110产生的第二图像224的深度缓冲和颜色缓冲。
与上述类似,根据实施例,GPU 110可基于存储的第二图像224的深度缓冲和颜色缓冲对第二图像224的像素执行选择性的渲染。根据实施例,GPU110可选择并渲染由第二图像224的深度缓冲指示的与第一图像214的像素不相应的第二图像224的第二像素。根据实施例,GPU 110可通过使用第二图像224的深度缓冲区,基于存储的第二图像224的深度缓冲区,对第二图像224的像素(包括第二图像224的与第一图像214的像素相应的第一像素和与第一图像214的像素不相应的第二图像224的第二像素)执行Z测试(即,深度测试)。在作为预先执行的重投影处理的结果的存储在存储器120中的第二图像224的深度缓冲区中,第二图像224的一些像素具有与第一图像214中的它们的相应像素的深度值匹配的深度值,因而可能没有通过Z测试,而第二图像224的其它像素(即,第二像素)可通过Z测试。因此,基于Z测试的结果,GPU 110将不对Z测试失败的第二图像224的像素执行计算或图像处理,而GPU110将对通过Z测试的第二图像224的像素执行计算或图形处理。这里,通过Z测试的第二图像224的像素之所以可通过Z测试,是因为存储在存储器120中的第二图像224的深度缓冲区中的预先在重投影处理中设置的它们的各个深度值具有被设计为通过Z测试的预先设置的预定值。根据实施例,GPU 110可对第二图像224的这样的Z测试通过像素执行像素着色,结果,GPU 110可计算或更新第二图像224的这些Z测试通过像素中的每个的各自的颜色值。因此,GPU 110可通过将在第二图像224的颜色缓冲区中预先确定或设置的各个任意值改变为作为第二图像224的选择性渲染的结果而计算的第二图像224的每个Z测试通过像素的新确定的各自的颜色值,来修改或更新预先存储在存储器120中的第二图像224的颜色缓冲区。
因此,GPU 110可通过选择第二图像224的预先已经被确定为在第一图像214中不具有各自的相应像素的像素并渲染选择的像素,来完成或终结第二图像224的颜色缓冲区。根据实施例,装置100之后可通过完成/终结的第二图像224的颜色缓冲区来输出第二图像224。
因此,由于装置100在渲染第二图像224时可不对第二图像224的所有像素执行渲染,而是在渲染第二图像224时仅选择并渲染例如预先已经被确定为与第一图像214中的像素不相应的第二图像224中的那些像素,因此可降低计算的数量,从而改善装置100的性能。换言之,由于装置100可通过基于第一图像214的渲染结果的重投影而不是通过第二图像224的渲染,来获得针对与第一图像214的像素相应的第二图像224的一些像素的像素值,与对第二图像224的所有像素执行渲染的情况相比,可降低计算的数量。
图3是示出根据一个或多个实施例的仅作为示例的装置100可对具有双眼视差或视点视差的第一图像和第二图像执行渲染的方法的流程图。
在此示例中,由于通过图1的装置100的操作解释了图3所示的方法,因此,省略仅再次作为示例的关于装置100的操作的重复描述。
在操作S310,装置100可对第一图像执行渲染。根据实施例,装置100可对第一图像执行渲染以产生第一图像的深度信息。第一图像的深度信息可存储在第一图像的深度缓冲区中。此外,根据实施例,装置100可对第一图像执行渲染以产生第一图像的颜色信息。第一图像的颜色信息可存储在第一图像的颜色缓冲区中。
仅作为示例,在操作S320中,装置100可例如基于作为第一图像的渲染结果产生的第一图像的深度信息,分别确定分别被确定为与第一图像的像素相应的第二图像的一些像素(即,第一像素),并可执行重投影以分别投影或预测这样的第一像素的颜色值和/或深度值,从而可仅需针对第二图像的其余像素执行第二图像的最后渲染。根据实施例,重投影可包括例如基于第一图像的深度信息和颜色信息产生并填充第二图像的遮挡图和颜色缓冲区的处理。此外,重投影可包括基于第一图像的深度信息和颜色信息,产生并填充第二图像的深度缓冲区和第二图像的颜色缓冲区的处理。
根据实施例,装置100可执行重投影以产生遮挡图。换言之,装置100可例如基于第一图像的深度信息或通过其它相关处理确定与第一图像的像素相应的第二图像的第一像素,并产生将第二图像的第一像素与第二图像的另一些或其余像素(第二像素)进行区分的遮挡图。
此外,基于例如由第一图像的渲染产生的第一图像的颜色缓冲区,装置100可将针对第二图像的每个第一像素的各个颜色值确定或设置为与确定的第一图像的相应像素具有相同或匹配的颜色值,并可将第二图像的每个第二像素的颜色值确定或设置为任意值(例如,相同的任意值),以共同产生第二图像的第一像素和第二像素的颜色缓冲区。此外,装置100可通过基于第二图像的颜色缓冲区识别第二图像的被确定为是相同的任意颜色值的第二像素,来产生将第二图像的第一像素与第二图像的第二像素区分的遮挡图。
装置100可在内部存储器中存储产生的遮挡图和第二图像的颜色缓冲区。
根据实施例,装置100可执行重投影,并可将第二图像的每个第一像素的各个的深度值确定或设置为与确定的第一图像的相应像素的深度值相同或匹配,并可将第二图像的每个第二像素的深度值确定或设置为预定值(例如,相同的预定值),以产生第二图像的第一像素和第二像素的深度缓冲区。同样地,装置100可将第二图像的每个第一像素的各个颜色值确定或设置为与确定的第一图像的相应像素的颜色值相同或匹配,并可将第二图像的每个第二像素的颜色值确定或设置为任意值(例如,相同的任意值),从而产生第二图像的第一像素和第二像素的颜色缓冲区。如上所述,在实施例中,第二图像的颜色缓冲区的产生可以是在渲染第二图像之前基于第一图像的渲染结果而产生并填充的。
装置100可在内部存储器中存储产生的第二图像的深度缓冲区或产生的第二图像的颜色缓冲区。
在操作S330,装置100可通过基于重投影通过渲染第二图像的第二像素而选择性地渲染第二图像来渲染第二图像。
根据实施例,装置100可基于遮挡图,选择并渲染预先已经被确定为与第一图像的像素不相应的第二图像的第二像素。由于在遮挡图中与第一图像的像素相应的第二图像的第一像素不同于与第一图像的像素不相应的第二图像的第二像素,因此,装置100可不对第二图像的第一像素执行光栅化,并根据遮挡图对第二图像的第二像素执行光栅化。除光栅化之外,装置100可对第二图像的第二像素执行另外的计算(诸如,像素着色),并因此计算第二图像的每个第二像素的颜色值。因此,装置100可通过第二图像的每个第二像素的颜色值修改预先产生的第二图像的颜色缓冲区。换言之,装置100可将在第二图像的颜色缓冲区中预先确定的任意值改变为被计算为第二图像的渲染结果的第二图像的每个第二像素的各个渲染的颜色值。
因此,装置100可通过不对第二图像的所有像素执行渲染而是选择并渲染第二图像的与第一图像的像素不相应的第二像素,来完成第二图像的颜色缓冲。根据实施例,装置100可通过完成的第二图像的颜色缓冲区来输出第二图像。
根据实施例,装置100可基于第二图像的深度缓冲区对第二图像的像素执行选择性的渲染。根据实施例,装置100可基于第二图像的深度缓冲区选择并渲染第二图像的与第一图像的像素不相应的第二像素。根据实施例,装置100可通过使用第二图像的深度缓冲区,对第二图像的与第一图像的像素相应的第一像素以及第二图像的与第一图像的像素不相应的第二像素执行Z测试(即,深度测试)。在第二图像224的深度缓冲区中,第二图像的第一像素具有第一图像的像素的深度值因而不会通过Z测试。结果,装置100在Z测试之后的处理中不对第二图像的第一像素执行计算。此外,在第二图像的深度缓冲区中,第二图像的第二像素具有预定值(诸如,初始值)因而可通过Z测试。因此,装置100可在Z测试之后的处理中对第二图像的第二像素执行计算。根据实施例,装置100可对已经通过Z测试的第二图像的第二像素执行像素着色,结果,装置100可计算第二图像的每个第二像素的颜色值。因此,装置100可通过第二图像的每个第二像素的颜色值修改预先产生的第二图像的颜色缓冲区。换言之,装置100可将在第二图像的颜色缓冲区中确定的任意值改变为被计算为渲染的结果的第二图像的每个第二像素的颜色值。
因此,装置100可通过不对第二图像的所有像素执行渲染而是通过选择并渲染仅仅第二图像的已经被确定为与第一图像的像素不相应的或者像素的颜色值还没有基于由第一图像的渲染产生的第一图像的像素的颜色像素值而确定或设置的那些像素,来完成第二图像的颜色缓冲。根据实施例,装置100可通过完成的第二图像的颜色缓冲来输出第二图像。
图4是根据一个或多个实施例的装置400的框图。
参照图4,装置400可包括GPU 410、存储器420和总线430,例如,要注意的是,还可包括除所示的元件之外的元件。
根据实施例,GPU 410可对第一图像执行渲染。根据实施例,GPU 410可对第一图像执行渲染以产生第一图像的深度缓冲区422。第一图像的深度缓冲区422可包括第一图像的每个像素的各自的深度值。此外,根据实施例,GPU 410可对第一图像执行渲染以产生第一图像的颜色缓冲区424。第一图像的颜色缓冲区424可包括第一图像的每个像素的各自的颜色值。
根据实施例,存储器420可存储被产生为对第一图像执行渲染的结果的第一图像的深度缓冲区422。此外,根据实施例,存储器420可存储作为对第一图像执行渲染的结果而产生的第一图像的颜色缓冲区424。
根据实施例,GPU 410可包括着色器412和光栅化器414,例如,要注意的是,还可包括除所示的着色器412和光栅化器414之外的元件。
根据实施例,着色器412可基于存储在存储器420中的第一图像的深度缓冲区422,确定第二图像的哪些像素(即,第一像素)与第一图像的像素相应。此外,着色器412可基于将确定的第二图像的第一像素与第二图像的其它或其余像素(即,第二像素)进行区分的第一图像的渲染,产生遮挡图428。根据实施例,为了产生遮挡图428,着色器412可将遮挡图422中针对第二图像的第一像素的相应映像设置为“0”值,将遮挡图中针对第二图像的第二像素的相应映像设置为“1”值。“0”值或“1”值仅为示例,遮挡图428可包括除“0”值或“1”值之外的值,或可包括用于区分第二图像的这样的示例第一像素和第二像素的其它识别信息。
基于第一图像的颜色缓冲区422,着色器412可将第二图像的每个第一像素的颜色值确定为第一图像的每个像素的颜色值,并可将第二图像的每个第二像素的颜色值确定为任意值,以产生第二图像的颜色缓冲426。任意值可以是由用户预先确定的值。此外,着色器412可通过基于第二图像的颜色缓冲区426识别确定为任意值的第二图像的第二像素,来产生将第二图像的第一像素与第二图像的第二像素进行区分的遮挡图428。
图5示出根据一个或多个实施例的仅作为示例的着色器412可产生遮挡图的方法。
图5的左部(由参考标号510指示的区域)示出在第一视点512和第二视点514通过屏幕516观看对象518的操作。因此,GPU 410可基于第一视点512和第二视点514中的每个视点对双眼视差图像或视点视差图像执行渲染。
根据实施例,GPU 410可基于第一视点512对第一图像520执行渲染。因此,GPU 410可对第一图像520执行渲染,以产生指示对象518的第一图像520的深度缓冲区或颜色缓冲区。换言之,GPU 410可计算指示对象518的每个像素522的深度值和颜色值。
着色器412可基于第一图像520的深度缓冲区执行重投影。换言之,着色器412可基于像素522的深度值分别确定与像素522相应的第二图像530的一些像素(即,第一像素)532。因此,着色器412可产生将与像素522相应的第二图像530的第一像素532和与像素522不相应的第二图像530的其它或其余像素(即,第二像素)534进行区分的遮挡图540。根据实施例,着色器412可向与第二图像530的第一像素532位于相同位置的像素542设置“0”值,向与第二图像530的第二像素534位于相同位置的像素544设置“1”值,以产生遮挡图540。
基于第一图像520的颜色缓冲,着色器412可将第二图像530的每个第一像素532的颜色值确定为第一图像520的每个像素522的颜色值,并将第二图像530的每个第二像素534的颜色值确定为任意值,以产生第二图像530的颜色缓冲区。此外,着色器412可通过基于第二图像530的颜色缓冲区识别确定为任意值的第二图像530的第二像素534,来产生将第二图像530的第一像素532与第二图像530的第二像素534进行区分的遮挡图540。
图4的存储器420可存储第二图像530的由着色器412产生的遮挡图428或颜色缓冲区426。
根据实施例,GPU 410可基于存储在存储器420中的第二图像530的颜色缓冲区426或遮挡图428,对第二图像530的像素执行选择性的渲染。根据实施例,GPU 410可选择第二图像530的与第一图像520的像素不相应的第二像素,以基于存储在存储器420中的遮挡图428对选择的像素执行渲染。更具体地讲,由于在遮挡图428中第二图像530的与第一图像520的像素相应的第一像素不同于第二图像530的与第一图像520的像素不相应的第二像素,因此,光栅化器414可不对第二图像530的第一像素执行光栅化,并根据遮挡图428对第二图像530的第二像素执行光栅化。
图6示出根据一个或多个实施例的仅作为示例的光栅化器414基于遮挡图620执行光栅化的示例。
根据实施例,包括第二图像610的与图5的第一图像520的像素相应的一些像素(即,第一像素)的第一区域612可被输入到光栅化器414。光栅化器414可基于遮挡图620省略执行对与第一区域612相应的像素615进行光栅化的操作。换言之,由于在遮挡图620中,与第一区域612相应的像素615被设置为“0”值,因此光栅化器414可省略执行对像素615进行光栅化的操作。同样地,光栅化器414可基于遮挡图620省略执行对与包括第二图像610的第一像素611的第二区域613对应的像素进行光栅化的操作。由于在遮挡图620中第二图像610的与第一图像520的像素不相应的一些其它或其余像素(即,第二像素)614被设置为“1”值,因此光栅化器414可对第二像素614执行光栅化。
除对第二图像610的第二像素执行光栅化之外,图4的GPU 410可对第二图像610的第二像素执行另外的计算(诸如,像素着色),并因此计算第二图像610的每个第二像素的颜色值。因此,GPU 410可读取预先存储在存储器120中的第二图像610的颜色缓冲区,并通过计算的第二图像的每个第二像素的颜色值来修改读取的第二图像610的颜色缓冲区。换言之,GPU 410可将在第二图像610的颜色缓冲区中确定的任意值改变为被计算为渲染结果的第二图像610的每个第二像素的各自的计算颜色值。
因此,GPU 410可通过不对第二图像610的所有像素执行渲染而是选择并渲染第二图像610的与第一图像520的像素不相应的第二像素,来完成第二图像610的颜色缓冲区。根据实施例,装置400可通过完成的第二图像610的颜色缓冲区来输出第二图像610。
图7示出根据一个或多个实施例的仅作为示例的GPU410可修改第二图像的颜色缓冲区的方法。
根据实施例,着色器412可确定第二图像的与第一图像的像素相应的一些像素(即,第一像素)712。基于第一图像的颜色缓冲区,着色器412可将第二图像的每个第一像素712的颜色值确定为第一图像的每个像素的颜色值,并将第二图像的一些其它或其余像素(即,第二像素)714中的每个像素的颜色值确定为任意值,以产生第二图像的颜色缓冲区710。在图7的第二图像的颜色缓冲区710中,每个第一像素712的颜色值被确定为各自的R”,每个第二像素714的颜色值被确定为各自的或相同的“#”。然而,颜色值不限于各自的R值或#值。此外,在图7中,虽然为了解释的方便起见,将第一像素712的颜色值表示为变量R,但是第一像素712的各自的颜色值可具有不同的值。另外为了方便起见,已经示出颜色缓冲区710来展示哪些颜色值表示第二图像的哪些像素,例如,使用指示颜色缓冲区710的哪些像素值表示第一像素712的各自的像素值以及颜色缓冲区710的哪些像素值表示第二像素714的各自的像素值的第一像素712的参考线,来展示哪些颜色值表示第二图像的哪些像素。
根据实施例,光栅化器414可基于遮挡图428选择第二图像的一些像素(即,第二像素)722来执行渲染。在图7中,第二图像的颜色缓冲区710上示出的第二图像的第二像素714的位置与第二图像的第二像素722的位置相同。这里,仅作为示例,光栅化器可通过不向着色器412提供第一像素712或仅向着色器412提供遮挡图428中识别的第二像素,来仅选择第二像素722用于渲染(例如,用于向着色器412提供)而不选择或提供第一像素712用于渲染。
根据实施例,除针对第二图像的第二像素722的光栅化之外,GPU 410可对第二像素722执行另外的计算(诸如,像素着色),从而可计算每个第二像素722的颜色值。在图7中,第二图像的每个第二像素722的分别计算的颜色值可由“C”表示。此外,虽然为了解释的方便起见,第二像素722的颜色值都由“C”表示,但是第二像素722的颜色值可具有不同的值。
因此,GPU 410可将在第二图像的颜色缓冲区710中被确定为任意值#的每个第二像素714的颜色值确定为通过渲染计算的每个第二像素722的分别计算的颜色值“C”,以产生第二图像的完成的颜色缓冲区720。
根据实施例,图4的着色器412可将包括第二图像的第二像素的第一像素组设置为预定值,以产生扩展的遮挡图。换言之,着色器412可通过设置遮挡图428产生扩展的遮挡图,从而包括第二图像的第二像素的第一像素组具有第二图像的第二像素在遮挡图428中具有的值。因此,第一像素组可包括第二图像的第二像素以及第二像素组,第二像素组包括第二图像的不同于第二像素的像素。
图8是根据一个或多个实施例的仅作为示例的着色器412可扩展遮挡图的方法。
着色器412可产生扩展的遮挡图820以及遮挡图810。换言之,着色器412可向位于与第二图像530的第二像素534相同位置的像素812赋予“1”值,以产生遮挡图810。此外,着色器412可向包括具有比第二图像530的第二像素534范围更宽的像素的第一像素组822赋予“1”值,以产生扩展的遮挡图820。第一像素组822可包括第二图像530的第二像素824以及包括除第二像素824之外的像素的第二像素组826。例如,着色器412可基于位于与第二图像530的第二像素534相同位置的像素812,向包括在3×3像素范围830中的像素赋予“1”值,以产生扩展的遮挡图820。
根据实施例,当渲染第二图像时,除第二图像的第二像素之外,图4的GPU 410还可基于扩展的遮挡图选择并渲染第一像素组,其中,第一像素组也包括具有比第二图像的第二像素范围更宽的像素。换言之,光栅化器414可基于扩展的遮挡图选择并光栅化第二图像的第一像素组。这里,范围比第二图像的第二像素宽的第一像素组的像素可包括第二图像的在第一图像中具有相应像素的第一像素中的一些像素。除光栅化之外,GPU 410还可对第二图像的第一像素组执行另外的计算(诸如,像素着色),并因此计算形成第二图像的第一像素组的每个像素的各自的颜色值。由于第二图像的第一像素组包括第二图像的第二像素,因此GPU 410可将预先存储在存储器420中的在第二图像的颜色缓冲区426中确定的相应的任意值改变为被计算为渲染的结果的第二图像的第二像素的分别计算的颜色值。此外,GPU 410可基于在颜色缓冲区426中确定的被计算为渲染的结果的形成第二像素组的每个像素的颜色值以及之前确定或设置的与第二像素组的像素对应的颜色值,改变在颜色缓冲区426中确定的与第二像素组的像素对应的之前确定的或设置的颜色值。例如,GPU 410可计算作为渲染的结果计算的第二像素组的每个像素的颜色值的平均值以及基于第一图像的渲染在颜色缓冲区426中预先确定或设置的与第二像素组相应的颜色值,并可将颜色缓冲区426中与第二像素组相应的颜色值改变为计算的平均值。参照图9描述更具体的实施例。
图9示出根据一个或多个实施例的仅作为示例的GPU 410可基于扩展的遮挡图修改预先确定或设置的第二图像的颜色缓冲区的方法。
根据实施例,着色器412可确定与第一图像的像素相应的第二图像的第一像素912。此外,基于第一图像的颜色缓冲区,着色器412可将第二图像的每个第一像素912的颜色值确定为第一图像的每个像素的颜色值,并将第二图像的每个第二像素914的颜色值确定为任意值,以产生第二图像的颜色缓冲区910。在图9的第二图像的颜色缓冲区910中,每个第一像素912的颜色值被确定为R,每个第二像素914的颜色值被确定为#。然而,颜色值不限于R或#。此外,在图9中,虽然为了解释的方便起见,将第一像素912的颜色值表示为R,但是第一像素912的颜色值可具有不同的值。
根据实施例,光栅化器414可基于扩展的遮挡图选择第二图像的第一像素组922来执行光栅化。
根据实施例,除针对第一像素组922的光栅化之外,GPU 410还可对第一像素组922执行另外的计算(诸如,像素着色),从而可计算第一像素组922的每个像素的各自的颜色值。在图9中,第一像素组922的每个像素的计算的颜色值是C,但不限于C。此外,虽然为了解释的方便起见,将第一像素组922的像素的颜色值表示为C,但是第一像素组922的像素的颜色值可具有不同的值。
因此,GPU 410可将在第二图像的颜色缓冲区910中被确定为任意值#的每个第二像素914的预先确定或设置的颜色值改变为通过渲染计算的相应的计算的颜色值C。此外,基于各个C并基于与位于和第二像素组924相同的位置的像素对应的颜色缓冲区910的像素组916的各个预先确定或设置的R颜色值,第二像素组924的每个像素的各个预先确定或设置的颜色值R可被改变为各个“A”,从而可获得第二图像的完成的颜色缓冲区930,其中,各个A是作为渲染的结果而计算的第二像素组924的每个像素的计算的颜色值。例如GPU 410可计算各个的颜色值R和各个颜色值C的各个的平均值A,并将像素组916的颜色值从C改变为平均值A。在图9中,虽然为了解释的方便起见,将改变的颜色值表示为A,但是颜色值可具有不同的值。
图10是示出根据一个或多个实施例的仅作为示例的装置400可对具有双眼视差或视点视差的第一图像和第二图像执行渲染的方法的流程图。
在此示例中,由于通过图4的装置400的操作解释了图10所示的方法,因此,省略仅再次作为示例的关于装置400的操作的重复描述。
在操作S1010,装置400可对第一图像执行渲染。根据实施例,装置400可对第一图像执行渲染以产生第一图像的深度缓冲区。此外,根据实施例,装置400可对第一图像执行渲染以产生第一图像的颜色缓冲区。装置400可将第一图像的深度缓冲区和颜色缓冲区存储在内部存储器中。
在操作S1020,装置400可基于第一图像的深度缓冲区,分别确定第二图像的与第一图像的像素相应的第一像素,并可产生遮挡图。换言之,装置400可例如基于第一图像的深度缓冲区,确定第二图像的与第一图像的像素对应的一些像素(即,第一像素),以产生将第二图像的第一像素与第二图像的一些其它或其余像素(即,第二像素)进行区分的遮挡图。根据实施例,装置400可在产生的遮挡图中,将第二图像的第一像素设置为“0”值,将第二图像的第二像素设置为“1”值,以在第二图像的第一像素与第二像素之间进行区分。然而,“0”值和“1”值仅是示例,遮挡图可包括除“0”值或“1”值之外的值。
此外,根据实施例,装置400可基于第一图像的颜色缓冲区,将第二图像的每个第一像素的颜色值确定为第一图像的每个所述像素的颜色值,将第二图像的每个第二像素的颜色值确定为任意值,以产生第二图像的颜色缓冲区。此外,装置400可通过从第二图像的颜色缓冲区识别确定为任意值的第二图像的第二像素,来产生遮挡图。
根据实施例,装置400可将产生的第二图像的遮挡图或颜色缓冲区存储在内部存储器中。
在操作S1030,装置400可基于遮挡图选择并渲染第二图像的第二像素。换言之,装置400可基于遮挡图,选择并渲染第二图像的与第一图像的像素不相应的第二像素。更具体地讲,由于在遮挡图中第二图像的与第一图像的像素相应的第一像素不同于第二图像的与第一图像的像素不相应的第二像素,因此,装置400可不对第二图像的第一像素执行光栅化,并根据遮挡图对第二图像的第二像素执行光栅化。
除针对第二图像的第二像素的光栅化之外,装置400还可对第二图像的第二像素执行另外的计算(诸如,像素着色),并因此计算针对第二图像的每个第二像素的各自的颜色值。因此,装置400可基于第二图像的每个第二像素的新计算的各自的颜色值修改具有针对第二图像的第二像素预先确定或设置的颜色值的第二图像的预先产生的颜色缓冲区。换言之,装置400可将例如基于第一图像的渲染在第二图像的颜色缓冲区中确定的预先确定或设置的任意值改变为由第二图像的渲染产生的第二图像的每个第二像素的分别计算的颜色值。
因此,装置400可通过不对第二图像的所有像素执行渲染而是选择并渲染第二图像的与第一图像的像素不相应的第二像素,来完成第二图像的颜色缓冲区。根据实施例,装置400可通过完成的第二图像的颜色缓冲区来输出第二图像。
图11是根据一个或多个实施例的装置1100的框图。
参照图11,装置1100可包括GPU 1110、存储器1120和总线1130,例如,要注意的是,还可包括除所示的元件之外的元件。
根据实施例,GPU 1110可对第一图像执行渲染。根据实施例,GPU 1110可对第一图像执行渲染以产生第一图像的深度缓冲区1122。第一图像的深度缓冲区1122可包括第一图像的每个像素的深度值。此外,根据实施例,GPU1110可对第一图像执行渲染以产生第一图像的颜色缓冲区1124。第一图像的颜色缓冲区1124可包括第一图像的每个像素的颜色值。
根据实施例,存储器1120可存储作为对第一图像执行渲染的结果而产生的第一图像的深度缓冲区1122。此外,根据实施例,存储器1120可存储作为对第一图像执行渲染的结果而产生的第一图像的颜色缓冲区1124。
根据实施例,GPU 1110可包括着色器1112和Z测试器1114,例如,要注意的是,还可包括除所示的着色器1112和Z测试器1114之外的元件。
根据实施例,着色器1112可基于存储在存储器1120中的第一图像的深度缓冲区1122,分别确定与第一图像的像素相应的第二图像的第一像素。此外,根据实施例,着色器1112可基于第一图像的深度缓冲区1122,将第二图像的每个第一像素的深度值确定为第一图像的每个像素的深度值,将第二图像的每个第二像素的深度值确定为预定值,以产生第二图像的深度缓冲区1126。预定值可以是由用户预先设置的明确的值(即,初始值)。
同样地,着色器1112可基于第一图像的颜色缓冲区1124,将第二图像的每个第一像素的颜色值确定为第一图像的每个像素的颜色值,将第二图像的每个第二像素的颜色值确定为任意值,以产生第二图像的颜色缓冲区1128。任意值可以是由用户预先设置的值。
图12示出根据一个或多个实施例的作为示例的着色器1112产生第二图像的深度缓冲区的方法。
图12的左部(由参考标号1210指示的区域)示出在第一视点1212和第二视点1214通过屏幕1216观看对象1218的操作。因此,GPU 1110可基于第一视点1212和第二视点1214中的每个视点对双眼视差图像或视点视差图像执行渲染。
根据实施例,GPU 1110可基于第一视点1212对第一图像1220执行渲染。因此,GPU1110可对第一图像1220执行渲染,以产生指示对象1218的第一图像1220的深度缓冲区或颜色缓冲区。换言之,GPU 1110可计算指示对象1218的每个像素1222的深度值和颜色值。
着色器1112可基于第一图像1120的深度缓冲区执行重投影。换言之,着色器1112可基于像素1222的深度值确定与像素1222相应的第二图像1230的第一像素1232。因此,着色器1112可将与第二图像1230的第一像素1232位于相同位置的像素1242设置为第一图像1220的每个像素1222的各个深度值“z”,将与第二图像1230的第二像素1234位于相同位置的像素1244设置为“0”值,以产生第二图像1230的深度缓冲区1240。在图12中,虽然为了解释的方便起见,将第一像素1242的深度值表示为“z”,但是第一像素1242的各个深度值可具有不同的值。此外,基于第一图像1220的颜色缓冲区,着色器1212可将第二图像1230的每个第一像素1232的颜色值确定为第一图像1220的每个像素1222的颜色值,并将第二图像1230的每个第二像素1234的颜色值确定为任意值,以产生第二图像1230的颜色缓冲区。
因此,根据实施例,图11的存储器1120可填充并存储基于第一图像的渲染的第二图像的深度缓冲区1126和第二图像的颜色缓冲区1128。
根据实施例,GPU 1110可基于存储在存储器1120中的第二图像的深度缓冲区1126或第二图像的颜色缓冲区1128,对第二图像的像素执行选择性的渲染。根据实施例,GPU1110可基于存储在存储器1120中的第二图像的深度缓冲区1126,选择并渲染与第一图像的像素不相应的第二图像的第二像素。更具体地讲,根据实施例,Z测试器1114可通过使用存储在存储器1120中的第二图像的深度缓冲区1126,对第二图像的与第一图像的像素相应的第一像素以及第二图像的与第一图像的像素不相应的第二像素执行Z测试(即,深度测试)。在存储在存储器1120中的第二图像的深度缓冲区1126中,第二图像的第一像素具有第一图像的像素的各个深度值因而不会通过Z测试。结果,GPU 1110在Z测试之后的处理中不对第二图像的第一像素执行计算。此外,在存储在存储器1120中的第二图像的深度缓冲区1126中,第二图像的第二像素具有被设置为通过Z测试的预定值。因此,GPU 1110可在Z测试之后的处理中对第二图像的第二像素执行计算。根据实施例,GPU 1110可对已经通过Z测试的第二图像的第二像素执行像素着色,结果,GPU 1110可针对第二图像的每个第二像素计算颜色值。因此,GPU 1110可读取预先存储在存储器1120中的第二图像的颜色缓冲区1128,并基于计算的第二图像的每个第二像素的颜色值修改读取的第二图像的颜色缓冲区。换言之,GPU 1110可将在第二图像的颜色缓冲区1128中预先确定或设置的任意值改变为被计算为第二图像的选择性渲染的结果的分别计算的第二图像的每个第二像素的颜色值。
换言之,GPU 1110可通过不对第二图像的所有像素执行渲染而是选择并渲染第二图像的与第一图像的像素不相应的第二像素,来完成或完结第二图像的颜色缓冲区。根据实施例,装置1110可通过完成的第二图像的颜色缓冲区来输出第二图像。
图13示出根据一个或多个实施例的仅作为示例的GPU 1110可修改第二图像的颜色缓冲的方法的示例。
根据实施例,着色器1112可确定第二图像的与第一图像的像素相应的第一像素1312。基于第一图像的颜色缓冲,着色器1112可将第二图像的每个第一像素1312各自的颜色值确定或设置为与第一图像的每个像素的颜色值相同或匹配,并将第二图像的每个第二像素1314的颜色值确定或设置为任意值,以基于第一图像的渲染产生第二图像的颜色缓冲区1310。在图13的第二图像的颜色缓冲区1310中,每个第一像素1312的各个颜色值由“R”表示,每个第二像素1314的颜色值由作为任意值的“#”表示。然而,颜色值不限于R或#。此外,在图13中,虽然为了解释的方便起见,将第一像素1312的颜色值表示为R,但是第一像素1312的颜色值可具有不同的值。
根据实施例,Z测试器1114可基于之前确定或设置的第二图像的深度缓冲区,针对第二图像的第一像素1322和第二图像的第二像素1324执行Z测试。在图13中,第二图像的第二像素1314的位置与第二图像的第二像素1324的位置相同。此外,GPU 1110可对已经通过Z测试的第二图像的第二像素1324执行另外的计算(诸如,像素着色),结果,GPU 1110可计算第二图像的每个第二像素1324的各自的颜色值。在图13中,分别计算的第二图像的每个第二像素1324的颜色值由“C”表示。此外,虽然为了解释的方便起见,将计算的第二像素1324的颜色值表示为“C”,但是计算的第二像素1324的颜色值可具有不同的值。
因此,GPU 1110可将基于第一图像的渲染的在第二图像的颜色缓冲区1310中被预先确定或设置为任意值#的每个第二像素1314的颜色值重新确定为通过第二图像的渲染计算的分别计算的颜色值“C”,以产生第二图像的完成的颜色缓冲区1320。
图14是示出根据一个或多个实施例的仅作为示例的装置1100可对具有双眼视差或视点视差的第一图像和第二图像执行渲染的方法的流程图。
在此示例中,由于通过图11的装置1100的操作解释了图14所示的方法,因此,省略仅再次作为示例的关于装置1100的操作的重复描述。
在操作S1410,装置1100可对第一图像执行渲染。根据实施例,装置1100可对第一图像执行渲染以产生第一图像的深度缓冲区。此外,根据实施例,装置1100可对第一图像执行渲染以产生第一图像的颜色缓冲区。装置1100可将第一图像深度缓冲区和第一图像的颜色缓冲区存储在内部存储器中。
在操作S1420,装置1100可基于第一图像的深度缓冲区,确定第二图像的与第一图像的像素相应的第一像素,并可产生第二图像的深度缓冲区。换言之,装置1100可基于第一图像的深度缓冲区,将第二图像的每个第一像素的深度值确定为第一图像的每个相应像素的深度值,将第二图像的每个第二像素的深度值确定为预定值,以产生第二图像的深度缓冲区。预定值可以是由用户预先设置的明确的值(即,初始值)。
此外,装置1100可基于第一图像的颜色缓冲区,将第二图像的每个第一像素的颜色值确定为第一图像的每个相应像素的颜色值,将第二图像的每个第二像素的颜色值确定为任意值,以产生第二图像的颜色缓冲区1128。任意值可以是由用户预先设置的值。装置1100可将第二图像的深度缓冲区和第二图像的颜色缓冲区存储在内部存储器中。
在操作S1430,装置1100可基于第二图像的深度缓冲区,选择并渲染第二图像的第二像素。根据实施例,装置1100可通过使用第二图像的深度缓冲区,对第二图像的与第一图像的像素相应的第一像素和第二图像的与第一图像的像素不相应的第二像素执行Z测试(即,深度测试)。在第二图像的深度缓冲区中,第二图像的第一像素具有第一图像的像素的深度值因而不能通过Z测试。结果,装置1100在Z测试之后的处理中不对第二图像的第一像素执行计算。此外,在第二图像的深度缓冲区中,第二图像的第二像素具有预定值(诸如,初始值)因而能通过Z测试。因此,装置1100可在Z测试之后的处理中对第二图像的第二像素连续地执行计算。根据实施例,装置1100可对第二图像的已经通过Z测试的第二像素执行像素着色,结果,装置1100可计算第二图像的每个第二像素的颜色值。因此,装置1100可通过第二图像的每个第二像素的颜色值修改之前产生的第二图像的颜色缓冲区。换言之,装置可将在第二图像的颜色缓冲区中确定的任意值改变为被计算为第二图像的渲染结果的分别计算的第二图像的每个第二像素的颜色值。
因此,装置1100可选择并渲染第二图像的第二像素,并将在预先产生的第二图像的颜色缓冲区中确定的任意值改变为被计算为第二图像的渲染结果的分别计算的第二图像的每个第二像素的颜色值。换言之,装置1100可通过不对第二图像的所有像素执行渲染而是选择并渲染第二图像的与第一图像的像素不相应的第二像素,来完成或完结第二图像的颜色缓冲区。根据实施例,装置1100可通过完成的第二图像的颜色缓冲区来输出第二图像。
图15是根据一个或多个实施例的装置1500的框图。
装置1500可包括应用1510、装置驱动器1520、GPU 1530和存储器1540,例如,要注意的是,还可包括除所示的元件之外的元件。
根据实施例,应用1510可通过应用程序接口(API)向装置驱动器1520提供与对双眼视差图像或视点视差图像进行渲染或基于图块的渲染相关的信息。仅作为示例,应用1510可通过API标准(诸如,开放图形库、嵌入式系统开放图形库或Direct 3)向装置驱动器1520提供与对双眼视差图像或视点视差图像进行渲染或基于图块的渲染相关的信息。换言之,应用1510可通过API向装置驱动器1520提供与对具有双眼视差或视点视差的第一图像和第二图像进行渲染或基于图块的渲染相关的信息,以产生双眼视差图像或视点视差图像。此外,根据实施例,应用1510可通过API的扩展明确地向装置驱动器1520提供与对第一图像和第二图像中的每个图像进行渲染或基于图块的渲染相关的信息。
根据实施例,装置驱动器1520可对从应用1510接收的API进行分析,将API转换为可由GPU 1530处理的命令,并将命令发送到GPU 1530。根据实施例,装置驱动器1520可将针对第一图像和第二图像的至少一个绘制命令发送到GPU 1530。绘制命令是指示哪些对象将被渲染在预定图像或帧上的命令。根据实施例,绘制命令可被表示为绘制调用。例如,绘制命令可以是用于在图像或帧中绘制预定数量的三角形和矩形的命令。
根据实施例,装置驱动器1520可将与绘制命令相关的状态信息以及绘制命令发送到GPU 1530。状态信息指示正绑定到绘制命令的状态。此外,状态信息可表示渲染预定对象所需的信息。例如,状态信息可包括纹理类型,相机视点信息和源数据(像关于预定对象的坐标信息),状态信息可被表示为状态。根据实施例,装置驱动器1520可将针对第一图像和第二图像中的每个图像的一个绘制命令和状态信息发送到GPU 1530。由于第一图像和第二图像是从不同视点观看的相同对象的图像,因此可提供关于第一图像和第二图像的状态信息,从而仅相机视点信息针对第一图像和第二图像中的每个图像被不同地呈现,针对第一图像和第二图像中的每个图像的其它信息可被同样地呈现。换言之,装置驱动器1520可将针对第一图像和第二图像的一对状态信息和一个绘制命令发送到GPU 1530。
根据实施例,GPU 1530可基于从装置驱动器1520接收的绘制命令和关于双眼视差图像或视点视差图像的状态信息,对具有双眼视差或视点视差的第一图像和第二图像执行渲染。此外,根据实施例,GPU 1530可基于从装置驱动器1520接收的绘制命令和关于双眼视差图像或视点视差图像的状态信息,对第一图像和第二图像执行基于图块的渲染。
针对图15的GPU 1530和存储器1540的另外的描述与针对图1的GPU110和存储器120、图4的GPU 410和存储器420和/或图11的GPU 1110和存储器1120的任意以上描述相似,因此,这里省略针对GPU 1530和存储器1540的这样的类似可适用重复描述。
图16是根据一个或多个实施例的装置1600的框图。
装置1600可包括应用1610、装置驱动器1620、GPU 1630和存储器1640,例如,要注意的是,还可包括除所示的元件之外的元件。
GPU 1630可执行基于图块的渲染。基于图块的渲染意思指图像的每个帧被划分或分割为多个图块,并且渲染以图块为单位来执行。在基于图块的架构中,与当以像素为单位处理帧时相比,可减小计算的数量。因此,这样的基于图块的渲染可以是可被用于相对低处理性能的移动装置(或嵌入式装置)中(像智能电话或平板装置,仅作为示例实施例)的图形渲染方法。以下,GPU 1630执行渲染的表述被理解为指GPU 1630执行基于图块的渲染。
根据实施例,GPU 1630可包括调度器1632、图形管线1634和图块缓冲器1636,例如,要注意的是,还可包括除所示的调度器1632、图形管线1634和图块缓冲器1636之外的元件。
根据实施例,调度器1632可从装置驱动器1620接收至少一个绘制命令和针对具有双眼视差或视点视差的第一图像和第二图像的状态信息。
根据实施例,调度器1632可将至少一个绘制命令划分为具有预定单位的批处理(batch,程序组),并将所述批处理顺序分配到图形管线1634。例如,调度器1632可将针对100个图元(primitive)的一百个绘制命令划分为若干程序组(若干批处理),每个程序组(批处理)具有针对二十个图元的二十个绘制命令,并将一百个绘制命令作为五个批处理分配到图形管线1634。此外,根据实施例,当调度器1632将批处理分配到图形管线1634时,调度器1632可针对第一图像和第二图像中的每个将一个批处理分配到图形管线1634两次。换言之,当将若干批处理中的第一批处理分配到图形管线1634时,调度器1632可为第一图像将第一批处理分配到图形管线1634,然后可为第二图像将第一批处理分配到图形管线1634。
根据实施例,图形管线1634可根据分配的批处理,对第一图像和第二图像中的每个图像执行图块像素组合(tile binning,图块像素装箱)。图块像素组合可以是将第一图像和第二图像划分为预定数量的图块并产生指示是否针对第一图像和第二图像的每个图块执行至少一个绘制命令的像素组合信息的处理。更具体地讲,图块像素组合用于将用于体现第一图像的第一帧和用于体现第二图像的第二帧中的每个帧划分为预定数量的图块。例如,100×100像素的第一帧被划分为十六个图块时,一个图块的大小是25×25像素。因此,在以下描述中,将第一图像划分为预定数量的图块被认为等同于将用于体现第一图像的第一帧划分为预定数量的图块,第一图像的图块的表述被认为与包括在用于体现第一图像的第一帧中的图块相同。此外,图块像素组合可以是产生图块列表的处理,所述图块列表指示在第一图像和第二图像的哪个图块中包括形成2D或3D对象的顶点、图元或批处理。此外,图块像素组合可以是获得关于包括在第一图像和第二图像的每个图块中的顶点或图元的信息的处理。关于顶点或图元的信息的示例可以是关于标识符、位置、颜色以及顶点或图元的纹理的信息。
根据实施例,图形管线1634可根据分配的批处理和与分配的批处理相关的状态信息对第一图像和第二图像中的每个执行图块像素组合。根据实施例,图形管线1634可接收分配的批处理中的第一批处理以及与第一批处理相关的状态信息。由于与第一批处理相关的状态信息包括第一图像和第二图像中的每个图像的相机视点信息,因此,即使当第一批处理仅被分配一次时,图形管线1634也可根据第一批处理和与第一批处理相关的状态信息,执行针对第一图像的图块像素组合和针对第二图像的图块像素组合中的每个图块像素组合。因此,根据实施例,图形管线1634可针对第一图像和第二图像中的每个图像,被分配第一批处理和与第一批处理相关的状态信息两次,图形管线1634可执行针对第一图像的图块像素组合和针对第二图像的图块像素组合中的每个图块像素组合。
图形管线1634可执行图块像素组合以产生指示在第一图像和第二图像的哪个图块中执行至少一个绘制命令的图块像素组合信息。根据实施例,图形管线1634可存储在图块缓冲器1636或存储器1649中作为图像像素组合的结果而生成的像素组合信息。
图形管线1634可基于产生的像素组合信息对第一图像的每个图块执行渲染。
根据实施例,图形管线1634可对作为第一图像的图块的第一至第n图块顺序执行渲染,并可产生第一至第n图块中的每个图块的深度缓冲区或颜色缓冲区。此外,图块缓冲区1636可在允许的能力范围内临时存储至少一个顺序产生的图块的深度缓冲区或颜色缓冲区。临时存储的至少一个深度缓冲区或颜色缓冲区可根据刷入命令(flush command)被存储在存储器1640中。因此,作为第一图像的图块的第一至第n图块中的每个图块的深度缓冲区可作为第一图像的深度缓冲区被存储在存储器1640中。作为第一图像的图块的第一至第n图块中的每个图块的颜色缓冲区可作为第一图像的颜色缓冲区被存储在存储器1640中。
此外,如上所述,图形管线1634可基于存储在存储器1640中的第一图像的深度缓冲区和颜色缓冲区执行重投影,以产生第二图像的深度缓冲区和颜色缓冲区。此外,如上所述,图形管线1634可基于存储在存储器1640中的第一图像的深度缓冲区和颜色缓冲区执行重投影,以产生第二图像的颜色缓冲区和遮挡图。
根据实施例,图形管线1634可对第一图像的图块中的第一图块执行渲染以产生第一图块的深度缓冲区和颜色缓冲区。图块缓冲器1636可存储第一图块的深度缓冲区和颜色缓冲区。图形管线1634可基于存储在图块缓冲器1636中的第一图块的深度缓冲区确定第二图像的与第一图块的像素相应的第一第一像素。此外,图形管线1634可对第一图像的图块中的第二图块执行渲染,以产生第二图块的深度缓冲区和颜色缓冲区。图块缓冲器1636可存储第二图块的深度缓冲区和颜色缓冲区。图形管线1634可基于存储在图块缓冲器1636中的第二图块的深度缓冲区,确定第二图像的与第二图块的像素相应的第二第一像素。同样地,图形管线1634可基于第n图块的深度缓冲区,对第一图像的图块中的第n图块执行渲染,并确定第二图像的与第n图块的像素相应的第n第一像素。因此,图形管线1634可产生将第二图像的第一第一像素至第n第一像素与第二图像的其余像素(即,第二像素)进行区分的遮挡图,并可在存储器1640中存储产生的遮挡图。此外,图形管线1634可基于第一至第n图块的颜色缓冲区,将第二图像的第一第一像素至第n第一像素中的每个第一像素的颜色值确定为第一至第n图块中的每个像素的颜色值,并将第二图像的每个第二像素的颜色值确定为任意值,从而产生第二图像的颜色缓冲区。同样地,图形管线1634可基于第一至第n图块的深度缓冲区,将第二图像的第一第一像素至第n第一像素的每个第一像素的深度值确定为第一至第n图块中的每个像素的深度值,将第二图像的每个第二像素的深度值确定为预定值,从而产生第二图像的深度缓冲区。图形管线1634可将第二图像的颜色缓冲区和深度缓冲区存储在存储器1640中。
根据实施例,图形管线1634可基于存储在存储器1640中的第二图像的深度缓冲区和颜色缓冲区,选择并渲染第二图像的与第一图像的像素不对应的第二像素。换言之,根据实施例,图形管线1634可从存储器1640顺序读取包括在第二图像的深度缓冲区和颜色缓冲区中的第二图像的第一至第n图块的深度缓冲区和颜色缓冲区,并对读取的深度缓冲区和颜色缓冲区执行图块渲染。图形管线1634可从存储器1640读取第二图像的第n图块的深度缓冲区和颜色缓冲区,并在图块缓冲器1636中存储读取的深度缓冲区和读取的颜色缓冲区。此外,图形管线1634可基于存储在图块缓冲器1636中的第n图块的深度缓冲区和颜色缓冲区,选择并渲染第二图像的与第一图像的像素不相应的第n图块的像素。作为第二图像的渲染的结果确定的第n图块的像素的颜色值可被存储在第n图块的颜色缓冲区中,第n图块的颜色缓冲区可被存储在存储器1640中。另外,根据实施例,图形管线1634可基于存储在存储器1640中的遮挡图和颜色缓冲区选择并渲染第二图像的与第一图像的像素不对应的第二像素。换句话说,根据实施例,图形管线1634可基于遮挡图从存储器1640顺序读取第二图像的颜色缓冲区中包括的第二图像的第一图块的颜色缓冲区至第n图块的颜色缓冲区,并对读取的颜色缓冲执行图块渲染。
根据实施例,调度器1632可对第二图像的第一至第n图块中的每个图块执行调度,图形管线1634可根据调度对第二图像的第一至第n图块执行图块渲染。
根据实施例,调度器1632可基于遮挡图确定是否对第二图像的第一至第n图块中的每个图块执行调度。此外,图形管线1634可对将被调度的图块执行图块渲染。换言之,调度器1632可省略对基于遮挡图确定的第二图像的预定图块的调度,结果,图形管线1634可省略对预定图块的渲染。根据实施例,调度器1632可基于遮挡图从第二图像的第一图块的像素中检查是否存在与第一图像的像素相应的像素,如果第一图块中不存在与第一图像的像素相应的像素,则可省略对第二图像的第一图块的调度。因此,图形管线1634可省略对第二图像的第一图块的渲染。此外,根据实施例,当产生遮挡图时,图形管线1634可产生与第一像素相应的第二图像的每个图块的像素的数量,作为遮挡图的头信息。因此,调度器1632可检查遮挡图的头信息,并可基于检查结果确定是否对第二图像的每个图块执行调度。
针对应用1610和装置驱动器1620的描述分别与针对图15的应用1510和装置驱动器1520的以上描述相似,因此,省略它们的这样的可适用的重复描述。此外,针对GPU 1630和存储器1640的另外描述分别与针对图15的GPU 1530和存储器1540的描述相似,因此,省略它们的这样的类似可适用重复描述。
图17是根据一个或多个实施例的装置1700的框图。
装置1700可包括应用1710、装置驱动器1720、GPU 1730和存储器1740,例如,要注意的是,还可包括除所示的元件之外的元件。
根据实施例,GPU 1730可包括调度器1732、多个图形管线1734和图块缓冲器1736,例如,要注意的是,还可包括除所示的调度器1732、图形管线1734和图块缓冲器1736之外的元件。
根据实施例,调度器1732可从装置驱动器1720接收至少一个绘制命令和针对具有双眼视差或视点视差的第一图像和第二图像的状态信息。
根据实施例,调度器1732可将至少一个绘制命令划分为具有预定单位的批处理,并分别将批处理分配到多个图形管线1734。此外,根据实施例,当调度器1732将批处理分配到多个图形管线1734时,调度器1732可针对第一图像和第二图像中的每一个将一个批处理分配到一个图形管线两次。换言之,当将批处理中的第一批处理分配到多个图形管线1734中的第一图形管线时,调度器1732可为第一图像将第一批处理分配到第一图形管线,然后可为第二图像将第一批处理分配到第一图形管线。
根据实施例,多个图形管线1734可根据分配的批处理,对第一图像和第二图像中的每个图像执行图块像素组合。
根据实施例,多个图形管线1734可根据分配的批处理和与分配的批处理相关的状态信息执行图块像素组合。根据实施例,图形管线1734的第一图形管线可接收分配的批处理中的第一批处理以及与第一批处理相关的状态信息。由于与第一批处理相关的状态信息包括第一图像和第二图像中的每个图像的相机视点信息,因此,即使当第一批处理仅被分配一次时,第一图形管线也可根据第一批处理和与第一批处理相关的状态信息,执行针对第一图像的图块像素组合和针对第二图像的图块像素组合中的每个图块像素组合。另外,根据实施例,第一图形管线可针对第一图像和第二图像中的每个图像,被分配第一批处理和与第一批处理相关的状态信息两次,第一图形管线可执行针对第一图像的图块像素组合和针对第二图像的图块像素组合中的每个图块像素组合。
针对应用1710、装置驱动器1720、GPU 1730和存储器1740的进一步描述分别与针对图16的应用1610、装置驱动器1620、GPU 1630和存储器1640的描述相似,因此,省略它们的这样的类似可适用的重复描述。此外,针对调度器1732和图块缓冲器1736的进一步描述分别与针对图16的调度器1632和图块缓冲器1636的以上描述相似,因此,省略它们的这样的类似可适用重复描述。针对多个图形管线1734中的每个图形管线的描述与针对图16的图形管线1634的以上描述相似,因此,省略它们的这样的类似可适用重复描述。
图18示出根据一个或多个实施例仅作为示例的GPU 1730可执行图块像素组合的方法。
根据实施例,调度器1732可将绘制命令1810划分为多个批处理1820。此外,调度器1732可将多个批处理1820作为针对第一图像的多个批处理1830分配到多个图形管线1734,并将多个批处理1820作为针对第二图像的多个批处理1840分配到多个图形管线1734。换言之,调度器1732可两次将批处理1820分配到图形管线1734。
多个图形管线1734可基于分配的批处理和与分配的批处理相关的状态信息对第一图像和第二图像中的每个执行图块像素组合。
可选地,如图18中由虚线箭头所指示的,调度器1732可将批处理1820分配到多个图形管线1734仅仅一次。此外,调度器1732可在图块缓冲器1736中存储与批处理1820相关的状态信息。因此,多个图形管线1734中的每个图形管线可根据存储在图块缓冲器1736和批处理1820中的状态信息,执行针对第一图像的图块像素组合和针对第二图像的图块像素组合。
因此,由于分配到图形管线的批处理以相同的图元为目标,因此,图形管线可基于分配的批处理,针对第一图像和第二图像中的每个对相同图元的目标执行图块像素组合,这可减少对存储关于图元信息的内部存储器的访问。
多个图形管线1734可执行图块像素组合以产生指示在第一图像和第二图像的哪个图块中执行至少一个绘制命令的像素组合信息。根据实施例,多个图形管线1734可将作为图块像素组合的结果生成的像素组合信息存储到图块缓冲器1736或存储器1740。
图19是示出根据一个或多个实施例的仅作为示例的装置1500、1600或1700可对具有双眼视差或视点视差的第一图像和第二图像执行图块渲染的方法的流程图。
在此示例中,由于通过装置1500、1600或1700的操作解释了图19所示的方法,因此,省略仅再次作为示例的关于装置1500、1600或1700的操作的重复描述。
在操作S1910,装置1500、1600或1700可基于至少一个绘制命令对具有双眼视差或视点视差的第一图像和第二图像中的每个图像执行图块像素组合。更具体地讲,装置1500、1600或1700可基于至少一个绘制命令和与至少一个绘制命令相关的状态信息执行图块像素组合。以下参照图20详细描述关于执行图块像素组合的实施例。
图20是示出根据一个或多个实施例的图19的操作S1910的操作的流程图。
在操作S2010,仅作为示例,装置1700可将至少一个绘制命令划分为均具有预定单位的批处理,并分别将划分的批处理分配到装置1700中的多个图形管线1700。此外,根据实施例,装置1700可针对第一图像和第二图像中的每个将批处理分配到各个图形管线两次。换言之,当将批处理中的第一批处理分配到多个图形管线中的第一图形管线时,装置1700可为第一图像将第一批处理分配到第一图形管线,然后可为第二图像将第一批处理分配到第一图形管线。
在操作S2020,根据实施例,装置1700可基于分配的批处理和与批处理相应的状态信息,对第一图像和第二图像中的每个图像执行图块像素组合。具体地讲,装置1700中的多个图形管线可被分配批处理和与批处理相关的状态信息两次。因此,多个图形管线可分别执行针对第一图像的图块像素组合和针对第二图像的图块像素组合。此外,由于与批处理相关的状态信息包括第一图像和第二图像中的每个图像的相机视点信息,因此,即使当批处理和状态信息仅被分配一次时,多个图形管线也可执行针对第一图像的图块像素组合和针对第二图像的图块像素组合。
在图19的操作S1920中,仅作为示例,装置1500、1600或1700中的任意装置可对第一图像的图块执行渲染。换言之,在此示例中,装置1500、1600或1700中的任意装置可对作为第一图像的图块的第一至第n图块顺序地执行渲染,并可产生第一至第n图块中的每个图块的的深度缓冲区和颜色缓冲区。此外,根据实施例,这样的装置1500、1600或1700可在允许能力的范围内在内部缓冲器中临时存储至少一个顺序产生的图块的深度缓冲区或颜色缓冲区。临时存储在内部缓冲器中的至少一个深度缓冲区或颜色缓冲区可根据刷入命令被存储在这样的装置1500、1600或1700中的内部存储器中。因此,作为第一图像的图块的第一至第n图块中的每个图块的深度缓冲区可作为第一图像的深度缓冲区被存储在这样的装置1500、1600或1700中的内部存储器中。作为第一图像的图块的第一至第n图块中的每个图块的颜色缓冲区可作为第一图像的颜色缓冲区被存储在这样的装置1500、1600或1700中的内部存储器中。
在操作S1930,示例装置1500、1600或1700可基于第一图像的每个图块的深度缓冲区,确定第二图像的与第一图像的图块的像素相应的示例第一像素,并对选择的像素执行重投影。更具体地讲,这样的装置1500、1600或1700可基于第一图像的图块中的第一图块的深度缓冲区,确定第二图像的与图块的第一图块的像素相应的第一第一像素。此外,这样的装置1500、1600或1700可基于第一图像中的图块的第二图块的深度缓冲区,确定与图块的第二图块的像素相应的第二图像的第二第一像素。同样地,这样的装置1500、1600或1700可基于第一图像中的图块的第n图块的深度缓冲区,确定第二图像的与图块的第n图块的像素相应的第n第一像素。因此,这样的装置1500、1600或1700可产生将第二图像的第一第一像素至第n第一像素与第二图像的剩余像素(即,第二像素)进行区分的遮挡图,并可在内部存储器中存储产生的遮挡图。此外,这样的装置1500、1600或1700可基于第一图像的第一至第n图块的颜色缓冲区,将第二图像的第一第一像素至第n第一像素中的每个第一像素的颜色值确定为第一图像的第一至第n图块的每个像素的颜色值,将第二图像的每个第二像素的颜色值确定为任意值,从而产生第二图像的颜色缓冲区。同样地,这样的装置1500、1600或1700可基于第一至第n图块的深度缓冲区,将第二图像的第一第一像素至第n第一像素的每个第一像素的深度值确定为第一图像的第一至第n图块的每个像素的深度值,将第二图像的每个第二像素的深度值确定为预定值,从而产生第二图像的深度缓冲区。这样的装置1500、1600或1700可将第二图像的颜色缓冲区和深度缓冲区存储在内部存储器中。
在操作S1940,示例装置1500、1600或1700可基于重投影选择并渲染第二图像的第二像素。根据实施例,这样的装置1500、1600或1700可基于预先存储的第二图像的深度缓冲区和颜色缓冲区,选择并渲染第二图像的与第一图像的像素不相应的第二像素。换言之,根据实施例,这样的装置1500、1600或1700可从内部存储器顺序读取包括在第二图像的深度缓冲区和颜色缓冲区中的第二图像的第一至第n图块的深度缓冲区和颜色缓冲区,并对针对第二像素的读取的深度缓冲区和颜色缓冲区执行图块渲染。例如,这样的装置1500、1600或1700可从内部存储器读取第二图像的第n图块的深度缓冲区和颜色缓冲区,并例如在不渲染的情况下在内部缓冲器中存储读取的深度缓冲区和读取的颜色缓冲区,而这样的装置1500、1600或1700可随后选择并渲染第二图像的与第一图像的像素不相应的第n图块的像素。作为渲染结果确定的第n图块的第二像素的分别计算的颜色值可在第n图块的颜色缓冲区中被存储(或更新),第n图块的颜色缓冲之后可被存储在内部存储器中。此外,根据实施例,这样的装置1500、1600或1700可基于预先存储在内部存储器中的遮挡图和颜色缓冲区选择并渲染第二图像的与第一图像的像素不对应的第二像素。换句话说,根据实施例,这样的装置1500、1600或1700可基于遮挡图从内部存储器顺序读取包括在第二图像的颜色缓冲区中的第二图像的第一至第n图块的颜色缓冲区,并对读取的颜色缓冲区执行图块渲染。
此外,根据实施例,示例装置1500、1600或1700可对第二图像的第一至第n图块中的每个图块执行调度,这样的装置1500、1600或1700可根据调度对第二图像的第一至第n图块执行图块渲染。
根据实施例,示例装置1500、1600或1700可基于遮挡图确定是否对第二图像的第一至第n图块中的每个图块执行调度。此外,这样的装置1500、1600或1700可对将被调度的图块执行图块渲染。换言之,这样的装置1500、1600或1700可省略对根据遮挡图确定的第二图像的预定图块的调度,结果,这样的装置1500、1600或1700可省略对预定图块的渲染。根据实施例,这样的装置1500、1600或1700可基于遮挡图从第二图像的第一图块的像素中检查是否存在与第一图像的像素对应的像素,如果第一图块中不存在与第一图像的像素对应的这样的像素,则可省略对第一图块的调度。因此,这样的装置1500、1600或1700可省略对第二图像的第一图块的渲染。此外,根据实施例,当产生遮挡图时,示例装置1500、1600或1700可将第二图像的与第一像素相应的各个图块的像素的数量作为遮挡图的头信息产生。因此,这样的装置1500、1600或1700可检查遮挡图的头信息,并可基于检查结果确定是否对第二图像的每个图块执行调度。
图21是根据一个或多个实施例的装置2100的框图。
参照图21,装置2100可包括GPU 2150、中央处理器(CPU)2140、存储器2160、总线2170、显示单元2110、输入单元2120和通信单元2130,例如,要注意的是,还可包括除所示的元件之外的元件。
CPU 2140是控制装置2100的整体操作和功能的硬件。例如,CPU 2140可驱动操作系统(OS)、访问用于GPU 2150的图形应用程序接口(API)并运行GPU 2150的驱动器。此外,CPU 2140可运行存储在存储器2160中的各种应用,例如,网页浏览应用、游戏应用和视频应用。
显示单元2110是用于向用户显示各种信息(诸如,由装置2100处理的信息或将由装置2100处理的信息)的显示接口单元。显示单元2110可向用户显示用于视觉、直观提供由装置2100处理的信息的图形用户界面(GUI)。例如,显示单元2110可显示由GPU 2150处理的图形数据。显示单元2110可使用各种显示面板(例如,液晶显示器(LCD)、发光二极管(LED)和等离子体显示面板(PDP))来实现。
输入单元2120是用于从用户接收信息的输入接口单元。输入单元2120可以是触摸板、轨迹球、鼠标、键盘或游戏控制器。显示单元2110和输入单元2120可使用集成触摸屏的硬件来实现。
通信单元2130可包括移动通信模块,有线/无线局域网(LAN)模块、Wi-Fi模块、蓝牙模块和/或近场通信(NFC)模块。
针对图21的GPU 2150和存储器2160的进一步描述与针对图1的GPU110和存储器120、图4的GPU 410和存储器420、图11的GPU 1110和存储器1120、图15的GPU 1530和存储器1540、图16的GPU 1630和存储器1640或者图17的GPU 1730和存储器1740相似,因此,这里省略针对GPU 2150和存储器2160的这样的类似可适用的重复描述。
根据一个或多个实施例,在具有双眼视差或视点视差的第一图像和第二图像中,可识别被确定为与第一图像的图块相似或最相似的第二图像的图块。第一图像和第二图像的图块的渲染顺序还可被确定为使得彼此相似的第一图像的图块和第二图像的图块由相同的图形处理器渲染。由于彼此相似的第一图像的图块和第二图像的图块由相同的图形处理器渲染,因此,减少了对外部存储器的不必要访问,因此与由不同图形处理器渲染相似图块的产生的渲染操作相比,可获得更有效的渲染。
例如,通过硬件组件来实现图1、图4、图11、图14至图17和图21中示出的例如可执行这里针对图2至图3、图5至图10、图12至图13以及图18至图20描述的操作的设备、单元、模块、装置和其它组件。硬件组件的示例包括控制器、传感器、存储器、驱动器和本领域普通技术人员已知的任何其它电子组件。在一个示例中,通过一个或多个处理装置、处理器或计算机来实现硬件组件。通过一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元)、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或本领域普通技术人员已知的能够以限定的方式响应并执行指令以实现期望结果的任何其它装置或装置的组合来实现处理装置、处理器或计算机。在一个示例中,处理装置、处理器或计算机包括或连接到存储由处理装置、处理器或计算机执行的并可控制处理装置、处理器或计算机执行这里描述的一个或多个方法的计算机可读代码、指令或软件的一个或多个存储器。仅作为示例,由处理装置、处理器或计算机实现的硬件组件(例如,通过实施计算机执行代码、指令或软件,诸如操作系统(OS)和在OS上运行的一个或多个软件应用),可执行这里针对图2至图3、图5至图10、图12至图13以及图18至图20描述的操作。硬件组件还响应于指令或软件的执行来访问、操作、处理、创建并存储数据。为了简明,可在这里描述的示例的描述中使用单数术语“处理装置”、“处理器”或“计算机”,但是在其它示例中,使用多个处理装置、处理器或计算机,或者处理装置、处理器或计算机包括多个处理元件或多种类型的处理元件或者包括两者。在一个示例中,硬件组件包括多个处理器,在另一示例中,硬件组件包括处理器和控制器。硬件组件具有不同处理配置中的任何一个或多个,不同处理配置的示例包括单处理器、独立处理器、并行处理器、远程处理环境、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理和多指令多数据(MIMD)多处理。此外,在以上各种被提及的设备附图中示出的连接线或连接器意图表示各种硬件元件之间的示例功能关系和/或物理或逻辑连接以及许多可选的或另外的功能关系,物理连接或逻辑连接可在相应装置实施例中被呈现。
可由如上所述的执行处理器或计算机可读代码、指令或软件以执行这里描述的操作的处理装置、处理器或计算机来执行图2至图3、图5至图10、图12至图13以及图18至图20中示出的执行这里描述的操作的方法。
用于控制处理装置、处理器或计算机实现硬件组件并执行上述方法的处理器或计算机可读代码、指令或软件可被写为计算机程序、代码段、指令或它们的任何组合,以独立地或共同地指示或配置处理装置、处理器或计算机作为用于执行由硬件组件执行的操作和如上所述的方法的机器或专用计算机进行操作。在一个示例中,处理器或计算机可读代码、指令或软件包括由处理装置、处理器或计算机直接执行的机器代码,诸如由编译器产生的机器代码。在另一示例中,处理器或计算机可读代码、指令或软件包括由处理装置、处理器或计算机使用解释器执行的更高级代码,诸如,被实施为任何程序或脚本语言(输入,C、C++、Java、汇编程序等)、被实施为使用数据结构、对象、处理、常规或其它程序元件的任意组合实施的各种算法。基于这里的公开,并且在理解本公开之后,本领域的普通编程技术人员可基于附图中示出的框图和流程图以及说明书中的对应描述容易地编写处理器或计算机可读代码、指令或软件,其中,附图中示出的框图和流程图以及说明书中的对应描述公开了用于执行由硬件组件执行的操作和如上所述的方法的算法。
用于控制处理装置、处理器或计算机实现硬件组件(诸如在图1、图4、图11、图14至图17和图21中的任何一个中讨论的硬件组件)并执行以上在图2至图3、图5至图10、图12至图13以及图18至图20中的任何一个中描述的方法的处理器或计算机可读代码、指令或软件以及任何关联的数据、数据文件和数据结构被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或上。非暂时性处理器或计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘和本领域普通技术人员已知的能够以非暂时方式存储处理器或计算机可读代码、指令或软件以及任何关联的数据、数据文件和数据结构并将处理器或计算机可读代码、指令或软件以及任何关联的数据、数据文件和数据结构提供给处理装置、处理器或计算机使得处理装置、处理器或计算机可执行指令的任何装置。在一个示例中,处理器或计算机可读代码、指令或软件以及任何关联的数据、数据文件和数据结构分布在联网的计算机系统中,从而由处理装置、处理器或计算机以分布方式存储、访问并执行指令和软件以及任何关联的数据、数据文件和数据结构。
仅作为非详尽的示例,这里的诸如参照图1、图4、图11、图14至图17和图21描述的和/或被配置为实现参照图2至图3、图5至图10、图12至图13以及图18至图20描述的方法的电子装置实施例可以是:移动装置(诸如蜂窝电话、智能电话、可穿戴智能装置、便携式个人计算机(PC)(诸如膝上型计算机、笔记本电脑、小型笔记本电脑、上网本、超移动PC(UMPC)、平板PC(tablet))、平板手机、个人数字助理(PDA)、数码相机、便携式游戏机、MP3播放器、便携式/个人多媒体播放器(PMP)、掌上型电子书、全球定位系统(GPS)导航装置或传感器);或固定装置(诸如台式PC、高清电视(HDTV)、DVD播放器、蓝光播放器、机顶盒或家用电器);或能够进行无线通信或网络通信的任何其它移动装置或固定装置。根据实施例,电子装置包括显示器。仅作为示例,一个或多个实施例可包括电子装置系统,其中,系统包括图1、图4、图11、图14至图17和图21的任意图形处理器。
虽然本公开包括特定示例,但是本领域普通技术人员将清楚,在不脱离权利要求及其等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。这里描述的示例仅应被考虑为描述性意义,而不是限制的目的。每个示例中的特征或方面的描述将被认为可应用于其它示例中的类似特征或方面。如果描述的技术以不同的顺序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合和/或被其它组件或其等同物代替或补充,则可实现合适的结果。因此,本公开的范围不是由具体实施方式限定,而是由权利要求及其等同物进一步支持,并且权利要求及其等同物的范围内的所有改变应被解释为包括在本公开中。
Claims (25)
1.一种对具有双眼视差或视点视差的第一图像和第二图像执行渲染的方法,所述方法包括:
对第一图像执行渲染,以产生第一图像的深度信息;
基于第一图像的深度信息,确定第二图像的已经被确定为与第一图像的像素对应的第一像素,并执行用于确定第二图像的第一像素的像素值的重投影;
基于重投影选择并渲染与第二图像的第一像素不同的第二图像的第二像素,
其中,执行重投影的步骤包括:将包括第二图像的第二像素和第二图像的第一像素中的一些像素的第一像素组设置为预定值,以产生扩展的遮挡图,
其中,选择并渲染的步骤包括:基于扩展的遮挡图选择并光栅化第一像素组。
2.如权利要求1所述的方法,其中,执行重投影的步骤包括:产生将第二图像的第一像素与第二图像的第二像素进行区分的遮挡图,
其中,选择并渲染的步骤包括:基于遮挡图选择并光栅化第二图像的第二像素。
3.如权利要求2所述的方法,其中,执行重投影的步骤包括:产生遮挡图,以通过设置第一值来在遮挡图中指示第二图像的每个第一像素,并通过设置第二值来在遮挡图中指示第二图像的每个第二像素,
其中,选择并渲染的步骤包括:选择并光栅化第二图像的这样的像素,针对这样的像素的遮挡图的像素具有第二值。
4.如权利要求3所述的方法,其中,产生遮挡图的步骤还包括:设置包括第二图像的第二像素并选择第一像素的与第二像素相邻的像素的像素组,并将遮挡图中的所述像素组的每个像素设置为第二值,以产生扩展的遮挡图。
5.如权利要求2所述的方法,其中,当对第一图像和第二图像执行的各个渲染是基于图块的渲染时,选择并渲染的步骤还包括:
基于遮挡图确定是否对第二图像的各个图块执行调度;
基于确定是否执行调度的结果对将被调度的图块执行图块渲染。
6.如权利要求1所述的方法,其中,执行重投影的步骤包括:将第二图像的每个第一像素的各个深度值确定为确定的第一图像的相应像素的深度值,并且执行重投影的步骤包括:将第二图像的每个第二像素的深度值确定为满足深度测试的预设值,以产生第二图像的深度缓冲区,
其中,选择并渲染的步骤包括:
使用第二图像的深度缓冲区对第二图像的第一像素和第二像素执行深度测试;
在第二图像的渲染期间,仅对第二图像的满足深度测试的像素执行像素着色。
7.如权利要求1所述的方法,其中,执行重投影的步骤包括:基于被产生为对第一图像执行的渲染的结果的第一图像的颜色信息,将第二图像的每个第一像素的各个颜色值确定为确定的第一图像的相应像素的颜色值,将第二图像的每个第二像素的颜色值确定为预设值,以产生第二图像的颜色缓冲区,
其中,选择并渲染的步骤包括:
计算第二图像的每个第二像素的各自的颜色值;
将确定的第二图像的每个第二像素的预设颜色值分别改变为针对第二图像的每个第二像素计算的各自的颜色值,以修改第二图像的颜色缓冲区。
8.如权利要求1所述的方法,其中,对第一图像执行渲染以产生第一图像的深度信息的步骤包括:
接收针对第一图像和第二图像的绘制命令;
基于接收的绘制命令对第一图像执行渲染。
9.如权利要求8所述的方法,其中,绘制命令包括针对第一图像和第二图像中的每个图像的状态信息。
10.如权利要求1所述的方法,其中,当将对第一图像和第二图像执行的各个渲染是基于图块的渲染时,对第一图像执行渲染以产生第一图像的深度信息的步骤包括:对第一图像的每个图块执行渲染,以产生针对每个图块的深度缓冲区,
其中,执行重投影的步骤包括:基于每个图块的深度缓冲区,确定第二图像的与第一图像的每个图块的像素相应的第一像素。
11.如权利要求1所述的方法,其中,当将要对第一图像和第二图像执行的各个渲染是基于图块的渲染时,所述方法还包括:基于针对第一图像和第二图像的绘制命令,对第一图像和第二图像执行图块像素组合。
12.如权利要求11所述的方法,其中,执行图块像素组合的步骤包括:
将绘制命令划分为多个批处理,将所述多个批处理分配到多个图形管线;
当所述多个批处理的第一批处理被分配到所述多个图形管线的第一图形管线时,基于第一批处理和与第一批处理相应的状态信息,对第一图像和第二图像中的每个图像执行图块像素组合。
13.一种渲染装置,所述装置包括:
图形处理单元(GPU),被配置为对第一图像执行渲染,以产生第一图像的深度信息;
存储器,被配置为存储第一图像的深度信息,
其中,图形处理单元被配置为基于第一图像的深度信息确定第二图像的与第一图像的像素相应的第一像素,以执行重投影来确定第二图像的第一像素的像素值,并基于重投影来选择并渲染与第二图像的第一像素不同的第二图像的第二像素,
其中,第一图像和第二图像具有双眼视差或视点视差,
其中,图形处理单元包括:
着色器,被配置为将包括第二图像的第二像素和第二图像的第一像素中的一些像素的第一像素组设置为预定值,以产生扩展的遮挡图;
光栅化器,被配置为基于扩展的遮挡图选择并光栅化第一像素组。
14.如权利要求13所述的装置,其中,着色器被配置为产生将第二图像的第一像素与第二图像的第二像素进行区分的遮挡图;
光栅化器被配置为基于遮挡图选择并光栅化第二图像的第二像素。
15.如权利要求14所述的装置,其中,着色器产生遮挡图,以通过设置第一值来在遮挡图中指示第二图像的各个第一像素,并通过设置第二值来在遮挡图中指示第二图像的每个第二像素,
其中,光栅化器选择并光栅化第二图像的这样的像素,针对这样的像素的遮挡图的像素具有第二值。
16.如权利要求15所述的装置,其中,着色器设置包括第二图像的第二像素并选择第一像素的与第二像素相邻的像素的像素组,并且着色器将遮挡图中的所述像素组的每个像素设置为第二值,以产生扩展的遮挡图。
17.如权利要求14所述的装置,其中,图形处理单元还包括:
调度器,被配置为基于遮挡图确定是否对第二图像的多个图块中的各个图块执行调度;
图形管线,被配置为基于调度器的确定,对将被调度的图块执行图块渲染。
18.如权利要求13所述的装置,其中,
着色器被配置为将第二图像的每个第一像素的各自的深度值确定为确定的第一图像的相应像素的深度值,并将第二图像的每个第二像素的深度值确定为满足深度测试的预设值,以产生第二图像的深度缓冲区,
其中,图形处理单元还包括:Z测试器,被配置为使用第二图像的深度缓冲区对第二图像的第一像素和第二像素执行深度测试;
其中,图形处理单元在第二图像的渲染期间,仅对第二图像的满足深度测试的像素执行像素着色。
19.如权利要求13所述的装置,其中,
着色器被配置为基于被产生为对第一图像执行的渲染的结果的第一图像的颜色信息,将第二图像的每个第一像素的各自的颜色值确定为确定的第一图像的相应像素的颜色值,将第二图像的每个第二像素的颜色值确定为预设值,以产生第二图像的颜色缓冲区,
其中,图形处理单元计算第二图像的每个第二像素的各个颜色值,将确定的第二图像的每个第二像素的预设颜色值分别改变为针对第二图像的各个第二像素计算的各自的颜色值,以修改第二图像的颜色缓冲区。
20.如权利要求13所述的装置,其中,图形处理单元接收针对第一图像和第二图像的绘制命令,基于接收的绘制命令对第一图像执行渲染。
21.如权利要求20所述的装置,其中,绘制命令包括针对第一图像和第二图像中的每个图像的状态信息。
22.如权利要求13所述的装置,其中,图形处理单元被配置为:对第一图像的多个图块中的每个图块执行渲染,以产生每个图块的深度缓冲区,并且存储器存储每个图块的深度缓冲区,
其中,图像处理单元被配置为基于每个图块的深度缓冲区,确定第二图像的与第一图像的每个图块的像素相应的第一像素,并基于与图块的像素相应的确定的第二图像的第一像素执行重投影。
23.如权利要求13所述的装置,其中,图像处理单元被配置为基于针对第一图像和第二图像的绘制命令,对第一图像和第二图像执行图块像素组合。
24.如权利要求23所述的装置,其中,图像处理单元被配置为将绘制命令划分为多个批处理,将所述多个批处理分配到多个图形管线,当所述多个批处理的第一批处理被分配到所述多个图形管线的第一图形管线时,图像处理单元被配置为基于第一批处理和与第一批处理对应的状态信息,对第一图像和第二图像中的每个图像执行图块像素组合。
25.一种包括代码的非暂时性记录介质,所述代码用于控制至少一个处理装置来实现权利要求1所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2015-0062651 | 2015-05-04 | ||
KR1020150062651A KR102341267B1 (ko) | 2015-05-04 | 2015-05-04 | 양안 시차 영상에 대한 렌더링 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106127848A CN106127848A (zh) | 2016-11-16 |
CN106127848B true CN106127848B (zh) | 2020-10-09 |
Family
ID=56008482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610288982.8A Active CN106127848B (zh) | 2015-05-04 | 2016-05-04 | 对视点视差图像执行渲染的设备和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10332307B2 (zh) |
EP (1) | EP3091739A1 (zh) |
JP (1) | JP6530728B2 (zh) |
KR (1) | KR102341267B1 (zh) |
CN (1) | CN106127848B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9842428B2 (en) * | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
GB2561152B (en) * | 2017-03-21 | 2021-01-13 | Advanced Risc Mach Ltd | Data processing systems |
CN110573929A (zh) * | 2017-05-01 | 2019-12-13 | 无限增强现实以色列有限公司 | 增强或混合现实环境的光学引擎时间扭曲 |
US10269181B2 (en) * | 2017-05-31 | 2019-04-23 | Verizon Patent And Licensing Inc. | Methods and systems for generating a virtualized projection of a customized view of a real-world scene for inclusion within virtual reality media content |
US10403032B2 (en) * | 2017-08-22 | 2019-09-03 | Qualcomm Incorporated | Rendering an image from computer graphics using two rendering computing devices |
GB2570743B (en) * | 2018-06-29 | 2021-06-23 | Imagination Tech Ltd | Tile assignment to processing cores within a graphics processing unit |
WO2020118097A1 (en) * | 2018-12-05 | 2020-06-11 | Sony Corporation | Room shaders for animated movies |
US10853993B2 (en) * | 2018-12-18 | 2020-12-01 | Varjo Technologies Oy | System and method for producing images for display apparatus |
CN112015264B (zh) * | 2019-05-30 | 2023-10-20 | 深圳市冠旭电子股份有限公司 | 虚拟现实显示方法、虚拟现实显示装置及虚拟现实设备 |
US11336887B2 (en) * | 2019-09-03 | 2022-05-17 | Facebook Technologies, Llc | Adaptive shading and reprojection |
CN111105451B (zh) * | 2019-10-31 | 2022-08-05 | 武汉大学 | 一种克服遮挡效应的驾驶场景双目深度估计方法 |
CN113129417A (zh) * | 2019-12-27 | 2021-07-16 | 华为技术有限公司 | 一种全景应用中图像渲染的方法及终端设备 |
CN113490963B (zh) * | 2020-01-22 | 2024-09-24 | 华为技术有限公司 | 显示系统、图形处理器gpu、显示控制器以及显示方法 |
GB2593525B (en) | 2020-03-27 | 2022-06-01 | Imagination Tech Ltd | Stereoscopic graphics processing |
US11570418B2 (en) | 2021-06-17 | 2023-01-31 | Creal Sa | Techniques for generating light field data by combining multiple synthesized viewpoints |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702241A (zh) * | 2009-09-07 | 2010-05-05 | 无锡景象数字技术有限公司 | 基于视差图的多视点图像渲染方法 |
CN103679739A (zh) * | 2013-12-26 | 2014-03-26 | 清华大学 | 基于遮挡区域检测的虚拟视图生成方法 |
CN104183005A (zh) * | 2013-05-24 | 2014-12-03 | 三星电子株式会社 | 图形处理单元和基于图块的渲染方法 |
CN104424621A (zh) * | 2013-08-30 | 2015-03-18 | Arm有限公司 | 图形处理系统 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9706000D0 (en) | 1997-03-22 | 1997-05-07 | Philips Electronics Nv | Multiple viewpoint image generation |
AU1776001A (en) | 1999-11-18 | 2001-05-30 | Info Assets, Inc. | Rendering image data |
US7085409B2 (en) | 2000-10-18 | 2006-08-01 | Sarnoff Corporation | Method and apparatus for synthesizing new video and/or still imagery from a collection of real video and/or still imagery |
US6756993B2 (en) * | 2001-01-17 | 2004-06-29 | The University Of North Carolina At Chapel Hill | Methods and apparatus for rendering images using 3D warping techniques |
US20040238732A1 (en) | 2001-10-19 | 2004-12-02 | Andrei State | Methods and systems for dynamic virtual convergence and head mountable display |
US7982733B2 (en) | 2007-01-05 | 2011-07-19 | Qualcomm Incorporated | Rendering 3D video images on a stereo-enabled display |
US8929645B2 (en) * | 2007-04-24 | 2015-01-06 | 21 Ct, Inc. | Method and system for fast dense stereoscopic ranging |
JP2011060216A (ja) * | 2009-09-14 | 2011-03-24 | Fujifilm Corp | 画像処理装置および画像処理方法 |
KR101585998B1 (ko) * | 2009-11-10 | 2016-01-15 | 삼성전자주식회사 | 영상 처리 장치 및 방법 |
KR101385514B1 (ko) | 2010-06-08 | 2014-04-16 | 주식회사 에스칩스 | 깊이 맵 정보를 이용한 입체 영상 변환 방법 및 장치 |
US8643700B2 (en) * | 2010-11-17 | 2014-02-04 | Dell Products L.P. | 3D content adjustment system |
US8711163B2 (en) * | 2011-01-06 | 2014-04-29 | International Business Machines Corporation | Reuse of static image data from prior image frames to reduce rasterization requirements |
US20120176386A1 (en) | 2011-01-10 | 2012-07-12 | Hutchins Edward A | Reducing recurrent computation cost in a data processing pipeline |
US8624891B2 (en) | 2011-01-17 | 2014-01-07 | Disney Enterprises, Inc. | Iterative reprojection of images |
TW201249191A (en) | 2011-05-19 | 2012-12-01 | Altek Corp | Method for processing image |
US9401039B2 (en) * | 2011-07-01 | 2016-07-26 | Panasonic Intellectual Property Management Co., Ltd. | Image processing device, image processing method, program, and integrated circuit |
KR101334187B1 (ko) | 2011-07-25 | 2013-12-02 | 삼성전자주식회사 | 다시점 렌더링 장치 및 방법 |
US9621869B2 (en) * | 2012-05-24 | 2017-04-11 | Sony Corporation | System and method for rendering affected pixels |
GB2497154B (en) | 2012-08-30 | 2013-10-16 | Imagination Tech Ltd | Tile based interleaving and de-interleaving for digital signal processing |
KR101386651B1 (ko) * | 2012-09-13 | 2014-04-17 | 전자부품연구원 | 다시점 비디오 인코딩 및 디코딩 방법 및 이를 이용한 인코딩 및 디코딩 장치 |
JP6033625B2 (ja) | 2012-09-28 | 2016-11-30 | シャープ株式会社 | 多視点画像生成装置、画像生成方法、表示装置、プログラム、及び、記録媒体 |
US9241146B2 (en) | 2012-11-02 | 2016-01-19 | Nvidia Corporation | Interleaved approach to depth-image-based rendering of stereoscopic images |
US9087410B2 (en) | 2013-01-17 | 2015-07-21 | Qualcomm Incorporated | Rendering graphics data using visibility information |
EP2887312A1 (en) * | 2013-12-18 | 2015-06-24 | Nokia Corporation | Method, apparatus and computer program product for depth estimation of stereo images |
-
2015
- 2015-05-04 KR KR1020150062651A patent/KR102341267B1/ko active IP Right Grant
-
2016
- 2016-01-12 US US14/993,339 patent/US10332307B2/en active Active
- 2016-04-27 JP JP2016089073A patent/JP6530728B2/ja active Active
- 2016-05-04 EP EP16168345.3A patent/EP3091739A1/en not_active Ceased
- 2016-05-04 CN CN201610288982.8A patent/CN106127848B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702241A (zh) * | 2009-09-07 | 2010-05-05 | 无锡景象数字技术有限公司 | 基于视差图的多视点图像渲染方法 |
CN104183005A (zh) * | 2013-05-24 | 2014-12-03 | 三星电子株式会社 | 图形处理单元和基于图块的渲染方法 |
CN104424621A (zh) * | 2013-08-30 | 2015-03-18 | Arm有限公司 | 图形处理系统 |
CN103679739A (zh) * | 2013-12-26 | 2014-03-26 | 清华大学 | 基于遮挡区域检测的虚拟视图生成方法 |
Also Published As
Publication number | Publication date |
---|---|
US20160328879A1 (en) | 2016-11-10 |
CN106127848A (zh) | 2016-11-16 |
EP3091739A1 (en) | 2016-11-09 |
JP2016212859A (ja) | 2016-12-15 |
US10332307B2 (en) | 2019-06-25 |
KR102341267B1 (ko) | 2021-12-20 |
JP6530728B2 (ja) | 2019-06-12 |
KR20160130629A (ko) | 2016-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106127848B (zh) | 对视点视差图像执行渲染的设备和方法 | |
CN105654553B (zh) | 图形处理器和执行基于图块的图形管线的方法 | |
CN106296565B (zh) | 图形管线方法和设备 | |
US9449421B2 (en) | Method and apparatus for rendering image data | |
CN105574924B (zh) | 渲染方法、渲染设备和电子设备 | |
KR102646906B1 (ko) | 타일 기반 렌더링 방법 및 장치 | |
KR102651126B1 (ko) | 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법 | |
KR102381945B1 (ko) | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법 | |
US20160125649A1 (en) | Rendering apparatus and rendering method | |
US10262391B2 (en) | Graphics processing devices and graphics processing methods | |
JP2016529593A (ja) | 立体シーンのインターリーブ方式のタイル型レンダリング | |
WO2015123029A1 (en) | Techniques for conservative rasterization | |
JP2014006901A (ja) | 関与媒質により受光された光量を推定する方法及び対応する装置 | |
US10062138B2 (en) | Rendering apparatus and method | |
JP2014505954A (ja) | 仮想環境における隠蔽の推定方法 | |
EP3309776A1 (en) | Graphics processing apparatus and method of executing instructions | |
US10334697B2 (en) | Method and device for displaying illumination | |
US9830721B2 (en) | Rendering method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |