CN104169974B - 图形处理单元中基于可见性的状态更新 - Google Patents
图形处理单元中基于可见性的状态更新 Download PDFInfo
- Publication number
- CN104169974B CN104169974B CN201380013562.3A CN201380013562A CN104169974B CN 104169974 B CN104169974 B CN 104169974B CN 201380013562 A CN201380013562 A CN 201380013562A CN 104169974 B CN104169974 B CN 104169974B
- Authority
- CN
- China
- Prior art keywords
- time
- visibility information
- tile
- image data
- primitive
- 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
Classifications
-
- 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
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
一般来说,本发明描述用于图形处理单元GPU中的基于可见性的状态更新的技术。包括经配置以存储状态数据的存储器以及GPU的渲染图像数据的装置可实施所述技术。所述GPU可经配置以执行多遍次渲染过程以从所述图像数据渲染图像。所述GPU在所述多遍次渲染过程的第一遍次期间,为所述图像数据所界定的多个对象确定可见性信息。所述可见性信息指示在所述多遍次渲染过程的第二遍次期间,所述多个对象中的每一者在从所述图像数据渲染的所述图像中是否将可见。所述GPU接着从所述存储器检索所述状态数据,以供所述多遍次渲染过程的所述第二遍次基于所述可见性信息渲染所述图像数据的所述多个对象。
Description
技术领域
本发明涉及图形处理单元(GPU),且更明确地说,涉及在GPU中维持状态数据。
背景技术
为视觉呈现提供内容的装置通常包含图形处理单元(GPU)。GPU在显示器上渲染代表所述内容的像素。所述GPU产生所述显示器上的每一像素的一或多个像素值,且对显示器上的每一像素的像素值执行图形处理,以渲染每一像素以供呈现。
发明内容
一般来说,本发明描述用于基于与GPU中的状态数据更新相关联的对象的可见性信息使所述状态更新延迟的技术GPU可实施所述技术,使得在多遍次像素渲染过程的第一遍次期间,所述GPU确定与将由GPU渲染的图像数据的每一对象相关联的可见性信息。此可见性信息可指示在所述多遍次渲染过程的第二遍次期间,每一对象在从所述图像数据渲染的输出图像中是否可见。
基于此可见性信息,GPU可接着检索状态数据以供第二遍中使用。举例来说,如果可见性信息指示对象可见,那么GPU检索当前状态数据,且将此状态数据从芯片外存储器(作为一个实例,表示在GPU外部的存储器)加载到芯片上存储器(作为一个实例,表示在GPU内部或集成在GPU内的存储器)中。如果可见性信息指示对象不可见,那么GPU不检索此状态数据。以此方式,GPU使状态数据的检索延迟,以潜在地减少芯片外存储器存取,且避免将GPU连接到芯片外存储器的存储器总线上的带宽的不必要消耗。
在一个实例中,一种用于渲染图像数据的方法包括:在图形处理单元中,在多遍次渲染过程的第一遍次期间,为所述图像数据所界定的多个对象确定可见性信息,其中所述可见性信息指示所述多个对象中的每一者在所述多遍次渲染过程的第二遍次期间在从所述图像数据渲染的图像中是否将可见。所述方法还包括:在所述图像处理单元中检索状态数据,以供所述多遍次渲染过程的所述第二遍次用于基于所述可见性信息渲染所述图像数据的所述多个对象,其中所述第一遍次在所述第二遍次完成之前完成。
在另一实例中,一种渲染图像数据的装置包括:用于在多遍次渲染过程的第一遍次期间为所述图像数据所界定的多个对象确定可见性信息的装置,其中所述可见性信息指示所述多个对象中的每一者在所述多遍次渲染过程的第二遍次期间在从所述图像数据渲染的图像中是否将可见。所述装置还包括用于检索状态数据以供所述多遍次渲染过程的所述第二遍次用于基于所述可见性信息渲染所述图像数据的所述多个对象的装置,其中所述第一遍次在所述第二遍次完成之前完成。
在另一实例中,一种渲染图像数据的装置包括经配置以存储状态数据的存储器。所述装置还包括处理器,其经配置以执行多遍次渲染过程以渲染来自所述图像数据的图像,其中所述处理器在所述多遍次渲染过程的第一遍次期间为所述图像数据所界定的多个对象确定可见性信息,其中所述可见性信息指示在所述多遍次渲染过程的第二遍次期间,所述多个对象中的每一者在从所述图像数据渲染的所述图像中是否将可见,且从所述存储器检索所述状态数据,以供所述多遍次渲染过程的所述第二遍次用于基于所述可见性信息渲染所述图像数据的所述多个图像,其中所述第一遍次在所述第二遍次完成之前完成。
在另一实例中,一种非暂时计算机可读媒体包括指令,其在执行时致使一或多个处理器在多遍次渲染过程的第一遍次期间为由所述图像数据界定的多个对象确定可见性信息,其中所述可见性信息指示在所述多遍次渲染过程的第二遍次期间,所述多个对象中的每一者在从所述图像数据渲染的图像中是否将课件;且检索所述状态数据以供所述多遍次渲染过程的所述第二遍次用于基于所述可见性信息渲染所述图像数据的所述多个对象,其中所述第一遍次在所述第二遍次完成之前完成。
在附图及下文描述中陈述一个或一个以上实例的细节。将从描述和图式且从所附权利要求书明白其它特征、目标和优点。
附图说明
图1是说明可经配置以实施本发明的方面的装置的框图。
图2是更详细地说明图1的实例中所示的装置的图形处理单元和存储器的框图。
图3是说明图形处理单元在实施本发明中所描述的状态数据检索技术中的实例操作的流程图。
图4是说明已根据本发明中描述的技术的实例从中产生示范性可见性信息的经变换图像数据的实例的图。
具体实施方式
图1是说明可经配置以实施本发明的方面的装置2的框图。装置2的实例包含但不限于无线装置、移动或蜂窝式电话(包含所谓的智能电话)、个人数字助理(PDA)、包含视频显示器的视频游戏控制台、移动视频游戏壮汉子、移动视频会议单元、膝上型计算机、桌上型计算机、电视机顶盒、平板计算装置、电子书阅读器、固定或移动媒体播放器等。装置2可包含处理器4、图形处理单元(GPU)6、显示器8、帧缓冲器10、存储装置12、收发器模块14、用户接口16和存储器18。装置2可包含额外模块或单元,图1中为了易于说明的目的而未展示。举例来说,装置2可包含扬声器和麦克风,图1中两者均未展示,以在装置2为蜂窝式无线手持机的实例中实现电话通信。此外,图2中所展示的各种模块和单元可能不是在装置2的每个实例中均为必要的。举例来说,在装置2表示桌上型计算机的实例中,用户接口16和显示器8可在装置2外部。
处理器4可执行一或多个应用程序。应用的实例包含网络浏览器、电子邮件应用程序、电子表格、视频游戏、音频和/或视频捕获、重放或编辑应用程序,或起始图像数据的产生以经由显示器8呈现的其它应用程序。所述一或多个应用程序可存储在存储装置12内。在一些例子中,处理器4可经由收发器模块14下载一或多个应用程序。处理器4可基于用户经由用户接口16的选择执行所述一或多个应用程序。在一些实例中,处理器4可在不需要任何用户交互的情况下执行所述一或多个应用程序。
处理器4的实例包含但不限于数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA),或其它等效集成或离散逻辑电路。存储装置12可包括一或多个计算机可读存储媒体。存储装置12的实例包含但不限于随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器,或任何其它可用于以指令或数据结构的形式存储所要程序代码且可由计算机或处理器执行的媒体。在一些方面中,存储装置12可包含致使主机处理器4和/或GPU 6在被执行时实施归于本发明中的处理器4和GPU 6的功能。
一般来说,GPU 6可对像素执行各种功能,以供在显示器8上呈现。举例来说,GPU6可执行若干功能,例如着色、混合、照明以及其它用以产生将在显示器8上显示的像素的像素值的功能。GPU 6的实例包含但不限于DSP、通用微处理器、ASIC、FPGA,或其它等效集成或离散逻辑电路。GPU 6可包括单核或多核处理器,且可包含一或多个图形处理管线,其可经配置以根据OpenGL、OpenCL、DirectX 11等操作。尽管图1中展示为单独的,但在一些实例中,处理器4可包含GPU 6。举例来说,处理器4和GPU6可形成于同一DSP内、通用微处理器、ASIC、FPGA,或其它等效集成或离散逻辑电路内。在其它实例中,处理器4可充当应用处理器,其指导GPU 6执行各种图形处理操作。尽管图1中说明一个GPU 6,但本发明的方面不限于此。在一些实例中,装置2可包含多个GPU或GPU核,类似于GPU 6。图形处理任务可在这些GPU或GPU核之间划分。
显示器8可包括液晶显示器(LCD)、有机发光二极管(OLED)显示器、阴极射线管(CRT)显示器、等离子体显示器,或另一类型的显示装置。显示器8包含水平且垂直布置成2D像素阵列中的多个像素。显示器8的每一像素可由其2D坐标(例如,笛卡尔坐标中的(x,y))识别。举例来说,位于显示器8的左上角的像素可识别为位于(0,0)的像素。就在位于(0,0)处的像素右边的像素可识别为位于(1,0)的像素。就在位于(0,0)处的像素下方的像素可识别为位于(0,1)的像素。可类似地识别显示器8的所有像素。仅出于说明目的描述上文所述的笛卡尔坐标。显示器8的像素可由不同类型的坐标系(例如,极坐标、双极坐标、抛物线坐标等)识别。此外,也仅出于说明目的描述像素的实例位置。在一些实例中,位于(0,0)处的像素可位于显示器8的左下、右上、右下或任何其它像素位置。
帧缓冲器10可表示包含多个存储位置的二维缓冲器。帧缓冲器10内的存储位置的数目可大体上类似于将在显示器8上显示的像素的数目。举例来说,如果显示器8经配置以包含640x480个像素,那么帧缓冲器10可包含640x480个存储位置。帧缓冲器10可存储由GPU6处理的像素中的每一者的最终像素值。显示器8可从帧缓冲器10检索最终像素值,且基于存储在帧缓冲器10中的像素值显示最终图像。
在一些实例中,可将存储装置12视为非暂时性存储媒体。术语“非暂时性”可指示存储媒体不包含在载波或所传播信号中。然而,术语“非暂时性”不应被解释为表示存储装置12是不可移动的。作为一个实例,可将存储装置12从装置2移除,且移动到另一装置。作为另一实例,可将存储装置(大体上类似于存储装置12)插入装置2中。在某些实例中,非暂时性存储媒体可存储可随时间变化而改变的数据(例如,RAM)。
收发器模块14可表示藉此装置2可发射和接收数据的模块。收发器模块14也可大体上称为接口。在此方面中,收发器模块14可包含允许装置2与另一装置或网络之间的无线或有线通信的电路。收发器模块14可包含调制器、解调器、放大器和用于有线或无线通信的其它此类电路,其在图1的实例中为了便于说明的目的而未展示。另外或替代地,收发器模块14可包含一或多个网络适配器单元,例如以准许经由有线或无线网络的通信。
用户接口16表示装置2的用户用其来与装置2交互的硬件或硬件与软件的组合。用户接口16的实例包含但不限于跟踪球、鼠标、键盘或其它类型的输入装置。用户接口16也可为触摸屏,且可并入作为显示器8的一部分。
如上文所述,处理器4可执行一或多个应用程序,其可产生图像数据。在一些例子中,在执行所述一或多个应用程序后,处理器4可即刻产生界定将由GPU 6渲染的多个基元的命令流。基元可包括线(包含曲线、样条线等)、点、圆、椭圆、多边形(其中通常将多边形界定为一或多个三角形的集合),或任何其它二维(2D)基元。术语“基元”也可指代三维(3D)基元,例如立方体、圆柱体、球体、锥体、角锥体和圆环体,仅举3D基元的几个实例。通常,术语“基元”指代能够由GPU 6渲染以经由显示器8作为图像(或在视频数据的上下文中,作为帧)显示的任何基本几何形状或元素。
所述命令流可界定这些基元,以便形成一或多个2D和/或3D对象。因此,术语“对象”指代一或多个基元,其可经组合以表示物品、动物、人或结构,仅举对象的几个实例。命令流还可界定状态数据,其可与一或多个基元和/或对象(其再次可指代一或多个基元的集合)相关联。举例来说,状态数据可界定基元的色彩、纹理或其它方面。状态数据可另外指代可影响基元的渲染的相机、光(或光照)以及其它周围或情境数据。出于进一步说明的目的,考虑界定相机的状态数据,此状态数据可界定相机相对于基元的位置、相机的变焦或放大、相机滤光片的存在和类型、相机定向,以及与经由相机捕获图像或视频相关联的其它方面。通常,命令流在具有x轴、y轴和z轴的3D模型空间中界定基元和状态数据两者。
响应于接收到此命令流,GPU 6可通过应用一或多个模型变换(其也可在状态数据中指定)来将基元和状态数据变换成世界空间。一旦经变换,GPU 6就可对活动相机应用视图变换(其再次也可在界定相机的状态数据中指定),以将基元和光的坐标变换成相机或眼睛空间。GPU 6还执行顶点着色,以鉴于任何活动光而渲染基元的出现。GPU 6可在以上模型、世界或视图空间(尽管其通常在世界空间中执行)中的一或多者中执行顶点着色。
一旦基元经着色,GPU 6就执行投影,以将图像投影到具有极点的单位立方体中,例如在(-1,-1,-1)和(1,1,1)处。此单位立方体通常称为正规化视图体积。在将模型从眼睛空间变换到权威性视图体积之后,GPU 6可执行剪切,以去除并不至少部分地驻存在所述视图体积内的任何基元。换句话说,GPU 6可去除不在相机的框架内的任何基元。GPU 6可接着将基元的坐标从所述视图体积映射到屏幕空间,从而将基元的3D坐标减少为屏幕的2D坐标。
在给定用其相关联着色数据来界定基元或对象的经变换和经投影顶点的情况下,GPU 6可接着光栅化所述基元,意味着GPU 6可计算并设定屏幕的由对象覆盖的像素的色彩。在光栅化期间,GPU 6可应用与基元相关联的任何纹理(其中纹理可包括状态数据)。GPU6还可在光栅化期间执行Z缓冲器算法,也称为深度测试,以确定所述基元和/或对象中的任一者是否被任何其它对象挡住。Z缓冲器算法根据其深度对基元进行分类,使得GPU 6知晓将每一基元绘制到屏幕的次序。GPU 6将经渲染的瓦片输出到帧缓冲器10。一旦GPU 6输出所有经渲染瓦片以形成经渲染图像,显示器8就可检索并显示此图像,以供装置2的用户消耗。
虽然图1的实例中将帧缓冲器10展示为与芯片外存储器20分离,但帧缓冲器10可并入到存储器20中或存储在存储器20内。就是说,帧缓冲器10可消耗存储器20的某一部分,或存储器20可为专用帧缓冲器10保存某一量的空间。因此,虽然在图1的实例中将帧缓冲器10展示为与存储器20分离,但可相对于包含在存储器20内的帧缓冲器或帧缓冲器的任何其它实施方案来实施所述技术,不管是与芯片外或芯片上存储器或包含在芯片外或芯片上存储器内。
在一些例子中,GPU可仅执行许多渲染操作以执行Z缓冲器算法,结果是整个基元无需渲染,因为其它基元完全挡住了这些基元。就是说,GPU绘制每一基元,从最后(按深度)基元到最前(再次,按深度)基元工作,结果是一些基元可经渲染以用在这些基元前面的其它基元来绘制在这些基元上。由于此所谓的“过绘制”,GPU适于执行早期Z缓冲器算法测试,以便使GPU能够识别完全被挡住或不在视野内以在GPU执行渲染时被忽略或避开的那些基元。在此方面中,GPU适于相对于图形管线中早期的每一基元和/或对象确定什么可被称为“可见性信息”,以潜在地减少需要渲染的基元的数目。
传统上,早期GPU大多数为有线计算装置(例如桌上型计算机、工作站、服务器等)而实施,归因于计算复杂性以及操作这些计算上复杂的GPU所需的伴随电力。制造技术的发展以及GPU架构中的显著增长已导致特征为低电力操作的GPU。这些低电力GPU已部署在移动计算装置中,例如蜂窝式电话或手持机(包含所谓的“智能电话”),膝上型计算机、平板或板式计算机、个人数字助理、便携式游戏装置、便携式娱乐或媒体装置、电子阅读器(“e阅读器”)等。
在这些移动装置中(其可称为电力受限装置的一个实例,因为其依靠电池,电池可随着时间的过去而到期且需要重新充电),GPU通常花费移动装置的可用电力的某一部分来执行芯片外存储器存取以检索状态数据,且为芯片上存储器供电以存储此状态数据。装置2的上下文中的芯片外存储器可指代存储器20,其在芯片外部(表示图1的实例中的GPU 6),且因此相对于GPU 6在芯片外。尽管图1的实例中未展示,但GPU 6可包含芯片上存储器,其指代集成到GPU 6中的存储器。存取芯片外存储器20通常需要电力来为将GPU 6连接到存储器20的总线供电,使得可检索且/或存储状态和基元数据。与较小的芯片上存储器相比,较大的芯片上存储器可需要较大量的电力来操作。
为了抵销这些电力问题中的一些,正开发所谓的“低电力GPU”(其也可称为“移动GPU”),其实施可称为“基于瓦片”或“基于频段”的渲染的渲染。就是说,这些GPU可将待渲染的图像数据划分为瓦片或频段,从而连续地(或有时同时或并行地)渲染每一瓦片或频段,直到整个图像被渲染为止。通过将图像划分成瓦片,GPU可降低芯片上存储器要求,同时还促进从芯片外存储器的较少数据检索(考虑到芯片上存储器可能大到足够存储充分的图像数据来渲染所述瓦片)。举例来说,GPU 6可包含具有充足存储空间的芯片上存储器以存储用于图像数据的给定瓦片的所有数据,从而使得能够完全在芯片上执行早期Z缓冲器测试,而不必存取存储到芯片外存储器20的芯片外Z缓冲器,其按照惯例维持,以便在非基于瓦片的GPU中渲染图像。通过执行此早期Z缓冲器测试,考虑到仅渲染可见的那些基元,GPU 6可相对于存储器20额外地减少芯片外存储器读取和写入的次数。因此,GPU 6可仅检索可见基元的状态数据(例如纹理)。
通常,为了渲染图像数据的每一瓦片,这些低电力GPU包含命令流处理模块或元件,其处理从处理器或计算机处理单元(CPU)接收到的命令流。所述命令流处理模块可使命令与命令流分开,以便产生仅包含渲染包含在图像数据的瓦片的相应一者内的基元所必需的那些命令的瓦片特定命令流。在此GPU架构中,基元和/或对象彼此之间并不共享状态数据,意味着所述基元和/或对象各自与其自己的状态数据集合相关联。
然而,在一些GPU架构中,反复地界定状态数据,且由基元和/或对象共同共享。因为状态数据是共享的,因此实施此共享状态数据架构的GPU不对命令流进行滤波以产生瓦片特定命令流,因为为第一瓦片中的对象界定的状态数据可由第二不同瓦片中的待渲染对象共享。在此实施方案中,GPU可产生每一瓦片的单独瓦片特定可见性信息,其指示每一基元在对应瓦片中是否可见。然而,即使基元不可见且因此不需要被渲染,为此不可见基元界定的状态数据也可由另一可见基元共享。因此,这些GPU可为基元加载状态数据,而不管这些基元是否可见。
但因为状态数据在基元之间共享,因此GPU可频繁地存取芯片外存储器20以检索状态数据,不管基元是否可见。换句话说,对于每一基元,不管基元在正渲染的当前两个或两个以上瓦片中是否可见,GPU均检索与所述基元中的每一者相关联的当前状态数据。在一些例子中,GPU可从芯片外存储器检索用于非可见基元的状态数据的当前版本(其不用于渲染当前基元,因为其不可见),从芯片外存储器检索用于另一不可见基元的状态数据的当前版本(其同样不用于渲染当前基元,因为其不可见),且接着检索用于可见基元的状态数据的当前版本(其用于渲染当前基元,因为其可见)。不用于渲染非可见基元的两次连续状态数据检索可无需消耗电力,且消耗将GPU连接到芯片外存储器的存储器总线上的存储器总线带宽。
根据本发明中所描述的技术,在多遍像素渲染过程的第一遍期间,GPU 6可确定与将由GPU渲染的图像数据的每一对象相关联的可见性信息。如上文所述,此可见性信息可指示每一对象在图像数据的对应瓦片中是否可见。基于此可见性信息,GPU 6可接着检索状态数据以供第二遍中使用。举例来说,如果可见性信息指示对象可见,那么GPU 6可检索当前状态数据,从而将此状态数据从芯片外存储器(作为一个实例,表示存储器20)加载到芯片上存储器(作为一个实例,表示在GPU内部或集成在GPU内的存储器)中。如果可见性信息指示对象不可见,那么GPU 6不检索此状态数据。以此方式,GPU 6使状态数据的检索延迟,以潜在地减少芯片外存储器存取,且避免将GPU 6连接到芯片外存储器20的存储器总线上的带宽的不必要消耗。
换句话说,在一实例中,GPU 6执行可称为“懒惰状态数据检索”的检索形式,其中GPU 6仅在实际用于渲染可见基元时检索状态数据。考虑到此状态数据由GPU 6所实施的基于瓦片的共享状态架构中的对象共享,此状态数据可与当前可见基元和先前不可见基元相关联。因此,不是仅加载与当前可见基元相关联或相对于当前可见基元而界定的当前状态数据,而是GPU 6可加载与当前可见基元或命令流中所界定的在当前可见基元之前的其它不可见基元相关联的状态数据。
在操作中,GPU 6可在一个实例中使用考虑像素块(例如,4x4像素块)而不是个别像素值的低分辨率Z缓冲器来产生此可见性信息。GPU 6可以较低分辨率构造此Z缓冲器,使得可将此Z缓冲器存储到芯片上存储器,或换句话说,潜在地降低芯片上存储器大小要求。GPU 6执行低分辨率Z算法以构造低分辨率Z缓冲器。此低分辨率Z算法涉及将基元从模型空间变换到屏幕空间所需的上文所述的操作中的许多操作。一旦在屏幕空间中,GPU 6就可对基元相对于彼此从前到后进行排序,从而测试当前瓦片的子瓦片(通常以层级方式,意味着以涉及连续变小子瓦片的递归方式,以确定:1)当前基元是否包含在给定子瓦片内;以及2)是否包含在给定子瓦片中,当前基元是否被特定子瓦片中的任一其它基元挡住。如果当前基元包含在当前子瓦片内,且不被子瓦片中的任何其它基元挡住,那么GPU 6产生可见性信息以指示当前基元是可见的。GPU 6可接着将此可见性信息存储到芯片外存储器20。在一些例子中,GPU 6可首先压缩此可见性信息,且接着将经压缩的可见性信息存储在芯片外存储器20中。
在完成此频段化遍次之后,通过产生瓦片中的每一者的可见性信息,GPU 6可以类似于上文所述的方式执行渲染遍次。然而,GPU 6可使每一基元或对象与存储储存当前状态数据的存储器20中的开始位置的存储器地址的指针相关联。处理器4可存储对状态数据的改变或甚至界定新的状态数据,而不影响GPU 6。这些改变并不影响GPU 6,因为如果芯片外存储器20中的开始位置改变,那么可容易地更新指针以参考新状态数据的新开始位置。此外,如果开始位置不改变,那么当反引用此指针时,GPU 6通过指针的使用仅存取状态数据的最当前版本。因为GPU 6仅反引用此指针,且藉此响应于可见基元而检索此状态数据,因此GPU 6可确保检索到状态数据的最当前版本。在这方面中,根据本发明的实例,GPU 6可利用所述指针来执行懒散状态数据检索,这可减少存储器存取,同时还促进最近或最新状态数据的检索。
虽然相对于移动或低电力GPU来描述,但可相对于能够产生可见性信息的任何多级GPU来实施本发明的技术,包含为可视为对大量电力具有接入权的装置而开发的高电力GPU(在某种意义上,其不从电池接收电力,而是从有线或可能无线电源接收电力)。所述技术因此应不限于本发明中所描述的实例。
图2是更详细地说明图1的实例中所示的装置2的图形处理单元6和存储器20的框图。在图2的实例中,GPU 6可包含图形处理管线,且可包含几何单元30、瓦片化单元32和光栅化器像素着色器单元34。虽然展示为单独单元30到34,但单元30到34中的一或多者可组合或可共享硬件。就是说,将单元30到34展示为用于描述不同功能性的单独单元,且不应被视为必然地表示单独硬件单元。在一些例子中,单元30到34可利用同一硬件。通常,GPU包含形成于管线化架构中的若干硬件单元。此管线化架构可以各种方式适合于执行多个遍次。举例来说,由GPU 6表示的图形管线可经配置以执行上文所述的频段化或瓦片化遍次,作为多遍次渲染过程的第一遍次。此同一图形管线可接着经配置以执行多遍次渲染过程的渲染遍次,其中渲染一或多个瓦片以将经渲染的瓦片输出到帧缓冲器10。
几何单元30表示图形管线的配置,使得图形管线执行上文所描述的所有几何处理,以确定待渲染的每一对象的屏幕空间位置。瓦片化单元32表示图形管线的配置,用以使GPU 6能够确定一或多个瓦片,且接着利用几何单元30所产生的对象的屏幕空间位置来确定哪些对象相对于每一瓦片可见。瓦片化单元32可实施低分辨率深度(Z)算法(LRZ算法)来确定可见性信息,其中在图2的实例中将LRZ算法展示为“LRZ ALG 36”。光栅化器像素着色器单元34表示GPU 6的图形管线的配置,其使GPU 6能够使用瓦片化单元32所产生的可见性信息来渲染所述瓦片中的一或多者。[提到gpu的各个方面可为可编程的,而其它方面可为固定逻辑单元]
在操作中,几何单元30可首先经由存储器总线40从芯片外存储器20检索图像数据,例如图像数据38,从而将此图像数据38存储到芯片上存储器29。芯片上存储器29表示集成到GPU 6或在其内部的用于渲染图像(或在此实例中,图像的瓦片)的存储器。芯片上存储器29可包括RAM、动态RAM(DRAM)、静态RAM(SRAM)、高速缓冲存储器或其它类型的存储器。图像数据38可表示界定一或多个对象42和状态数据44的命令流。如上文所述,对象42可包括一或多个基元。几何单元30可将对象42从模型空间变换到屏幕空间,从而更新对象42以反映所述变换。几何单元30将经变换的对象42输出到瓦片化单元32。
瓦片化单元32接收经变换的对象42,且在屏幕空间中界定瓦片,其通常为屏幕的正方形或矩形部分(例如,16x16像素瓦片,作为一个实例)。在界定瓦片之后,瓦片化单元32确定经变换对象42中的哪一些包含在所界定瓦片的每一者内。瓦片化单元32可接着实施LRZ算法36以针对被确定包含在每一所界定瓦片内的那些经变换对象42,确定这些经变换对象42中的哪一些是可见的(意味着不被也包含在所界定瓦片的同一者内的经变换对象42中的其它对象挡住)。瓦片化单元32可输出每一瓦片的可见性信息46(“vis info 46”),从而将此可见性信息46存储到芯片外存储器20,以供光栅化器像素着色器单元34稍后使用。为了确定可见性信息46,瓦片化单元32可界定芯片上存储器29上的LRZ缓冲器48。可针对每一瓦片形成LRZ缓冲器48,其中包含在对应瓦片内的那些经变换对象42按照深度布置(从前到后或从后到前),使得瓦片化单元32可确定经变换对象42中的一或多者被完全挡住。瓦片化单元32可接着输出可见性信息46,通常作为一和零的流,其中每一个一和零对应于一对象,其中一值指示对应对象相对于当前瓦片可见,且零指示对应对象相对于当前瓦片不可见。瓦片化单元32还可将经变换对象42存储到芯片外存储器20,从而用屏幕空间中界定的经变换对象42来代替模型空间中界定的对象42。
一旦瓦片化完成,且针对至少一个瓦片已产生可见性信息46并将其存储到芯片外存储器20,光栅化器像素着色器单元34就可开始渲染所述瓦片。光栅化器像素着色器单元34可执行上文所述的操作,以渲染一或多个瓦片中的每一像素。光栅化器像素着色器单元34可检索与待渲染的当前一或多个瓦片相关联的可见性信息46,从而将此可见性信息46存储到芯片上存储器29。光栅化器像素着色器单元34还可检索经变换对象42,其中的每一者可与指针相关联,如上文所述,其中这些指针在图2的实例中展示为指针50。指针50识别状态数据44被存储到的芯片外存储器20中的开始位置。光栅化器像素着色器单元34将经变换对象42存储到芯片上存储器29。
在检索到可见性信息46和经变换对象42之后,光栅化器像素着色器单元34开始渲染每一瓦片。光栅化器像素着色器单元34可使用指针50来检索状态数据44以渲染经变换对象42的像素数据。不是检索状态数据44而与可见性信息46无关,光栅化器像素着色器单元34可仅检索指示为在可见性信息46中可见的那些对象42的状态数据44。就是说,当可见性信息46指示对象42中的对应一者可见时,光栅化器像素着色器单元34反引用指针50中的相关联一者以检索状态数据44。当可见性信息46指示对象42中的对应一者不可见时,光栅化器像素着色器单元34跳过对象42中的对应一者,且不反引用指针50中的相关联一者来检索状态数据44。以此方式,光栅化器像素着色器单元34可实施本发明中所述的懒散状态数据检索技术,以减少对芯片外存储器20的存取的次数,且保存存储器总线40上的存储器总线带宽。
光栅化器像素着色器单元34可以此方式渲染每一瓦片,从而将经渲染瓦片作为经渲染瓦片52存储到芯片上存储器29。一旦完成渲染给定瓦片,光栅化器像素着色器单元34就可将经渲染瓦片52输出到帧缓冲器10,以供在显示器8上呈现,且如果经渲染图像的所有瓦片尚未完成,那么开始渲染下一瓦片。
图3是说明图形处理单元(例如图2的实例中所示的GPU 6)在实施本发明中所描述的懒散状态数据检索技术的实例操作的流程图。虽然下文相对于特定类型的多遍次GPU(即执行瓦片化或频段化遍次和渲染遍次的GPU 6)进行描述,但所述技术可由任何类型的多遍次GPU实施,其首先确定可见性信息,且接着使用此可见性信息来渲染图像。
最初,GPU 6的几何单元30可首先经由存储器总线40从芯片外存储器20检索界定模型空间中的一或多个对象42的图像数据,从而将此图像数据38存储到芯片上存储器29(60)。几何单元30可接着开始频段化遍次,从而以上文所述的方式将对象42从模型空间变换到屏幕空间(62)。几何单元30可更新芯片上存储器29中的对象42以反映变换,从而将经变换对象42输出到瓦片化单元32。
瓦片化单元32接收经变换的对象42,且通过确定屏幕空间中的瓦片来继续实施频段化遍次(64),所述瓦片如上文所述可为屏幕的正方形或矩形部分(例如,16x16像素瓦片,作为一个实例)。在确定瓦片之后,瓦片化单元32确定经变换对象42中的哪一些包含在所界定瓦片的每一者内。瓦片化单元32可接着实施LRZ算法36以针对被确定包含在每一所界定瓦片内的那些经变换对象42,以上文所述的方式确定这些经变换对象42中的哪一些是可见的(意味着不被也包含在所界定瓦片的同一者内的经变换对象42中的其它对象挡住),从而输出每一瓦片的可见性信息46(“vis info 46”)(66)。瓦片化单元32可接着将此可见性信息46存储到芯片外存储器20,以供光栅化器像素着色器单元34以后使用。可见性信息46通常包括一和零的流,其中每一个一和零对应于一对象,其中一值指示对应对象相对于当前瓦片可见,且零指示对应对象相对于当前瓦片不可见。瓦片化单元32还可将经变换对象42存储到芯片外存储器20,从而用屏幕空间中界定的经变换对象42来代替模型空间中界定的对象42。
一旦瓦片化完成,且针对至少一个瓦片已产生可见性信息46并将其存储到芯片外存储器20,光栅化器像素着色器单元34就可执行渲染遍次以开始渲染所述瓦片。光栅化器像素着色器单元34可执行上文所述的操作,以渲染一或多个瓦片中的每一像素。光栅化器像素着色器单元34可检索与待渲染的当前一或多个瓦片相关联的可见性信息46,从而将此可见性信息46存储到芯片上存储器29。光栅化器像素着色器单元34还可检索经变换对象42,其中的每一者可与指针相关联,如上文所述,其中这些指针在图2的实例中展示为指针50。虽然描述为与指针50相关联的对象42中的每一者,但对象42中的两者或两者以上可与指针50中的同一者相关联。指针50识别状态数据44被存储到的芯片外存储器20中的开始位置。光栅化器像素着色器单元34将经变换对象42存储到芯片上存储器29。
在检索到可见性信息46和经变换对象42之后,光栅化器像素着色器单元34开始渲染每一瓦片。光栅化器像素着色器单元34可使用指针50来检索状态数据44以渲染经变换对象42的像素数据。不是检索状态数据44而与可见性信息46无关,光栅化器像素着色器单元34可仅检索指示为在可见性信息46中可见的那些对象42的状态数据44。换句话说,光栅化器像素着色器单元34基于可见性信息46确定每一瓦片的经变换对象42是否可见(68)。当可见性信息46指示对象42中的对应一者可见(“是”70)时,光栅化器像素着色器单元34反引用指针50中的相关联一者以检索状态数据44,且基于检索到的状态数据44渲染经变换对象42中的对应一者(72、74)。当可见性信息46指示对象42中的对应一者不可见(“否”70)时,光栅化器像素着色器单元34跳过对象42中的对应一者,且不反引用指针50中的相关联一者来检索状态数据44。以此方式,光栅化器像素着色器单元34可实施本发明中所述的懒散状态数据检索技术,以减少对芯片外存储器20的存取的次数,且保存存储器总线40上的存储器总线带宽。
光栅化器像素着色器单元34可以此方式渲染每一瓦片。就是说,光栅化器像素着色器单元34可继续基于可见性信息46确定经变换对象42中的每一者对于当前瓦片是否可见,直到处理了对象42中的最后一者且/或为当前瓦片而渲染为止(76)。如果尚未处理和/或渲染最后的对象(“否”76),那么光栅化器像素着色器单元34以上文所述的方式继续,以基于可见性信息46渲染每一对象,从而仅在对应对象由可见性信息46指示为可见时检索状态数据44,且基于此检索到的状态数据44来渲染对象46中的对应一者(68到76)。如果已处理了对象42中的最后一者(“是”76),那么光栅化器像素着色器单元34将经渲染的瓦片作为经渲染瓦片52存储到芯片上存储器29,其接着存储到帧缓冲器10(78)。一旦完成渲染给定瓦片,如果经渲染图像的所有瓦片尚未完成,那么光栅化器像素着色器单元34就可开始渲染下一瓦片,重复上文所述的渲染遍次(“否”80;68到78)。如果已渲染最后一个瓦片且将其存储到帧缓冲器10(“是”80;意味着已渲染整个图像并将其存储到帧缓冲器10),那么GPU 6可告知显示器8,其可接着显示经渲染图像(82)。
图4是说明已从中产生示范性可见性信息92A到92I的经变换图像数据90的实例的图。在图4的实例中,经变换图像数据90表示已从模型空间变换到屏幕空间的图像数据。实施本发明中所描述的技术的GPU(例如,图2的实例中所示的GPU 6)可变换图像数据以形成经变换图像数据90。经变换图像数据90可包含经变换对象94A到94D(“对象94”),其在图4的实例中各自展示为表示为T1到T4的三角形。展示为具有虚线的那些对象,即图4的实例中的对象94C、94D表示不可见的对象。对象94C不可见,因为对象94C被对象94B完全挡住。
GPU 6的瓦片化单元32可在频段化或瓦片化遍次期间界定瓦片96A到96I(“瓦片96”),如上文所述,其中瓦片96可称为“瓦片”后接行(在图4的实例中表示为0、1和2)和列(在图4的实例中表示为A、B和C)。举例来说,瓦片96A也可称为“瓦片0A”。瓦片96B可称为“瓦片0B”,瓦片96D可称为“瓦片1A”,等等。GPU 6的瓦片化单元32可确定可见性信息92A到92I(“可见性信息92”),其可表示图2的实例中所示的可见性信息46的一个实例。可见性信息92中的每一者对应于瓦片96中的一者,如在可见性信息92中的每一者的左边所指示。就是说,可见性信息92A对应于瓦片0A(或瓦片96A),而可见性信息92B对应于瓦片0B(或瓦片96B),等等。
可见性信息92中的每一者针对对象94中的每一者包含一位(其中在图4的实例中,这些对象由T1到T4表示)。这些位中的一者的一值(“1”)指示对应对象T1到T4(或对象94)在对应瓦片0A到2C(或瓦片96)中可见。这些位中的一者的零值(“0”)指示对应对象T1到T4(或对象94)在对应瓦片0A到2C(或瓦片96)中不可见。举例来说,可见性信息92A包括值为1100的四个位的位流,从而指示对于瓦片96A,对象94A是可见的,且对象94B是可见的。可见性信息92B包括值为0100的四个位的位流,指示对于瓦片96B,对象94B是可见的。作为另一实例,可见性信息92E包括值为0100的四个位的位流,指示对于瓦片96E,对象94B是可见的,而对象94C是不可见的,因为其被瓦片96E中的对象94B完全挡住。以此方式,瓦片化单元32可产生经变换图像数据90的瓦片96中的每一者的可见性信息92中的对应一者。
光栅化器像素着色器34可接着检索可见性信息92,且根据本发明中在上文更详细地描述的技术,仅基于此可见性信息92检索状态数据。举例来说,考虑可见性信息92D,其指示对象94A是不可见的,对象94B是可见的,且对象94C和94D是不可见的。在此实例中,光栅化器像素着色器34可不针对对象94A从芯片外存储器20检索状态数据44,因为可见性信息92D指示此对象94A是不可见的。然而,对于对象94B,光栅化器像素着色器34可反引用指针50来检索用于渲染对象94B的状态数据44,因为根据可见性信息92D,此对象94B在瓦片内可见。在这方面,所述技术可使GPU能够仅在需要时检索状态数据,或换句话说,执行懒散状态数据更新或检索。
在一或多个实例中,所描述的功能可以硬件、软件、固件、或其任意组合来实施。如果以软件实施,那么可将功能作为一或多个指令或代码存储在包括非暂时性计算机可读媒体的制品上。计算机可读媒体可包含计算机数据存储媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索指令、代码和/或数据结构以供实施本发明中所描述的技术的任何可用媒体。作为实例(而非限制),所述计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置,或其它磁性存储装置,快闪存储器,或可用于运载或存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。如本文中所使用,磁盘及光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘使用激光以光学方式再现数据。上文的组合也应包含在计算机可读媒体的范围内。
所述代码可由一或多个处理器执行,例如一或多个DSP、通用微处理器、ASIC、FPGA,或其它等效集成或离散逻辑电路。另外,在一些方面中,本文所描述的功能性可在专用硬件或软件模块内提供。并且,可将所述技术完全实施于一或多个电路或逻辑元件中。
本发明的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元,以强调经配置以执行所揭示技术的装置的功能方面,但不一定要求由不同硬件单元来实现。相反,如上文所述,各种单元可组合在编解码器硬件单元中,或由互操作硬件单元的集合提供,包含如上文所述的一或多个处理器,结合合适的软件和/或固件。
已描述了各种实例。这些和其它实例在所附权利要求书的范围内。
Claims (24)
1.一种用于渲染图像数据的方法,其包括:
在图形处理单元中,在多遍次渲染过程的第一遍次期间,为由所述图像数据界定的多个基元产生可见性信息,其中所述可见性信息针对所述多个基元中的每一者指示在所述多遍次渲染过程的第二遍次期间,由所述多个基元形成的对象的任何部分在从所述图像数据渲染的图像的任何一处中是否将可见;以及
在所述图形处理单元中,基于所述多个基元的可见性信息,对所述图像数据的每个经渲染部分针对整个对象单次检索与所述对象相关联的状态数据,其中所述状态数据由所述多遍次渲染过程的所述第二遍次在渲染所述对象时使用,且其中所述第一遍次在所述第二遍次完成之前完成。
2.根据权利要求1所述的方法,其进一步包括将所述图像数据分段成多个瓦片,
其中产生可见性信息包括在所述多遍次渲染过程的所述第一遍次期间为所述多个瓦片中的每一者产生瓦片特定可见性信息,其中所述瓦片特定可见性信息指示对于所述多个瓦片中的对应一者及对于所述多个基元中的每一者,所述对象的任何部分在所述多遍次渲染过程的所述第二遍次期间在从所述图像数据渲染的所述图像的对应瓦片的任何一处中是否将可见,且
其中检索状态数据包括基于所述多个基元的所述瓦片特定可见性信息,针对整个对象对每个瓦片单次检索与所述对象相关联的状态数据,所述状态数据由所述多遍次渲染过程的所述第二遍次在渲染所述对象时使用,以输出所述图像的所述多个瓦片中的相应一者。
3.根据权利要求1所述的方法,
其中所述图形处理单元实施所述多遍次渲染过程,
其中所述对象包含识别存储所述状态数据的在所述图形处理单元外部的存储器中的开始位置的指针,且
其中检索所述状态数据包括反引用所述指针以存取在所述图形处理单元外部的所述存储器中的所述开始位置,且检索所述状态数据以供所述多遍次渲染过程的所述第二遍次在所述可见性信息指示所述对象可见时,在渲染所述图像数据的所述多个基元时使用。
4.根据权利要求1所述的方法,其中所述对象与其他对象共享所述状态数据。
5.根据权利要求1所述的方法,
其中所述图像数据在模型空间中界定所述多个基元,
其中所述方法进一步包括将所述多个基元从所述模型空间变换到屏幕空间,以便产生界定所述屏幕空间中的多个经变换基元的经变换图像数据,且
其中产生所述可见性信息包括在所述多遍次渲染过程的所述第一遍次期间,为所述经变换图像数据所界定的所述多个经变换基元产生可见性信息。
6.根据权利要求1所述的方法,其中产生所述可见性信息包括在渲染由所述图像数据界定的所述多个基元以产生所述图像之前,为由所述图像数据界定的所述多个基元产生所述可见性信息。
7.根据权利要求1所述的方法,其中产生所述可见性信息包括执行低分辨率Z缓冲器过程以产生所述可见性信息。
8.根据权利要求1所述的方法,其中所述图形处理单元驻存在移动计算装置内。
9.一种渲染图像数据的装置,所述装置包括:
用于在多遍次渲染过程的第一遍次期间为由所述图像数据界定的多个基元产生可见性信息的装置,其中所述可见性信息针对所述多个基元中的每一者指示在所述多遍次渲染过程的第二遍次期间,由所述多个基元形成的对象中的任何部分在从所述图像数据渲染的图像的任何一处中是否将可见;以及
用于基于所述多个基元的可见性信息,对所述图像数据的每个经渲染部分,针对整个对象单次检索与所述对象相关联的状态数据的装置,其中所述状态数据由所述多遍次渲染过程的所述第二遍次在渲染所述对象时使用,且其中所述第一遍次在所述第二遍次完成之前完成。
10.根据权利要求9所述的装置,其进一步包括用于将所述图像数据分段成多个瓦片的装置,
其中所述用于产生可见性信息的装置包括用于在所述多遍次渲染过程的所述第一遍次期间为所述多个瓦片中的每一者产生瓦片特定可见性信息的装置,其中所述瓦片特定可见性信息指示对于所述多个瓦片中的对应一者及对于所述多个基元中的每一者,所述对象的任何部分在所述多遍次渲染过程的所述第二遍次期间在从所述图像数据渲染的所述图像的对应瓦片的任何一处中是否将可见,且
其中所述用于检索状态数据的装置包括用于基于所述多个基元的所述瓦片特定可见性信息,针对整个对象对每个瓦片单次检索与所述对象相关联的状态数据的装置,所述状态数据由所述多遍次渲染过程的所述第二遍次在渲染所述对象时使用,以输出所述图像的所述多个瓦片中的相应一者。
11.根据权利要求9所述的装置,
其中图形处理单元实施所述多遍次渲染过程,且包含所述用于产生所述可见性信息的装置以及所述用于检索状态数据的装置,
其中所述对象包含识别存储所述状态数据的在所述图形处理单元外部的存储器中的开始位置的指针,且
其中所述用于检索所述状态数据的装置包括用于反引用所述指针以存储在所述图形处理单元外部的所述存储器中的所述开始位置且检索所述状态数据以供所述多遍次渲染过程的所述第二遍次在所述可见性信息指示所述对象可见时在渲染所述图像数据的所述多个基元时使用的装置。
12.根据权利要求9所述的装置,其中所述对象与其他对象共享所述状态数据。
13.根据权利要求9所述的装置,
其中所述图像数据在模型空间中界定所述多个基元,
其中所述装置进一步包括用于将所述多个基元从所述模型空间变换到屏幕空间以便产生界定所述屏幕空间中的多个经变换基元的经变换图像数据的装置,且
其中所述用于产生所述可见性信息的装置包括用于在所述多遍次渲染过程的所述第一遍次期间为所述经变换图像数据所界定的所述多个经变换基元产生可见性信息的装置。
14.根据权利要求9所述的装置,其中所述用于产生所述可见性信息的装置包括用于在渲染由所述图像数据界定的所述多个基元以产生所述图像之前为由所述图像数据界定的所述多个基元产生所述可见性信息的装置。
15.根据权利要求9所述的装置,其中所述用于产生所述可见性信息的装置包括用于执行低分辨率Z缓冲器过程以产生所述可见性信息的装置。
16.根据权利要求9所述的装置,其中所述装置包括移动计算装置。
17.一种渲染图像数据的装置,所述装置包括:
存储器,其经配置以存储状态数据;以及
处理器,其经配置以执行多遍次渲染过程以渲染来自所述图像数据的图像,其中所述处理器在所述多遍次渲染过程的第一遍次期间为由所述图像数据所界定的多个基元产生可见性信息,其中所述可见性信息针对所述多个基元中的每一者指示在所述多遍次渲染过程的第二遍次期间,由所述多个基元形成的对象的任何部分在从所述图像数据渲染的所述图像的任何一处中是否将可见,且基于所述多个基元的所述可见性信息,对所述图像数据的每个经渲染部分针对整个对象单次从所述存储器检索与所述对象相关联的所述状态数据,其中所述状态数据由所述多遍次渲染过程的所述第二遍次在渲染所述对象时使用,且其中所述第一遍次在所述第二遍次完成之前完成。
18.根据权利要求17所述的装置,其进一步包括将所述图像数据分段成多个瓦片,
其中所述处理器进一步经配置以在所述多遍次渲染过程的所述第一遍次期间为所述多个瓦片中的每一者产生瓦片特定可见性信息,其中所述瓦片特定可见性信息指示对于所述多个瓦片中的对应一者及对于所述多个基元中的每一者,所述对象的任何部分在所述多遍次渲染过程的所述第二遍次期间在从所述图像数据渲染的所述图像的对应瓦片的任何一处中是否将可见,且
其中所述处理器还经配置以基于所述多个基元的所述瓦片特定可见性信息,针对整个对象对每个瓦片单次检索与所述对象相关联的状态数据,所述状态数据由所述多遍次渲染过程的所述第二遍次在渲染所述对象时使用,以输出所述图像的所述多个瓦片中的相应一者。
19.根据权利要求17所述的装置,
其中所述处理器包括图形处理单元,
其中所述对象包含识别存储所述状态数据的在所述图形处理单元外部的存储器中的开始位置的指针,且
其中所述图形处理单元经配置以反引用所述指针以存取在所述图形处理单元外部的所述存储器中的所述开始位置,且检索所述状态数据以供所述多遍次渲染过程的所述第二遍次在所述可见性信息指示所述对象可见时,在渲染所述图像数据的所述多个基元时使用。
20.根据权利要求17所述的装置,其中所述对象与其他对象共享所述状态数据。
21.根据权利要求17所述的装置,
其中所述图像数据在模型空间中界定所述多个基元,
其中所述处理器进一步经配置以将所述多个基元从所述模型空间变换到屏幕空间,以便产生界定所述屏幕空间中的多个经变换基元的经变换图像数据,且在所述多遍次渲染过程的所述第一遍次期间为所述经变换图像数据所界定的所述多个经变换基元产生所述可见性信息。
22.根据权利要求17所述的装置,其中所述处理器经配置以在渲染由所述图像数据界定的所述多个基元以产生所述图像之前,为由所述图像数据界定的所述多个基元产生所述可见性信息。
23.根据权利要求17所述的装置,其中所述处理器进一步经配置以执行低分辨率Z缓冲器过程以产生所述可见性信息。
24.根据权利要求17所述的装置,其中所述装置包括移动计算装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/421,523 US10242481B2 (en) | 2012-03-15 | 2012-03-15 | Visibility-based state updates in graphical processing units |
US13/421,523 | 2012-03-15 | ||
PCT/US2013/027793 WO2013138061A1 (en) | 2012-03-15 | 2013-02-26 | Visibility-based state updates in graphical processing units |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104169974A CN104169974A (zh) | 2014-11-26 |
CN104169974B true CN104169974B (zh) | 2017-09-22 |
Family
ID=47846192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380013562.3A Active CN104169974B (zh) | 2012-03-15 | 2013-02-26 | 图形处理单元中基于可见性的状态更新 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10242481B2 (zh) |
EP (1) | EP2826024A1 (zh) |
JP (2) | JP2015514246A (zh) |
KR (1) | KR20140139553A (zh) |
CN (1) | CN104169974B (zh) |
WO (1) | WO2013138061A1 (zh) |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8902228B2 (en) | 2011-09-19 | 2014-12-02 | Qualcomm Incorporated | Optimizing resolve performance with tiling graphics architectures |
KR20130124618A (ko) * | 2012-05-07 | 2013-11-15 | 삼성전자주식회사 | 영상 처리 장치 및 방법 |
US9304730B2 (en) | 2012-08-23 | 2016-04-05 | Microsoft Technology Licensing, Llc | Direct communication between GPU and FPGA components |
US9741154B2 (en) * | 2012-11-21 | 2017-08-22 | Intel Corporation | Recording the results of visibility tests at the input geometry object granularity |
US9087410B2 (en) * | 2013-01-17 | 2015-07-21 | Qualcomm Incorporated | Rendering graphics data using visibility information |
US9565996B2 (en) | 2013-01-18 | 2017-02-14 | Ricoh Company, Ltd. | Plenoptic otoscope |
US9436970B2 (en) * | 2013-03-15 | 2016-09-06 | Google Technology Holdings LLC | Display co-processing |
US9552665B2 (en) * | 2013-03-18 | 2017-01-24 | Arm Limited | Hidden surface removal in graphics processing systems |
GB2520365B (en) * | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
GB2520366B (en) | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
US9280845B2 (en) * | 2013-12-27 | 2016-03-08 | Qualcomm Incorporated | Optimized multi-pass rendering on tiled base architectures |
GB2525636B (en) * | 2014-04-30 | 2020-08-19 | Geomerics Ltd | Graphics processing systems |
US9760968B2 (en) * | 2014-05-09 | 2017-09-12 | Samsung Electronics Co., Ltd. | Reduction of graphical processing through coverage testing |
US9569811B2 (en) * | 2014-06-26 | 2017-02-14 | Qualcomm Incorporated | Rendering graphics to overlapping bins |
US9842428B2 (en) * | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
US9792722B2 (en) * | 2014-12-18 | 2017-10-17 | Mediatek Inc. | Depth processing method and associated graphic processing circuit |
US9361697B1 (en) * | 2014-12-23 | 2016-06-07 | Mediatek Inc. | Graphic processing circuit with binning rendering and pre-depth processing method thereof |
US9601092B2 (en) | 2015-03-19 | 2017-03-21 | Intel Corporation | Dynamically managing memory footprint for tile based rendering |
KR102372026B1 (ko) * | 2015-05-29 | 2022-03-11 | 삼성디스플레이 주식회사 | 표시 장치 및 이를 포함하는 전자 시스템 |
US9773340B2 (en) * | 2015-06-12 | 2017-09-26 | Qualcomm Incorporated | Rendering using ray tracing to generate a visibility stream |
GB2539509B (en) * | 2015-06-19 | 2017-06-14 | Advanced Risc Mach Ltd | Method of and apparatus for processing graphics |
US9818221B2 (en) * | 2016-02-25 | 2017-11-14 | Qualcomm Incorporated | Start node determination for tree traversal for shadow rays in graphics processing |
US10096147B2 (en) * | 2016-03-10 | 2018-10-09 | Qualcomm Incorporated | Visibility information modification |
GB2549273B (en) * | 2016-04-11 | 2021-11-03 | Bae Systems Plc | Digital display apparatus |
US20170352182A1 (en) * | 2016-06-06 | 2017-12-07 | Qualcomm Incorporated | Dynamic low-resolution z test sizes |
GB2551388B (en) | 2016-06-17 | 2021-01-27 | Geomerics Ltd | Graphics processing systems |
GB2555797B (en) | 2016-11-09 | 2020-04-08 | Geomerics Ltd | Graphics processing to provide shadows on specular lighting |
US11222397B2 (en) * | 2016-12-23 | 2022-01-11 | Qualcomm Incorporated | Foveated rendering in tiled architectures |
KR102637736B1 (ko) * | 2017-01-04 | 2024-02-19 | 삼성전자주식회사 | 그래픽스 처리 방법 및 시스템 |
US10643374B2 (en) * | 2017-04-24 | 2020-05-05 | Intel Corporation | Positional only shading pipeline (POSH) geometry data processing with coarse Z buffer |
US10872394B2 (en) * | 2017-04-27 | 2020-12-22 | Daegu Gyeongbuk Institute Of Science And Technology | Frequent pattern mining method and apparatus |
US10157443B1 (en) * | 2017-07-28 | 2018-12-18 | Qualcomm Incorporated | Deferred batching of incremental constant loads |
US10755383B2 (en) * | 2017-09-29 | 2020-08-25 | Apple Inc. | Multi-space rendering with configurable transformation parameters |
CN110019596B (zh) * | 2017-09-30 | 2022-03-08 | 龙芯中科技术股份有限公司 | 待显示瓦片的确定方法、装置及终端设备 |
GB2574361B (en) | 2017-12-18 | 2021-03-24 | Advanced Risc Mach Ltd | Graphics Processing |
KR102181345B1 (ko) * | 2018-02-20 | 2020-11-20 | 한국전자통신연구원 | 이미지 타일 가시화 정보의 계층적 표현을 이용한 이미지 표현 방법, 이를 이용하는 디바이스 및 시스템 |
US10726610B2 (en) | 2018-08-29 | 2020-07-28 | Arm Limited | Efficient graphics processing using metadata |
US10650568B2 (en) * | 2018-09-13 | 2020-05-12 | Qualcomm Incorporated | In-flight adaptive foveated rendering |
US11195326B2 (en) * | 2018-09-21 | 2021-12-07 | Advanced Micro Devices, Inc. | Method and system for depth pre-processing and geometry sorting using binning hardware |
CN111475589B (zh) * | 2019-01-22 | 2023-05-12 | 阿里巴巴集团控股有限公司 | 图像数据的渲染方法及装置 |
US11145105B2 (en) * | 2019-03-15 | 2021-10-12 | Intel Corporation | Multi-tile graphics processor rendering |
US11514549B2 (en) * | 2020-02-03 | 2022-11-29 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by generating information in one rendering phase for use in another rendering phase |
US11080814B1 (en) | 2020-02-03 | 2021-08-03 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by pretesting against screen regions using prior frame information |
US11170461B2 (en) | 2020-02-03 | 2021-11-09 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by performing geometry analysis while rendering |
US11508110B2 (en) | 2020-02-03 | 2022-11-22 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by performing geometry analysis before rendering |
US11120522B2 (en) | 2020-02-03 | 2021-09-14 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by subdividing geometry |
US11263718B2 (en) | 2020-02-03 | 2022-03-01 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by pretesting against in interleaved screen regions before rendering |
US11321800B2 (en) | 2020-02-03 | 2022-05-03 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by region testing while rendering |
US11176734B1 (en) * | 2020-10-06 | 2021-11-16 | Qualcomm Incorporated | GPU hardware-based depth buffer direction tracking |
US11423520B2 (en) * | 2020-10-30 | 2022-08-23 | Facebook Technologies, Llc. | Distortion-corrected rasterization |
EP4248411A1 (en) * | 2020-11-18 | 2023-09-27 | Qualcomm Incorporated | Methods and apparatus for selection of rendering modes |
GB2605976A (en) * | 2021-04-19 | 2022-10-26 | M & M Info Tech Ltd | A computer-implemented method and SDK for rapid rendering of object-oriented environments with enhanced interaction |
US20220414011A1 (en) * | 2021-06-23 | 2022-12-29 | Intel Corporation | Opportunistic late depth testing to prevent stalling for overlapping cache lines |
CN115880436B (zh) * | 2022-12-26 | 2024-02-13 | 上海新迪数字技术有限公司 | 一种cad模型可见性确定方法、系统及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6646639B1 (en) * | 1998-07-22 | 2003-11-11 | Nvidia Corporation | Modified method and apparatus for improved occlusion culling in graphics systems |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5949428A (en) | 1995-08-04 | 1999-09-07 | Microsoft Corporation | Method and apparatus for resolving pixel data in a graphics rendering system |
US5808690A (en) * | 1996-01-02 | 1998-09-15 | Integrated Device Technology, Inc. | Image generation system, methods and computer program products using distributed processing |
US6762768B2 (en) * | 1998-06-01 | 2004-07-13 | Ati Technologies, Inc. | Method and apparatus for rendering an object using texture variant information |
US7023437B1 (en) | 1998-07-22 | 2006-04-04 | Nvidia Corporation | System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering |
US6259461B1 (en) | 1998-10-14 | 2001-07-10 | Hewlett Packard Company | System and method for accelerating the rendering of graphics in a multi-pass rendering environment |
US6380935B1 (en) | 1999-03-17 | 2002-04-30 | Nvidia Corporation | circuit and method for processing render commands in a tile-based graphics system |
US6684255B1 (en) | 1999-10-26 | 2004-01-27 | International Business Machines Corporation | Methods and apparatus for transmission and rendering of complex 3D models over networks using mixed representations |
JP2001283243A (ja) | 2000-03-31 | 2001-10-12 | Mitsubishi Electric Corp | 3次元グラフィックス描画データを記録した記録媒体およびその描画方法 |
US20020196252A1 (en) * | 2001-06-20 | 2002-12-26 | Min-Hao Liao | Method and apparatus for rendering three-dimensional images with tile-based visibility preprocessing |
US7301537B2 (en) | 2002-12-20 | 2007-11-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Graphics processing apparatus, methods and computer program products using minimum-depth occlusion culling and zig-zag traversal |
US7388581B1 (en) | 2003-08-28 | 2008-06-17 | Nvidia Corporation | Asynchronous conditional graphics rendering |
US20050122338A1 (en) | 2003-12-05 | 2005-06-09 | Michael Hong | Apparatus and method for rendering graphics primitives using a multi-pass rendering approach |
US7385608B1 (en) | 2003-12-31 | 2008-06-10 | 3Dlabs Inc. Ltd. | State tracking methodology |
GB0425204D0 (en) | 2004-11-15 | 2004-12-15 | Falanx Microsystems As | Processing of 3-dimensional graphics |
GB0524804D0 (en) | 2005-12-05 | 2006-01-11 | Falanx Microsystems As | Method of and apparatus for processing graphics |
US7468726B1 (en) | 2005-12-01 | 2008-12-23 | Nvidia Corporation | Culling in a vertex processing unit |
US20070171222A1 (en) * | 2006-01-23 | 2007-07-26 | Autodesk, Inc. | Application-independent method for capturing three-dimensional model data and structure for viewing and manipulation |
KR100793990B1 (ko) | 2006-09-18 | 2008-01-16 | 삼성전자주식회사 | 타일 기반 3차원 렌더링에서의 조기 z 테스트 방법 및시스템 |
US8207972B2 (en) | 2006-12-22 | 2012-06-26 | Qualcomm Incorporated | Quick pixel rendering processing |
GB2452731B (en) | 2007-09-12 | 2010-01-13 | Imagination Tech Ltd | Methods and systems for generating 3-dimensional computer images |
US8289319B2 (en) | 2007-10-08 | 2012-10-16 | Ati Technologies Ulc | Apparatus and method for processing pixel depth information |
GB0810311D0 (en) | 2008-06-05 | 2008-07-09 | Advanced Risc Mach Ltd | Graphics processing systems |
US8284197B2 (en) | 2008-07-11 | 2012-10-09 | Advanced Micro Devices, Inc. | Method and apparatus for rendering instance geometry |
GB0900700D0 (en) | 2009-01-15 | 2009-03-04 | Advanced Risc Mach Ltd | Methods of and apparatus for processing graphics |
US9058685B2 (en) | 2010-03-11 | 2015-06-16 | Broadcom Corporation | Method and system for controlling a 3D processor using a control list in memory |
US8339409B2 (en) | 2011-02-16 | 2012-12-25 | Arm Limited | Tile-based graphics system and method of operation of such a system |
CN102208112B (zh) | 2011-05-25 | 2015-08-05 | 威盛电子股份有限公司 | 景深消隐方法、三维图形处理方法及其装置 |
-
2012
- 2012-03-15 US US13/421,523 patent/US10242481B2/en active Active
-
2013
- 2013-02-26 CN CN201380013562.3A patent/CN104169974B/zh active Active
- 2013-02-26 EP EP13709005.6A patent/EP2826024A1/en not_active Ceased
- 2013-02-26 WO PCT/US2013/027793 patent/WO2013138061A1/en active Application Filing
- 2013-02-26 KR KR20147028657A patent/KR20140139553A/ko not_active Application Discontinuation
- 2013-02-26 JP JP2015500449A patent/JP2015514246A/ja not_active Withdrawn
-
2017
- 2017-11-13 JP JP2017218298A patent/JP2018060556A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6646639B1 (en) * | 1998-07-22 | 2003-11-11 | Nvidia Corporation | Modified method and apparatus for improved occlusion culling in graphics systems |
Non-Patent Citations (1)
Title |
---|
A Analysis of Mobile Graphics Pipeline with Real-time Performance;Jianhua Xiao 等;《ICALIP 2010》;20101125;第3.1节第3-4段,图2 * |
Also Published As
Publication number | Publication date |
---|---|
US10242481B2 (en) | 2019-03-26 |
KR20140139553A (ko) | 2014-12-05 |
JP2018060556A (ja) | 2018-04-12 |
JP2015514246A (ja) | 2015-05-18 |
US20130241938A1 (en) | 2013-09-19 |
CN104169974A (zh) | 2014-11-26 |
EP2826024A1 (en) | 2015-01-21 |
WO2013138061A1 (en) | 2013-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104169974B (zh) | 图形处理单元中基于可见性的状态更新 | |
US10049426B2 (en) | Draw call visibility stream | |
CN106233326B (zh) | 图形处理中基于显现目标的灵活显现 | |
US7978205B1 (en) | Systems and methods for providing an enhanced graphics pipeline | |
US9704055B2 (en) | Occlusion render mechanism for point clouds | |
KR101633243B1 (ko) | 가시성 정보를 사용한 그래픽 데이터의 렌더링 | |
CN106780709B (zh) | 一种确定全局光照信息的方法及装置 | |
CN106575228A (zh) | 图形处理中的渲染目标命令重新排序 | |
CN105210111B (zh) | 基于每仓可见性信息以及添加的线内操作的渲染命令的条件性执行 | |
CN106233338A (zh) | 用于光线跟踪应用中的树遍历的开始节点确定 | |
JP2007514230A5 (zh) | ||
CN107209951B (zh) | 单遍表面溅射 | |
CN116091676B (zh) | 虚拟对象的面部渲染方法及点云特征提取模型的训练方法 | |
CN105144243A (zh) | 数据可视化 | |
CN105122310A (zh) | 用于基于瓦片的渲染的帧内时戳 | |
CN106575429A (zh) | 图形处理单元中的高阶滤波 | |
CN108780582B (zh) | 可见性信息修改 | |
CN102110308A (zh) | 三维实心图形显示系统及方法 | |
CN111445563B (zh) | 一种图像生成的方法以及相关装置 | |
CN116228943A (zh) | 虚拟对象面部重建方法、面部重建网络训练方法及装置 | |
CN106575428A (zh) | 图形处理单元中的高阶滤波 | |
CN116977532A (zh) | 立方体纹理生成方法、装置、设备、存储介质和程序产品 | |
WO2024027237A1 (zh) | 渲染的优化方法、电子设备和计算机可读存储介质 | |
CN117899490A (zh) | 虚拟模型的处理方法、装置、计算机设备及存储介质 | |
CN117557712A (zh) | 渲染方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |