CN116075862A - 对象空间渲染中的布告板层 - Google Patents
对象空间渲染中的布告板层 Download PDFInfo
- Publication number
- CN116075862A CN116075862A CN202180056285.9A CN202180056285A CN116075862A CN 116075862 A CN116075862 A CN 116075862A CN 202180056285 A CN202180056285 A CN 202180056285A CN 116075862 A CN116075862 A CN 116075862A
- Authority
- CN
- China
- Prior art keywords
- billboards
- billboard
- volume elements
- configuration
- viewpoint
- 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.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims description 65
- 238000012545 processing Methods 0.000 claims abstract description 109
- 238000000034 method Methods 0.000 claims abstract description 95
- 230000015654 memory Effects 0.000 claims description 38
- 238000013507 mapping Methods 0.000 claims description 14
- 238000002156 mixing Methods 0.000 claims description 11
- 230000009466 transformation Effects 0.000 claims description 8
- 239000002245 particle Substances 0.000 description 50
- 238000010586 diagram Methods 0.000 description 32
- 230000006870 function Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 8
- 239000000203 mixture Substances 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 239000003897 fog Substances 0.000 description 3
- 239000007788 liquid Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/06—Topological mapping of higher dimensional structures onto lower dimensional surfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/36—Level of detail
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/62—Semi-transparency
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本公开涉及用于图形处理的方法和装置。该装置可以配置与多个帧中的第一帧的视点相关联的多个布告板,多个布告板被配置在至少部分地围绕视点的一个或多个层中,多个布告板的配置是基于在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素的。该装置还可以渲染与在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素中的每一个体积元素相关联的图像,所渲染的图像包括一组像素。该装置还可以基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据存储在至少一个布告板中,该数据对应于该组像素。
Description
相关申请的交叉引用
本申请要求享有于2020年8月18日提交的题为“METHODS AND APPARATUS FORBILLBOARD LAYERS IN OBJECT-SPACE RENDERING”的美国临时申请序列号63/067,050以及于2021年8月11日提交的题为“BILLBOARD LAYERS IN OBJECT-SPACE RENDERING”的美国专利申请第17/400,031号的权益,该美国临时申请和美国专利申请以其整体通过引用明确并入本文。
技术领域
本公开总体上涉及处理系统,并且更具体地,涉及用于图形处理的一种或多种技术。
背景技术
计算设备通常利用图形处理单元(GPU)来加速对图形数据的渲染以供显示。这样的计算设备可以包括例如计算机工作站、诸如所谓的智能电话之类的移动电话、嵌入式系统、个人计算机、平板计算机和视频游戏控制台。GPU执行图形处理流水线,该图形处理流水线包括一个或多个处理阶段,这些处理阶段一起操作以执行图形处理命令并输出帧。中央处理单元(CPU)可以通过向GPU发出一个或多个图形处理命令来控制GPU的操作。现代CPU典型地能够同时执行多个应用,这些应用中的每一个可能需要在执行期间利用GPU。为显示器上的视觉呈现提供内容的设备通常包括GPU。
典型地,设备的GPU被配置为执行图形处理流水线中的过程。然而,随着无线通信和更小的手持设备的出现,已经发展出针对改进的图形处理的增加的需要。
发明内容
以下呈现了一个或多个方面的简化概述,以便提供对这种方面的基本理解。本发明内容不是对所有预期方面的广泛概述,并且既不旨在识别所有方面的关键元素也不旨在描述任何或所有方面的范围。其唯一目的是以简化的形式呈现一个或多个方面的一些概念,作为稍后呈现的更详细描述的序言。
在本公开的一个方面,提供了一种方法、一种计算机可读介质和一种装置。该装置可以是服务器、客户端设备、中央处理单元(CPU)、图形处理单元(GPU)或可以执行图形处理的任何装置。该装置可以计算与第一帧的视点相关联的多个布告板(billboard)的量。该装置还可以配置与多个帧中的第一帧的视点相关联的多个布告板,多个布告板被配置在至少部分地围绕视点的一个或多个层中,多个布告板的配置是基于在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素的。该装置还可以生成与第一帧的视点相关联的多个布告板,其中,多个布告板是基于多个布告板的配置生成的。另外地,该装置可以渲染与在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素中的每一个体积元素相关联的图像,所渲染的图像包括一组像素。该装置还可以基于以下各项中的至少一个来计算用于映射的配置:一个或多个体积元素的几何配置或者多个布告板的几何配置。此外,该装置可以基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据映射到多个布告板中的至少一个布告板。该装置还可以基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据存储在多个布告板中的至少一个布告板中,该数据对应于一组像素。此外,该装置可以基于存储在至少一个布告板中的数据来混合多个布告板中的至少一个布告板。该装置还可以基于以下各项中的至少一个来调整多个布告板的配置:视点或者一个或多个体积元素。
本公开的一个或多个示例的细节在附图和下面的描述中阐述。本公开的其他特征、目的和优点将根据描述和附图以及权利要求显而易见。
附图说明
图1是示出根据本公开的一种或多种技术的示例内容生成系统的框图。
图2示出了根据本公开的一种或多种技术的示例深度对齐的布告板的图。
图3示出了根据本公开的一种或多种技术的示例布告板配置的图。
图4A示出了根据本公开的一种或多种技术的示例布告板配置的图。
图4B示出了根据本公开的一种或多种技术的示例布告板配置的图。
图5A示出了根据本公开的一种或多种技术的示例布告板配置的图。
图5B示出了根据本公开的一种或多种技术的示例布告板配置的图。
图6示出了根据本公开的一种或多种技术的示例布告板配置的图。
图7示出了根据本公开的一种或多种技术的示例布告板配置的图。
图8是示出根据本公开的一种或多种技术的在组件之间的示例通信的通信流程图。
图9示出了根据本公开的一种或多种技术的示例方法的示例流程图。
图10示出了根据本公开的一种或多种技术的示例方法的示例流程图。
具体实施方式
对象空间渲染可以用于流送分割渲染应用。而且,对象空间渲染可以存储针对场景或帧中的每个表面点的着色信息。在一些方面,这可以针对每个表面点利用唯一的纹理坐标。体积效果(VFX)(例如,雾、液体、粒子系统(例如,火、雨等))可能无法定义表面。VFX的对象空间渲染可以解决场景或帧中每个三维(3D)点的着色信息。此外,索引可能是稀疏的,例如,存储对象在哪里可见(例如,粒子)的信息。本公开的方面可以例如在对象空间渲染中确定如何放置布告板或层。本公开的方面还可以确定如何在对象空间渲染中将着色信息指派给布告板或层。此外,本公开的方面可以确定何时刷新对象空间渲染中的布告板或层。
系统、装置、计算机程序产品和方法的各种方面在下文中参考附图进行更全面的描述。然而,本公开可以以许多不同的形式体现并且不应被解释为限于贯穿本公开呈现的任何特定结构或功能。而是,提供这些方面使得本公开将是彻底和完整的,并且将本公开的范围充分地传达给本领域技术人员。基于本文的教导,本领域技术人员应当理解,本公开的范围旨在覆盖本文公开的系统、装置、计算机程序产品和方法的任何方面,无论是独立于本公开的其他方面实现还是与本公开的其他方面结合实现。例如,可以使用本文阐述的任何数量的方面来实现装置或实践方法。此外,本公开的范围旨在覆盖这样的装置或方法:其使用作为本文阐述的本公开的各种方面的补充或除本文阐述的本公开的各种方面之外的其他结构、功能、或结构和功能来实践。本文公开的任何方面可以由权利要求的一个或多个元素来体现。
尽管本文描述了各种方面,但是这些方面的许多变型和排列落入本公开的范围内。尽管提及了本公开的方面的一些潜在益处和优点,但是本公开的范围并不旨在限于特定的益处、用途或目标。而是,本公开的方面旨在广泛适用于不同的无线技术、系统配置、网络和传输协议,其中的一些在附图和以下描述中通过示例的方式示出。详细描述和附图仅是对本公开的说明而非限制,本公开的范围由所附权利要求及其等效物限定。
参考各种装置和方法呈现了若干个方面。这些装置和方法在下面的详细描述中被描述并且在附图中由各种块、组件、电路、过程、算法等(统称为“元素”)来说明。这些元素可以使用电子硬件、计算机软件或其任何组合来实现。这些元素是作为硬件还是软件来实现取决于特定的应用和施加到整个系统的设计约束。
通过示例的方式,元素或元素的任何部分或元素的任何组合可以被实现为包括一个或多个处理器(其也可以称为处理单元)的“处理系统”。处理器的示例包括微处理器、微控制器、图形处理单元(GPU)、通用GPU(GPGPU)、中央处理单元(CPU)、应用处理器、数字信号处理器(DSP)、精简指令集计算(RISC)处理器、片上系统(SOC)、基带处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立硬件电路和被配置为执行贯穿本公开描述的各种功能的其他合适的硬件。处理系统中的一个或多个处理器可以执行软件。软件可以宽泛地被解释为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件组件、应用、软件应用、软件包、例程、子例程、对象、可执行文件、执行线程、过程、函数等,而无论被称为软件、固件、中间件、微码、硬件描述语言还是其他名称。术语应用可以指代软件。如本文所述,一种或多种技术可以指代被配置为执行一种或多种功能的应用,即,软件。在这样的示例中,应用可以存储在存储器(例如,处理器的片上存储器、系统存储器或任何其他存储器)上。本文描述的硬件(例如,处理器)可以被配置为执行应用。例如,应用可以被描述为包括代码,该代码当由硬件执行时,使得硬件执行本文描述的一种或多种技术。作为示例,硬件可以访问来自存储器的代码并且执行从存储器访问的代码以执行本文描述的一种或多种技术。在一些示例中,组件在本公开中被标识。在这样的示例中,组件可以是硬件、软件或其组合。这些组件可以是单独的组件或单个组件的子组件。
因此,在本文描述的一个或多个示例中,所描述的功能可以以硬件、软件或其任何组合来实现。如果以软件实现,则功能可以存储在计算机可读介质上或编码为计算机可读介质上的一个或多个指令或代码。计算机可读介质包括计算机存储介质。存储介质可以是计算机可以访问的任何可用介质。通过示例而非限制的方式,这种计算机可读介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、光盘存储装置、磁盘存储装置、其他磁性存储设备、上述类型的计算机可读介质的组合、或可以用于以计算机可以访问的指令或数据结构的形式存储计算机可执行代码的任何其他介质。
通常,本公开描述了用于在单个设备或多个设备中具有图形处理流水线、改进图形内容的渲染和/或减少处理单元(即,被配置为执行本文描述的一种或多种技术的任何处理单元,例如,GPU)的负载的技术。例如,本公开描述了用于在利用图形处理的任何设备中进行图形处理的技术。贯穿本公开内容描述了其他示例益处。
如本文所使用的,术语“内容”的实例可以指代“图形内容”、“3D图形设计的产品”、它们的演示(rendition),即,“图像”,反之亦然。无论术语是用作形容词、名词还是其他词性,都是如此。在一些示例中,如本文所使用的,术语“图形内容”可以指代由图形处理流水线的一个或多个进程产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以指代由被配置为执行图形处理的处理单元产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以指代由图形处理单元产生的内容。
在一些示例中,如本文所使用的,术语“显示内容”可以指代由被配置为执行显示处理的处理单元生成的内容。在一些示例中,如本文所使用的,术语“显示内容”可以指代由显示处理单元生成的内容。图形内容可以被处理以变成显示内容。例如,图形处理单元可以将诸如帧之类的图形内容输出到缓冲器(其可以被称为帧缓冲器)。显示处理单元可以从缓冲器中读取图形内容(例如,一个或多个帧),并对其执行一种或多种显示处理技术以生成显示内容。例如,显示处理单元可以被配置为对一个或多个所渲染的层执行合成以生成帧。作为另一示例,显示处理单元可以被配置为将两个或更多个层进行合成、混合或以其他方式将其组合在一起成为单个帧。显示处理单元可以被配置为对帧执行缩放,例如,放大或缩小。在一些示例中,帧可以指代层。在其他示例中,帧可以指代已经混合在一起以形成帧的两个或更多个层,即,帧包括两个或更多个层,并且包括两个或更多个层的帧随后可以被混合。
图1是示出被配置为实现本发明的一种或多种技术的示例系统100的框图。系统100包括设备104。设备104可以包括用于执行本文描述的各种功能的一个或多个组件或电路。在一些示例中,设备104的一个或多个组件可以是SOC的组件。设备104可以包括被配置为执行本公开的一种或多种技术的一个或多个组件。在所示示例中,设备104可以包括处理单元120、内容编码器/解码器122和系统存储器124。在一些方面,设备104可以包括多个可选组件,例如,通信接口126、收发机132、接收机128、发射机130、显示处理器127和一个或多个显示器131。对显示器131的引用可以指代一个或多个显示器131。例如,显示器131可以包括单个显示器或多个显示器。显示器131可以包括第一显示器和第二显示器。第一显示器可以是左眼显示器并且第二显示器可以是右眼显示器。在一些示例中,第一显示器和第二显示器可以接收不同的帧以在其上呈现。在其他示例中,第一显示器和第二显示器可以接收相同的帧以在其上呈现。在进一步的示例中,图形处理的结果可能不显示在设备上,例如,第一显示器和第二显示器可能不接收用于在其上呈现的任何帧。相反,帧或图形处理结果可以被传送到另一设备。在某些方面,这可以称为分割渲染。
处理单元120可以包括内部存储器121。处理单元120可以被配置为例如在图形处理流水线107中执行图形处理。内容编码器/解码器122可以包括内部存储器123。在一些示例中,设备104可以包括显示处理器(例如,显示处理器127),以在由一个或多个显示器131呈现之前对由处理单元120生成的一个或多个帧执行一种或多种显示处理技术。显示处理器127可以被配置为执行显示处理。例如,显示处理器127可以被配置为对由处理单元120生成的一个或多个帧执行一种或多种显示处理技术。一个或多个显示器131可以被配置为显示或以其他方式呈现由显示处理器处理的帧127。在一些示例中,一个或多个显示器131可以包括以下各项中的一个或多个:液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、投影显示设备、增强现实显示设备、虚拟现实显示设备、头戴式显示器或任何其他类型的显示设备。
在处理单元120和内容编码器/解码器122外部的存储器(例如,系统存储器124)可以由处理单元120和内容编码器/解码器122访问。例如,处理单元120和内容编码器/解码器122可以被配置为从外部存储器(例如,系统存储器124)读取和/或写入到外部存储器。处理单元120和内容编码器/解码器122可以通过总线通信地耦合到系统存储器124。在一些示例中,处理单元120和内容编码器/解码器122可以通过总线或不同的连接彼此通信地耦合。
内容编码器/解码器122可以被配置为从诸如系统存储器124和/或通信接口126之类的任何源接收图形内容。系统存储器124可以被配置为存储接收到的经编码的或经解码的图形内容。内容编码器/解码器122可以被配置为以经编码的像素数据的形式例如从系统存储器124和/或通信接口126接收经编码的或经解码的图形内容。内容编码器/解码器122可以被配置为编码或解码任何图形内容。
内部存储器121或系统存储器124可以包括一个或多个易失性或非易失性存储器或存储设备。在一些示例中,内部存储器121或系统存储器124可以包括RAM、SRAM、DRAM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、磁数据介质或光存储介质或任何其他类型的存储器。
根据一些示例,内部存储器121或系统存储器124可以是非暂时性存储介质。术语“非暂时性”可以指示存储介质不体现在载波或传播的信号中。然而,术语“非暂时性”不应被解释为意味着内部存储器121或系统存储器124是不可移除的或其内容是静态的。作为一个示例,系统存储器124可以从设备104移除并且移动到另一设备。作为另一示例,系统存储器124可能不能从设备104移除。
处理单元120可以是中央处理单元(CPU)、图形处理单元(GPU)、通用GPU(GPGPU)或可以被配置为执行图形处理的任何其他处理单元。在一些示例中,处理单元120可以集成到设备104的主板中。在一些示例中,处理单元120可以存在于安装在设备104的主板中的端口中的图形卡上,或者可以以其他方式并入被配置为与设备104互操作的外围设备内。处理单元120可以包括一个或多个处理器,例如,一个或多个微处理器、GPU、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、算术逻辑单元(ALU)、数字信号处理器(DSP)、分立逻辑、软件、硬件、固件、其他等效集成或分立逻辑电路装置或其任何组合。如果这些技术部分地以软件实现,则处理单元120可以将用于软件的指令存储在合适的、非暂时性计算机可读存储介质(例如,内部存储器121)中,并且可以使用一个或多个处理器以硬件执行指令来执行本公开的技术。前述任何一种(包括硬件、软件、硬件和软件的组合等)都可以被认为是一个或多个处理器。
内容编码器/解码器122可以是被配置为执行内容解码的任何处理单元。在一些示例中,内容编码器/解码器122可以集成到设备104的主板中。内容编码器/解码器122可以包括一个或多个处理器,例如,一个或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、算术逻辑单元(ALU)、数字信号处理器(DSP)、视频处理器、分立逻辑、软件、硬件、固件、其他等效集成或分立逻辑电路装置或其任何组合。如果这些技术部分地以软件实现,则内容编码器/解码器122可以将用于软件的指令存储在合适的、非暂时性计算机可读存储介质(例如,内部存储器123)中,并且可以使用一个或一个或多个处理器以硬件执行指令来执行本公开的技术。前述任何一种(包括硬件、软件、硬件和软件的组合等)都可以被认为是一个或多个处理器。
在一些方面,系统100可以包括可选的通信接口126。通信接口126可以包括接收机128和发射机130。接收机128可以被配置为执行本文关于设备104描述的任何接收功能。另外,接收机128可以被配置为从另一设备接收信息,例如,眼睛或头部位置信息、渲染命令或定位信息。发射机130可以被配置为执行本文关于设备104描述的任何发送功能。例如,发射机130可以被配置为向另一设备发送信息,该信息可以包括针对内容的请求。接收机128和发射机130可以组合为收发机132。在这种示例中,收发机132可以被配置为执行本文关于设备104所描述的任何接收功能和/或发送功能。
再次参考图1,在某些方面,处理单元120可以包括确定组件198,其被配置为计算与第一帧的视点相关联的多个布告板的量。确定组件198还可以被配置为配置与多个帧中的第一帧的视点相关联的多个布告板,多个布告板被配置在至少部分地围绕视点的一个或多个层中,多个布告板的配置是基于在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素的。确定组件198还可以被配置为生成与第一帧的视点相关联的多个布告板,其中多个布告板是基于多个布告板的配置生成的。确定组件198还可以被配置为渲染与在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素中的每一个体积元素相关联的图像,所渲染的图像包括一组像素。确定组件198还可被配置为基于一个或多个体积元素的几何配置或多个布告板的几何配置中的至少一个来计算用于映射的配置。确定组件198还可以被配置为基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像将数据映射到多个布告板中的至少一个布告板。确定组件198还可以被配置为基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据存储在多个布告板中的至少一个布告板中,该数据对应于该组像素。确定组件198还可以被配置为基于存储在至少一个布告板中的数据来混合多个布告板中的至少一个布告板。确定组件198还可以被配置为基于一个或多个体积元素或视点中的至少一个来调整多个布告板的配置。
如本文所述,诸如设备104之类的设备可以指代被配置为执行本文所述的一种或多种技术的任何设备、装置或系统。例如,设备可以是服务器、基站、用户设备、客户端设备、站点、接入点、计算机(例如,个人计算机、台式计算机、膝上型计算机、平板计算机、计算机工作站或大型计算机)、最终产品、装置、电话、智能电话、服务器、视频游戏平台或控制台、手持设备(例如,便携式视频游戏设备或个人数字助理(PDA))、可穿戴计算设备(例如,智能手表、增强现实设备或虚拟现实设备)、非可穿戴设备、显示器或显示设备、电视机、电视机机顶盒、中间网络设备、数字媒体播放器、视频流送设备、内容流送设备、车载计算机、任何移动设备、被配置为生成图形内容的任何设备、或被配置为执行本文描述的一种或多种技术的任何设备。本文的过程可以被描述为由特定组件(例如,GPU)执行,但是,在进一步的实施例中,本文的过程可以使用其他组件(例如,CPU)来执行,这与所公开的实施例一致。
GPU可以在GPU流水线中处理多种类型的数据或数据分组。例如,在某些方面,GPU可以处理两种类型的数据或数据分组,例如,上下文寄存器分组和绘制调用数据。上下文寄存器分组可以是一组全局状态信息,例如,关于全局寄存器、着色程序或常量数据的信息,它们可以调整处理图形上下文的方式。例如,上下文寄存器分组可以包括关于颜色格式的信息。在上下文寄存器分组的某些方面,可以存在指示哪个工作负载属于上下文寄存器的位。而且,可以存在同时和/或并行运行的多个函数或程序。例如,函数或程序可以描述某个操作,例如,颜色模式或颜色格式。因此,上下文寄存器可以定义GPU的多种状态。
上下文状态可以用于确定单独的处理单元如何运行,例如,顶点获取器(VFD)、顶点着色器(VS)、着色器处理器或几何处理器,和/或处理单元在什么模式下起作用。为此,GPU可以使用上下文寄存器和编程数据。在一些方面,GPU可以基于模式或状态的上下文寄存器定义在流水线中生成工作负载,例如,顶点或像素工作负载。某些处理单元(例如,VFD)可以使用这些状态来确定某些功能,例如,如何组装顶点。由于这些模式或状态可能会改变,因此GPU可能需要改变对应的上下文。此外,对应于模式或状态的工作负载可以跟随改变的模式或状态。
GPU可以以各种不同的方式渲染图像。在某些实例中,GPU可以使用渲染或分片式渲染(tiled rendering)来渲染图像。在分片式渲染GPU中,可以将图像划分或分离为不同的部分或分片(tile)。划分图像之后,每个部分或分片可以被单独渲染。分片式渲染GPU可以将计算机图形图像划分为网格格式,使得网格的每个部分(即,分片)被单独渲染。在一些方面,在装箱通(binning pass)期间,可以将图像划分为不同的箱(bin)或分片。此外,在装箱通期间,可以例如使用绘制调用在某些箱中对不同的基元(primitive)进行着色。在一些方面,在装箱通期间,可以构建可见性流,其中可以识别可见基元或绘制调用。
在渲染的某些方面,可以存在多个处理阶段或通(pass)。例如,可以在两个通(例如,可见性通(visibility pass)和渲染通(rendering pass))中执行渲染。在可见性通期间,GPU可以输入渲染工作负载,记录基元或三角形的位置,然后确定哪些基元或三角形落入帧的哪个部分。在可见性通的某些方面,GPU还可以识别或标记可见性流中每个基元或三角形的可见性。在渲染通期间,GPU可以输入可见性流并一次处理一帧的一部分。在一些方面,可以分析可见性流以确定哪些基元是可见的或不可见的。因此,可以处理可见的基元。通过这样做,GPU可以减少处理或渲染不可见基元的不必要工作负载。
在一些方面,渲染可以在多个位置和/或多个设备上执行,例如,以便在不同设备之间划分渲染工作负载。例如,渲染可以在服务器和客户端设备之间分割,这可以称为“分割渲染”。在某些实例中,分割渲染可以是一种用于将内容带到用户设备或头戴式显示器(HMD)的方法,其中图形处理的一部分可以在设备或HMD外部(例如,在服务器处)执行。
可以针对许多不同类型的应用(例如,虚拟现实(VR)应用、增强现实(AR)应用和/或扩展现实(XR)应用)执行分割渲染。在VR应用中,在用户设备处显示的内容可以对应于人造或动画内容,例如,在服务器或用户设备处渲染的内容。在AR或XR内容中,在用户设备处显示的内容的一部分可以对应于真实世界内容,例如,真实世界中的对象,并且内容的一部分可以是人造或动画内容。而且,人造或动画内容和真实世界内容可以显示在光学透视或视频透视设备中,使得用户可以同时观看真实世界对象和人造或动画内容。在一些方面,人造或动画内容可以称为增强内容,反之亦然。
分离式XR或AR系统还可能在将所渲染的内容递送到客户端显示器时引入延时。在某些方面,与客户端渲染相比,在服务器上进行渲染时这种延时甚至更高,但它也可以实现更复杂的XR或AR应用。此外,在计算相机姿势的时间和内容出现在客户端显示器上的时间之间可能存在不可忽略的延时。例如,分离式XR或AR系统中可能存在一定量的延时。在一些方面,可以在服务器处确定或渲染针对场景的像素信息或眼睛缓冲器信息,并在单独的布告板或层中将其发送到客户端。例如,可以确定或渲染增强,并在一个布告板或层中将其发送到客户端,并且可以确定真实世界对象并在另一个布告板或层中发送该真实世界对象。
图2示出了根据本公开的一种或多种技术的包括深度对齐的布告板的图200。图200包括布告板或层210、220、230、240和250。如上所述,布告板210、220、230、240和250可以表示不同的内容,例如,真实世界内容或增强内容。此外,图2示出了在像素流送架构中布告板210、220、230、240和250的使用。
如图2所示,布告板是一组具有纹理的形状,例如,矩形(具有alpha)或三角形,其可能包括多个特性(quality)。例如,布告板可以面向用户或观看者,也可以与某个轴(例如,x轴、y轴或z轴)对齐。可能会使用大量的布告板,其中每个布告板都相对简单,例如,一些具有纹理的矩形或三角形。在某些游戏或应用中,布告板可能会显示预渲染的内容,例如,云。图形处理的某些方面可能会将体积效果(VFX)渲染到布告板上。渲染也可以是动态的,例如,每几帧更新一次,例如,每两帧或每三帧更新一次。
在图形处理的一些方面,对象空间渲染可以用于流送分割渲染应用。例如,对象空间渲染可以指代在对象空间中执行着色的流送渲染或分割渲染流水线。而且,对象空间渲染可以存储针对场景或帧中的每个表面点的着色信息。在一些方面,针对场景/帧中的每个表面点存储着色信息的过程可以利用针对场景/帧中的每个表面点的唯一纹理坐标。诸如雾、液体或粒子系统(例如,火、雨等)之类的体积效果(VFX)可能无法定义场景/帧中的表面。VFX的对象空间渲染可以解决场景或帧中每个3D点的着色信息。此外,索引可能是稀疏的,例如,存储对象在哪里可见(例如,粒子)的信息。
在一些实例中,对象空间渲染可以利用布告板(即,具有纹理的象限)。例如,布告板可以被布置在对象空间渲染内。布告板也可以利用着色信息。基于以上内容,确定如何在对象空间渲染中放置或布置布告板或层可能是有益的。确定如何在对象空间渲染中将着色信息指派给布告板或层也可能是有益的。此外,确定何时在对象空间渲染中刷新布告板或层以及刷新布告板或层的频率可能是有益的。
本公开的方面可以确定如何在对象空间渲染中放置或布置布告板或层。本公开的方面还可以确定如何在对象空间渲染中将着色信息指派给布告板或层。此外,本公开的方面可以确定何时在对象空间渲染中刷新布告板或层以及刷新布告板或层的频率。
在一些实例中,本公开的方面可以围绕用户或观看者共中心地布置布告板(即,具有纹理的象限)或层。本公开的方面还可以将布告板连同表面着色一起存储在对象空间着色缓冲器或着色图集(atlas)中。当渲染VFX时,本公开的方面可以将着色信息写入最接近的布告板像素,而不是写入正常的帧缓冲器。本公开的方面还可以渲染来自常规对象和布告板的最终图像。
此外,在布告板生成和/或渲染到布告板中之后,布告板可以像着色图集中的任何其他几何对象(例如,透明对象)一样被处理。处理着色图集的某些方面(例如,着色图集中的透明度)可以利用多个步骤。例如,着色图集可以被编码(例如,运动图像专家组(MPEG)编码),并被发送到客户端。客户端还可以解码MPEG和/或使用它来渲染纹理映射的基元或具有alpha或alpha值的三角形。布告板(即,alpha掩蔽的三角形)可以自然地与场景或帧的其余部分混合。
图3示出了根据本公开的一种或多种技术的示例布告板配置的图300。图300包括多个布告板或层,例如,布告板301、布告板302、布告板303和布告板304。如图3所示,本公开的方面可以在围绕用户或观看者的共中心层中放置布告板,例如,布告板301-304。例如,布告板可以圆柱形或球形格式布置,如图300中的布告板配置所示。例如,布告板配置可以在用户的视场(FOV)内部,例如,在180度FOV内部。
本公开的方面还可以将布告板的量减少到一定量,即,布告板的最小量。即,本公开的方面可以将布告板的量减少到位于视截锥体(viewing frustum)内部的布告板。另外地,本公开的方面可以将布告板的量减少到接收体积效果(VFX)的某个部件或部分的布告板。
图4A和图4B分别示出了根据本公开的一种或多种技术的示例布告板配置的图400和450。如图4A所示,图400包括被布置在围绕用户440的共中心层中的多个布告板,例如,布告板401-404、411-414和421-424。图400还包括在布告板之中的粒子或元素430(例如,星星)。如图4A所示,本公开的方面可以包括用于处理或指派靠近某些布告板的粒子或元素的方法,即,粒子到布告板(P2BB)指派。例如,本公开的方面可以确定粒子中心的量化极坐标。坐标可以是用于选择正确布告板以进行指派的索引。这可以利用计算着色器中的原子增量来高效地执行。如图4A所示,基于针对粒子430的P2BB指派,本公开的方面可以渲染布告板404、413、414和423。
如图4B所示,图450包括围绕被布置在围绕用户490的共中心层中的多个布告板,例如,布告板451-454、461-464和471-474。图450还包括在布告板之中的边界框480,例如,具有雾的边界框。如图4B所示,本公开的方面还可以包括用于处理或指派在布告板附近的雾或微粒场的方法。这些方法可以包括围绕在布告板附近的雾或微粒场的面向投影(project)的边界框,例如,边界框480,如图450中所示。如图4B所示,基于边界框480的指派,本公开的方面可以渲染布告板454、463、464和473。
图5A和图5B分别示出了根据本公开的一种或多种技术的示例布告板配置的图500和550。如图5A所示,图500包括多个布告板(例如,布告板501和502)以及对应的粒子。在图5A中,指派给布告板501的粒子被示为“1”并且指派给布告板502的粒子被示为“2”。如图5A所示,图500包括与相邻布告板重叠的粒子或元素,例如,与布告板501和502重叠的粒子“1-2”。由于粒子“1-2”与两个相邻的布告板重叠,这可能会出现将重叠的粒子指派到布告板501或502中的一个的问题。
如图5B所示,图550示出了本公开的方面如何可以解决针对相邻布告板的重叠粒子的这种问题。例如,本公开的方面可以利用重叠布告板来处理重叠粒子。图550包括重叠的布告板(例如,布告板551和552)以及对应的粒子。在图5A中,指派给布告板551的粒子被示为“1”并且指派给布告板552的粒子被示为“2”。重叠的粒子可能更容易被指派给两个重叠的布告板中的一个,例如,布告板551和552。例如,在图5B中,通过利用重叠的布告板,重叠的粒子中的一个可以被指派给布告板551作为“1”并且重叠的粒子中的另一个可以被指派给布告板552作为“2”。本公开的方面可以利用多个步骤或过程来将粒子指派给重叠的布告板。
图6示出了根据本公开的一种或多种技术的示例布告板配置的图600。图6中的图600示出了三个相邻的布告板,例如,布告板601、602和603。布告板601-603中的每一个包括特定长度,例如,长度b。如图6所示,对于重叠的布告板,本公开的方面可以确定最大的粒子大小,例如,粒子大小p。这样做之后,本公开的方面可以将相邻的布告板配置为在布告板的任一侧重叠一定长度,例如,p/2。例如,布告板602可以在每一侧重叠p/2。这可以允许本公开的各方面将整个粒子渲染到单个布告板,例如,将整个粒子渲染到布告板602。
图7示出了根据本公开的一种或多种技术的示例布告板配置的图700。图7中的图700包括前布告板702、后布告板704、遮挡对象或遮挡物710、粒子711和粒子712。图7示出了基于观看方向确定前布告板702和后布告板704。此外,粒子711被遮挡对象710遮挡,而粒子712未被遮挡。如图7所示,在粒子到布告板(P2BB)指派期间,本公开的方面可以执行深度测试。深度测试可以确定是将粒子指派给距视点更近的布告板(即,前布告板702)还是距视点更远的布告板(即,后布告板704)。另外,当渲染布告板或层时,本公开的方面可以实现具有规则几何形状的深度测试以拒绝被遮挡的布告板片段。
图7示出了当遮挡对象(例如,遮挡对象710)在视点和粒子(例如,粒子711)之间,使得粒子被遮挡时,可以将粒子指派给更远离视点的布告板(例如,后布告板704)。而且,当视点和粒子(例如,粒子712)之间不存在遮挡对象,使得粒子不被遮挡时,可以将粒子指派给距视点更近的布告板(例如,前布告板702)。否则,可以将粒子指派给距视点最近的布告板,或者可以将粒子指派给前布告板(即,距视点更近的布告板)。
在一些方面,在P2BB指派之后,本公开的方面可以将VFX渲染到布告板中。对于粒子或元素,本公开的方面可以渲染每个粒子或元素。在顶点着色器中,本公开的方面可以设置相机截锥体(camera frustum)以覆盖被指派给粒子的布告板。本公开的方面还可以利用针对布告板的到图集区域的输出来渲染粒子。对于布告板附近的雾、液体或微粒场,本公开的方面可以以到相机的增加的距离渲染布告板。对于每个布告板纹素(texel),本公开的方面可以渲染沿着从先前层到当前层的视线(view ray)的贡献。
本公开的方面还可以确定何时刷新布告板。布告板可能会保留在原位,并可能在下一帧中重新使用,例如,如果相机少量移动。如果相机移动的量大于阈值,则布告板也可能会被重新定位并进行VFX重新渲染。本公开的方面还可以通过计算布告板中的每个布告板上的最坏情况视差来确定相机是否移动。此外,如果VFX的内容改变(例如,动画火焰),则布告板可能会被重新定位并进行VFX重新渲染。如果新布告板变得可见,则布告板也可能会被重新定位并进行VFX重新渲染。如果场景中VFX的位置已经改变,或者相机移动并且VFX的一部分被遮挡,则可能会发生这种情况。
本公开的方面可以包括使用布告板来实现对VFX的对象空间渲染的系统。本公开的方面还可以包括动态更新布告板布置(例如,布告板的数量、放置和内容)以对相机移动和场景中的改变作出反应的系统。另外,本公开的方面可以包括基于相机截锥体内的共中心层来选择布告板布置的系统。本公开的方面还可以包括使用重叠布告板来支持粒子到布告板的映射(例如,1:1映射)的系统。此外,本公开的方面可以包括使用在粒子和不透明场景对象之间的遮挡来确定粒子到布告板(P2BB)指派的系统。在一些实例中,本公开的方面还可以涉及流送内容。
图8是根据本公开的一种或多种技术的图形处理的通信流程图800。如图8所示,图800包括根据本公开的一种或多种技术的在GPU组件802、GPU组件804和显示器806之间的示例通信。
在810处,GPU组件802可以计算与第一帧的视点相关联的多个布告板(例如,布告板812)的量。多个布告板的量可以基于第一帧的分辨率质量、一个或多个体积元素、所渲染的图像的带宽或所渲染的图像的渲染时间中的至少一个来计算。此外,可以从另一组件(例如,GPU组件804)接收多个布告板(例如,布告板812)。
在820处,GPU组件802可以配置与多个帧中的第一帧的视点相关联的多个布告板,多个布告板被配置在至少部分地围绕视点的一个或多个层中,多个布告板的配置是基于在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素的。多个布告板的配置可以是基于与多个布告板中的至少一个其他布告板的一部分重叠的、多个布告板中的至少一个布告板的一部分的。此外,可以基于多个帧中的至少一个后续帧的视点来配置多个布告板。
在一些方面,一个或多个体积元素可以与多个布告板中的第一布告板相关联,并且当遮挡对象在一个或多个体积元素与视点之间时,第一布告板可以是距视点最远的布告板。此外,一个或多个体积元素可以与多个布告板中的第二布告板相关联,并且第二布告板可以是距视点最近的布告板。另外,一个或多个层中的每一个层可以与距视点的距离相关联。一个或多个层中的每一个层距视点的距离可以与布告板的配置相关联。布告板的配置可以与一个或多个体积元素的配置相关联。
在830处,GPU组件802可以生成与第一帧的视点相关联的多个布告板,其中多个布告板是基于多个布告板的配置生成的。
在840处,GPU组件802可以渲染与在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素中的每一个体积元素相关联的图像,所渲染的图像包括一组像素。该图像可以是半透明图像。
在850处,GPU组件802可以基于一个或多个体积元素的几何配置或多个布告板的几何配置中的至少一个来计算用于映射的配置。
在860处,GPU组件802可以基于与一个或多个体积元素中的每一个体积元素相关联的所渲染图像,将数据映射到多个布告板中的至少一个布告板。在一些方面,映射可以是投影几何映射或几何投影。
在870处,GPU组件802可以基于与一个或多个体积元素中的每一个体积元素相关联的所渲染图像,将数据存储在多个布告板中的至少一个布告板中,该数据对应于该组像素。数据可以是像素数据或纹理数据中的至少一种。
在880处,GPU组件802可以基于存储在至少一个布告板中的数据来混合多个布告板中的至少一个布告板。在一些实例中,可以基于一个或多个混合权重来混合至少一个布告板,并且可以基于该组像素的透明度或该组像素的深度中的至少一个来计算一个或多个混合权重。
在890处,GPU组件802可以基于一个或多个体积元素或视点中的至少一个来调整多个布告板的配置,例如,配置892。可以通过调整多个布告板的量或者调整多个布告板的几何变换来调整多个布告板的配置。此外,如果视点被调整或者一个或多个体积元素被调整,则多个布告板的配置可以被调整。可以通过调整一个或多个体积元素的量或者调整一个或多个体积元素的几何变换来调整一个或多个体积元素。此外,多个布告板的配置(例如,配置892)可以被发送到另一组件,例如,显示器806。
图9示出了根据本公开的一种或多种技术的示例方法的示例流程图900。该方法可以由诸如服务器、客户端设备、GPU、CPU或用于图形处理的装置之类的装置来执行。
在904处,装置可以配置与多个帧中的第一帧的视点相关联的多个布告板,多个布告板被配置在至少部分地围绕视点的一个或多个层中,多个布告板的配置是基于在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素的,如结合图2-图8中的示例所描述的。例如,GPU组件802可以配置与多个帧中的第一帧的视点相关联的多个布告板,多个布告板被配置在至少部分地围绕视点的一个或多个层中,多个布告板的配置是基于在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素的,如图8的820中所描述的。此外,图1中的处理单元120可以执行步骤904。多个布告板的配置可以是基于与多个布告板中的至少一个其他布告板的一部分重叠的、多个布告板中的至少一个布告板的一部分的。此外,可以基于多个帧中的至少一个后续帧的视点来配置多个布告板。
在一些方面,一个或多个体积元素可以与多个布告板中的第一布告板相关联,并且当遮挡对象在一个或多个体积元素与视点之间时,第一布告板可以是距视点最远的布告板。此外,一个或多个体积元素可以与多个布告板中的第二布告板相关联,并且第二布告板可以是距视点最近的布告板。另外,一个或多个层中的每一个层可以与距视点的距离相关联。一个或多个层中的每一个层距视点的距离可以与布告板的配置相关联。布告板的配置可以与一个或多个体积元素的配置相关联。
在908处,该装置可以渲染与在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素中的每一个体积元素相关联的图像,所渲染的图像包括一组像素,如结合图2-图8的示例所描述的。例如,GPU组件802可以渲染与在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素中的每一个体积元素相关联的图像,所渲染的图像包括一组像素,如图8的840中所描述的。此外,图1中的处理单元120可以执行步骤908。在一些实例中,图像可以是半透明图像。
在914处,该装置可以基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据存储在多个布告板中的至少一个布告板中,该数据对应于该组像素,如结合图2-图8的示例所描述的。例如,GPU组件802可以基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据存储在多个布告板中的至少一个布告板中,该数据对应于该组像素,如图8的870中所描述的。此外,图1中的处理单元120可执行步骤914。数据可以是像素数据或纹理数据中的至少一种。
图10示出了根据本公开的一种或多种技术的示例方法的示例流程图1000。该方法可以由诸如服务器、客户端设备、GPU、CPU或用于图形处理的装置之类的装置来执行。
在1002处,该装置可以计算与第一帧的视点相关联的多个布告板的量,如结合图2-图8中的示例所描述的。例如,GPU组件802可以计算与第一帧的视点相关联的多个布告板的量,如图8的810中所描述的。此外,图1中的处理单元120可以执行步骤1002。可以基于第一帧的分辨率质量、一个或多个体积元素、所渲染的图像的带宽或所渲染的图像的渲染时间中的至少一个来计算多个布告板的量。
在1004处,装置可以配置与多个帧中的第一帧的视点相关联的多个布告板,多个布告板被配置在至少部分地围绕视点的一个或多个层中,多个布告板的配置是基于在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素的,如结合图2-图8中的示例所描述的。例如,GPU组件802可以配置与多个帧中的第一帧的视点相关联的多个布告板,多个布告板被配置在至少部分地围绕视点的一个或多个层中,多个布告板的配置是基于在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素的,如图8的820中所描述的。此外,图1中的处理单元120可以执行步骤1004。多个布告板的配置可以是基于与多个布告板中的至少一个其他布告板的一部分重叠的、多个布告板中的至少一个布告板的一部分的。此外,可以基于多个帧中的至少一个后续帧的视点来配置多个布告板。
在一些方面,一个或多个体积元素可以与多个布告板中的第一布告板相关联,并且当遮挡对象在一个或多个体积元素与视点之间时,第一布告板可以是距视点最远的布告板。此外,一个或多个体积元素可以与多个布告板中的第二布告板相关联,并且第二布告板可以是距视点最近的布告板。另外,一个层或多个层中的每一个层可以与距视点的距离相关联。一个或多个层中的每一个层距视点的距离可以与布告板的配置相关联。布告板的配置可以与一个或多个体积元素的配置相关联。
在1006处,该装置可以生成与第一帧的视点相关联的多个布告板,其中多个布告板是基于多个布告板的配置生成的,如结合图2-图8中的示例所描述的。例如,GPU组件802可以生成与第一帧的视点相关联的多个布告板,其中多个布告板是基于多个布告板的配置生成的,如图8的830中所描述的。此外,图1中的处理单元120可以执行步骤1006。
在1008处,该装置可以渲染与在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素中的每一个体积元素相关联的图像,所渲染的图像包括一组像素,如结合图2-图8的示例所描述的。例如,GPU组件802可以渲染与在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素中的每一个体积元素相关联的图像,所渲染的图像包括一组像素,如图8的840中所描述的。此外,图1中的处理单元120可以执行步骤1008。在一些实例中,图像可以是半透明图像。
在1010处,该装置可以基于一个或多个体积元素的几何配置或多个布告板的几何配置中的至少一个来计算用于映射的配置,如结合图2-图8中的示例所描述的。例如,GPU组件802可以基于一个或多个体积元素的几何配置或多个布告板的几何配置中的至少一个来计算用于映射的配置,如图8的850中所描述的。此外,图1中的处理单元120可以执行步骤1010。
在1012处,该装置可以基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据映射到多个布告板中的至少一个布告板,如结合图2-图8中的示例所描述的。例如,GPU组件802可以基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据映射到多个布告板中的至少一个布告板,如图8的860中所描述的。此外,图1中的处理单元120可以执行步骤1012。在一些方面,映射可以是投影几何映射或几何投影。
在1014处,该装置可以基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据存储在多个布告板中的至少一个布告板中,该数据对应于该组像素,如结合图2-图8中的示例所描述的。例如,GPU组件802可以基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据存储在多个布告板中的至少一个布告板中,该数据对应于该组像素,如图8的870中所描述的。此外,图1中的处理单元120可以执行步骤1014。数据可以是像素数据或纹理数据中的至少一种。
在1016处,该装置可以基于存储在至少一个布告板中的数据来混合多个布告板中的至少一个布告板,如结合图2-图8中的示例所描述的。例如,GPU组件802可以基于存储在至少一个布告板中的数据来混合多个布告板中的至少一个布告板,如图8的880中所描述的。此外,图1中的处理单元120可以执行步骤1016。在一些实例中,可以基于一个或多个混合权重来混合至少一个布告板,并且可以基于该组像素的透明度或该组像素的深度中的至少一个来计算一个或多个混合权重。
在1018处,该装置可以基于一个或多个体积元素或视点中的至少一个来调整多个布告板的配置,如结合图2-图8中的示例所描述的。例如,GPU组件802可以基于一个或多个体积元素或视点中的至少一个来调整多个布告板的配置,如图8的890中所描述的。此外,图1中的处理单元120可以执行步骤1018。可以通过调整多个布告板的量或调整多个布告板的几何变换来调整多个布告板的配置。此外,如果视点被调整或者一个或多个体积元素被调整,则多个布告板的配置可以被调整。可以通过调整一个或多个体积元素的量或者调整一个或多个体积元素的几何变换来调整一个或多个体积元素。
在一种配置中,提供了一种用于图形处理的方法或装置。该装置可以是服务器、客户端设备、GPU、CPU或可以执行图形处理的某种其他处理器。在一个方面,装置可以是设备104内的处理单元120,或者可以是设备104或另一设备内的某种其他硬件。该装置(例如,处理单元120)可以包括:用于配置与多个帧中的第一帧的视点相关联的多个布告板的模块,该多个布告板被配置在至少部分地围绕该视点的一个或多个层中,多个布告板的配置是基于在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素的;用于渲染与在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素中的每一个体积元素相关联的图像的模块,所渲染的图像包括一组像素;用于基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据存储在多个布告板中的至少一个布告板中的模块,该数据对应于该组像素;用于基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据映射到多个布告板中的至少一个布告板的模块;用于基于一个或多个体积元素的几何配置或多个布告板的几何配置中的至少一个来计算用于映射的配置的模块;用于基于存储在至少一个布告板中的数据来混合多个布告板中的至少一个布告板的模块;用于生成与第一帧的视点相关联的多个布告板的模块,其中,多个布告板是基于多个布告板的配置生成的;用于计算与第一帧的视点相关联的多个布告板的量的模块;以及用于基于一个或多个体积元素或视点中的至少一个来调整多个布告板的配置的模块。
本文描述的主题可以被实施以实现一个或多个益处或优势。例如,所描述的图形处理技术可以由服务器、客户端、GPU、CPU或可以执行图形处理以实现本文所描述的渲染技术的某种其他处理器使用。与其他图形处理技术相比,这也可以以低成本实现。此外,本文的图形处理技术可以改进或加速数据处理或执行。此外,本文的图形处理技术可以改进资源或数据利用和/或资源效率。另外,本公开的方面可以利用可以配置布告板或层以对体积效果进行对象空间渲染的渲染过程。
根据本公开,术语“或”可以在上下文没有另外指明的情况下被解释为“和/或”。此外,虽然诸如“一个或多个”或“至少一个”等之类的短语可能已用于本文公开的某些特征而不是其他特征,但未使用这种语言的特征可以在上下文没有另外说明的情况下被解释为具有这种隐含含义。
在一个或多个示例中,本文描述的功能可以以硬件、软件、固件或其任何组合来实现。例如,尽管贯穿本公开已经使用了术语“处理单元”,但是这样的处理单元可以以硬件、软件、固件或其任何组合来实现。如果本文所述的任何功能、处理单元、技术或其他模块以软件实现,则本文所述的功能、处理单元、技术或其他模块可以作为计算机可读介质上的一个或多个指令或代码存储或传输。计算机可读介质可以包括计算机数据存储介质或通信介质,其包括促进将计算机程序从一个地方传送到另一个地方的任何介质。以这种方式,计算机可读介质一般可以对应于(1)有形计算机可读存储介质,其是非暂时性的,或(2)诸如信号或载波之类的通信介质。数据存储介质可以是任何可用介质,其可以由一个或多个计算机或一个或多个处理器访问以取回指令、代码和/或数据结构以实现本公开中描述的技术。通过示例而非限制的方式,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储装置、磁盘存储装置或其他磁存储设备。本文使用的磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包括在计算机可读介质的范围内。计算机程序产品可以包括计算机可读介质。
代码可以由一个或多个处理器(例如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、算术逻辑单元(ALU)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路装置)执行。因此,本文所用的术语“处理器”可以指代前述结构中的任一个或适合于实现本文所描述的技术的任何其他结构。此外,这些技术可以在一个或多个电路或逻辑元件中完全实现。
本公开的技术可以在各种各样的设备或装置(包括无线手机、集成电路(IC)或一组IC,例如,芯片组)中实现。在本公开中描述了各种组件、模块或单元以强调被配置为执行所公开的技术,但不一定需要由不同的硬件单元来实现的设备的功能方面。而是,如上所述,各种单元可以组合在任何硬件单元中或由互操作硬件单元的集合提供,包括如上所述的一个或多个处理器,连同合适的软件和/或固件。
已经描述了各个方面和示例。这些和其他方面和示例在权利要求的范围内。
以下方面仅是说明性的并且可以与本文描述的其他方面或教导结合,而没有限制。
方面1是一种用于图形处理的装置,包括:至少一个处理器,其耦合到存储器并且被配置为:配置与多个帧中的第一帧的视点相关联的多个布告板,多个布告板被配置在至少部分地围绕视点的一个或多个层中,多个布告板的配置是基于在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素的;渲染与在多个布告板中的至少一个布告板与视点之间的一个或多个体积元素中的每一个体积元素相关联的图像,所渲染的图像包括一组像素;基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据存储在多个布告板中的至少一个布告板中,该数据对应于该组像素。
方面2是方面1的装置,其中,至少一个处理器还被配置为:基于与一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据映射到多个布告板中的至少一个布告板。
方面3是方面1和2中任一方面的装置,其中,至少一个处理器还被配置为:基于以下各项中的至少一个来计算用于映射的配置:一个或多个体积元素的几何配置或者多个布告板的几何配置。
方面4是方面1至3中任一方面的装置,其中,映射是投影几何映射或者几何投影。
方面5是方面1至4中任一方面的装置,其中,至少一个处理器还被配置为:基于存储在至少一个布告板中的数据来混合多个布告板中的至少一个布告板。
方面6是方面1至5中任一方面的装置,其中,至少一个布告板是基于一个或多个混合权重来混合的,并且其中,一个或多个混合权重是基于以下各项中的至少一个来计算的:该组像素的透明度或者该组像素的深度。
方面7是方面1至6中任一方面的装置,其中,至少一个处理器还被配置为:生成与第一帧的视点相关联的多个布告板,其中,多个布告板是基于多个布告板的配置来生成的。
方面8是方面1至7中任一方面的装置,其中,一个或多个体积元素与多个布告板中的第一布告板相关联,其中,当遮挡对象在一个或多个体积元素与视点之间时,第一布告板是距视点最远的布告板。
方面9是方面1至8中任一方面的装置,其中,一个或多个体积元素与多个布告板中的第二布告板相关联,其中,第二布告板是距视点最近的布告板。
方面10是方面1至9中任一方面的装置,其中,多个布告板的配置是基于与多个布告板中的至少一个其他布告板的一部分重叠的、多个布告板中的至少一个布告板的一部分的。
方面11是方面1到10中任一方面的装置,其中,一个或多个层中的每一个层与距视点的距离相关联。
方面12是方面1至11中任一方面的装置,其中,一个或多个层中的每一个层距视点的距离与布告板的配置相关联。
方面13是方面1到12中任一方面的装置,其中,布告板的配置与一个或多个体积元素的配置相关联。
方面14是方面1至13中任一方面的装置,其中,至少一个处理器还被配置为:计算与第一帧的视点相关联的多个布告板的量。
方面15是方面1至14中任一方面的装置,其中,多个布告板的量是基于以下各项中的至少一个来计算的:第一帧的分辨率质量、一个或多个体积元素、所渲染的图像的带宽或者所渲染的图像的渲染时间。
方面16是方面1至15中任一方面的装置,其中,至少一个处理器还被配置为:基于以下各项中的至少一个来调整多个布告板的配置:视点或者一个或多个体积元素。
方面17是方面1至16中任一方面的装置,其中,多个布告板的配置是通过调整多个布告板的量或者调整多个布告板的几何变换来调整的。
方面18是方面1至17中任一方面的装置,其中,如果视点被调整或者一个或多个体积元素被调整,则多个布告板的配置被调整。
方面19是方面1至18中任一方面的装置,其中,一个或多个体积元素是通过调整一个或多个体积元素的量或者调整一个或多个体积元素的几何变换来调整的。
方面20是方面1至19中任一方面的装置,其中,数据是以下各项中的至少一个:像素数据或者纹理数据。
方面21是方面1至20中任一方面的装置,其中,图像是半透明图像。
方面22是方面1至21中任一方面的装置,其中,多个布告板是基于多个帧中的至少一个后续帧的视点来配置的。
方面23是方面1至22中任一方面的装置,还包括耦合到至少一个处理器的收发机。
方面24是用于实现方面1至23中的任一方面的无线通信的方法。
方面25是一种用于无线通信的装置,包括用于实现方面1至23中的任一方面的模块。
方面26是一种存储计算机可执行代码的计算机可读介质,其中,该代码在由处理器执行时,使得处理器实现方面1至23中的任一方面。
Claims (31)
1.一种用于图形处理的装置,包括:
存储器;以及
至少一个处理器,其耦合到所述存储器并且被配置为:
配置与多个帧中的第一帧的视点相关联的多个布告板,所述多个布告板被配置在至少部分地围绕所述视点的一个或多个层中,所述多个布告板的配置是基于在所述多个布告板中的至少一个布告板与所述视点之间的一个或多个体积元素的;
渲染与在所述多个布告板中的至少一个布告板与所述视点之间的所述一个或多个体积元素中的每一个体积元素相关联的图像,所渲染的图像包括一组像素;以及
基于与所述一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据存储在所述多个布告板中的所述至少一个布告板中,所述数据对应于所述一组像素。
2.根据权利要求1所述的装置,其中,所述至少一个处理器还被配置为:
基于与所述一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将所述数据映射到所述多个布告板中的所述至少一个布告板。
3.根据权利要求2所述的装置,其中,所述至少一个处理器还被配置为:
基于以下各项中的至少一个来计算用于所述映射的配置:所述一个或多个体积元素的几何配置或者所述多个布告板的几何配置。
4.根据权利要求2所述的装置,其中,所述映射是投影几何映射或者几何投影。
5.根据权利要求1所述的装置,其中,所述至少一个处理器还被配置为:
基于存储在所述至少一个布告板中的所述数据来混合所述多个布告板中的所述至少一个布告板。
6.根据权利要求5所述的装置,其中,所述至少一个布告板是基于一个或多个混合权重来混合的,并且其中,所述一个或多个混合权重是基于以下各项中的至少一个来计算的:所述一组像素的透明度或者所述一组像素的深度。
7.根据权利要求1所述的装置,其中,所述至少一个处理器还被配置为:
生成与所述第一帧的所述视点相关联的所述多个布告板,其中,所述多个布告板是基于所述多个布告板的配置来生成的。
8.根据权利要求1所述的装置,其中,所述一个或多个体积元素与所述多个布告板中的第一布告板相关联,其中,当遮挡对象在所述一个或多个体积元素与所述视点之间时,所述第一布告板是距所述视点最远的布告板。
9.根据权利要求1所述的装置,其中,所述一个或多个体积元素与所述多个布告板中的第二布告板相关联,其中,所述第二布告板是距所述视点最近的布告板。
10.根据权利要求1所述的装置,其中,所述多个布告板的配置是基于与所述多个布告板中的至少一个其他布告板的一部分重叠的、所述多个布告板中的所述至少一个布告板的一部分的。
11.根据权利要求1所述的装置,其中,所述一个或多个层中的每一个层与距所述视点的距离相关联。
12.根据权利要求11所述的装置,其中,所述一个或多个层中的每一个层距所述视点的所述距离与所述布告板的配置相关联。
13.根据权利要求11所述的装置,其中,所述布告板的配置与所述一个或多个体积元素的配置相关联。
14.根据权利要求1所述的装置,其中,所述至少一个处理器还被配置为:
计算与所述第一帧的视点相关联的所述多个布告板的量。
15.根据权利要求14所述的装置,其中,所述多个布告板的量是基于以下各项中的至少一个来计算的:所述第一帧的分辨率质量、所述一个或多个体积元素、所渲染的图像的带宽或者所渲染的图像的渲染时间。
16.根据权利要求1所述的装置,其中,所述至少一个处理器还被配置为:
基于以下各项中的至少一个来调整所述多个布告板的配置:所述视点或者所述一个或多个体积元素。
17.根据权利要求16所述的装置,其中,所述多个布告板的配置是通过调整所述多个布告板的量或者调整所述多个布告板的几何变换来调整的。
18.根据权利要求16所述的装置,其中,如果所述视点被调整或者所述一个或多个体积元素被调整,则所述多个布告板的配置被调整。
19.根据权利要求18所述的装置,其中,所述一个或多个体积元素是通过调整所述一个或多个体积元素的量或者调整所述一个或多个体积元素的几何变换来调整的。
20.根据权利要求1所述的装置,其中,所述数据是以下各项中的至少一个:像素数据或者纹理数据。
21.根据权利要求1所述的装置,还包括耦合到所述至少一个处理器的收发机,其中,所述图像是半透明图像。
22.根据权利要求1所述的装置,其中,所述多个布告板是基于所述多个帧中的至少一个后续帧的视点来配置的。
23.一种用于图形处理的方法,包括:
配置与多个帧中的第一帧的视点相关联的多个布告板,所述多个布告板被配置在至少部分地围绕所述视点的一个或多个层中,所述多个布告板的配置是基于在所述多个布告板中的至少一个布告板与所述视点之间的一个或多个体积元素的;
渲染与在所述多个布告板中的至少一个布告板与所述视点之间的所述一个或多个体积元素中的每一个体积元素相关联的图像,所渲染的图像包括一组像素;以及
基于与所述一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据存储在所述多个布告板中的所述至少一个布告板中,所述数据对应于所述一组像素。
24.根据权利要求23所述的方法,还包括:
基于与所述一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将所述数据映射到所述多个布告板中的所述至少一个布告板。
25.根据权利要求24所述的方法,还包括:
基于以下各项中的至少一个来计算用于所述映射的配置:所述一个或多个体积元素的几何配置或者所述多个布告板的几何配置。
26.根据权利要求23所述的方法,还包括:
基于存储在所述至少一个布告板中的所述数据来混合所述多个布告板中的所述至少一个布告板。
27.根据权利要求23所述的方法,还包括:
生成与所述第一帧的所述视点相关联的所述多个布告板,其中,所述多个布告板是基于所述多个布告板的配置来生成的。
28.根据权利要求23所述的方法,还包括:
计算与所述第一帧的视点相关联的所述多个布告板的量,其中,所述多个布告板的量是基于以下各项中的至少一个来计算的:所述第一帧的分辨率质量、所述一个或多个体积元素、所渲染的图像的带宽或者所渲染的图像的渲染时间。
29.根据权利要求23所述的方法,还包括:
基于以下各项中的至少一个来调整所述多个布告板的配置:所述视点或者所述一个或多个体积元素。
30.一种用于图形处理的装置,包括:
用于配置与多个帧中的第一帧的视点相关联的多个布告板的模块,所述多个布告板被配置在至少部分地围绕所述视点的一个或多个层中,所述多个布告板的配置是基于在所述多个布告板中的至少一个布告板与所述视点之间的一个或多个体积元素的;
用于渲染与在所述多个布告板中的至少一个布告板与所述视点之间的所述一个或多个体积元素中的每一个体积元素相关联的图像的模块,所渲染的图像包括一组像素;以及
用于基于与所述一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据存储在所述多个布告板中的所述至少一个布告板中的模块,所述数据对应于所述一组像素。
31.一种存储用于图形处理的计算机可执行代码的计算机可读介质,所述代码在由处理器执行时,使得所述处理器进行以下操作:
配置与多个帧中的第一帧的视点相关联的多个布告板,所述多个布告板被配置在至少部分地围绕所述视点的一个或多个层中,所述多个布告板的配置是基于在所述多个布告板中的至少一个布告板与所述视点之间的一个或多个体积元素的;
渲染与在所述多个布告板中的至少一个布告板与所述视点之间的所述一个或多个体积元素中的每一个体积元素相关联的图像,所渲染的图像包括一组像素;以及
基于与所述一个或多个体积元素中的每一个体积元素相关联的所渲染的图像,将数据存储在所述多个布告板中的所述至少一个布告板中,所述数据对应于所述一组像素。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063067050P | 2020-08-18 | 2020-08-18 | |
US63/067,050 | 2020-08-18 | ||
US17/400,031 US11875452B2 (en) | 2020-08-18 | 2021-08-11 | Billboard layers in object-space rendering |
US17/400,031 | 2021-08-11 | ||
PCT/US2021/045801 WO2022040014A1 (en) | 2020-08-18 | 2021-08-12 | Billboard layers in object-space rendering |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116075862A true CN116075862A (zh) | 2023-05-05 |
Family
ID=80269672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180056285.9A Pending CN116075862A (zh) | 2020-08-18 | 2021-08-12 | 对象空间渲染中的布告板层 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11875452B2 (zh) |
EP (1) | EP4200813A1 (zh) |
KR (1) | KR20230052891A (zh) |
CN (1) | CN116075862A (zh) |
BR (1) | BR112023002328A2 (zh) |
TW (1) | TW202228082A (zh) |
WO (1) | WO2022040014A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7602180B2 (en) | 2006-11-02 | 2009-10-13 | Siemens Aktiengesellschaft | System and method for fast texture-based tensor field visualization for DT-MRI |
US9846960B2 (en) * | 2012-05-31 | 2017-12-19 | Microsoft Technology Licensing, Llc | Automated camera array calibration |
JP6441843B2 (ja) | 2016-02-24 | 2018-12-19 | 株式会社カプコン | ゲームプログラムおよびゲームシステム |
-
2021
- 2021-08-11 US US17/400,031 patent/US11875452B2/en active Active
- 2021-08-12 WO PCT/US2021/045801 patent/WO2022040014A1/en unknown
- 2021-08-12 TW TW110129764A patent/TW202228082A/zh unknown
- 2021-08-12 KR KR1020237005161A patent/KR20230052891A/ko unknown
- 2021-08-12 BR BR112023002328A patent/BR112023002328A2/pt unknown
- 2021-08-12 CN CN202180056285.9A patent/CN116075862A/zh active Pending
- 2021-08-12 EP EP21766067.9A patent/EP4200813A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
TW202228082A (zh) | 2022-07-16 |
BR112023002328A2 (pt) | 2023-03-21 |
KR20230052891A (ko) | 2023-04-20 |
US20220058860A1 (en) | 2022-02-24 |
EP4200813A1 (en) | 2023-06-28 |
US11875452B2 (en) | 2024-01-16 |
WO2022040014A1 (en) | 2022-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11373268B2 (en) | Apparatus and method for graphics processing unit hybrid rendering | |
CN112740278B (zh) | 用于图形处理的方法及设备 | |
US11631212B2 (en) | Methods and apparatus for efficient multi-view rasterization | |
US11908079B2 (en) | Variable rate tessellation | |
EP4242972A2 (en) | Methods and apparatus for edge compression anti-aliasing | |
CN117157703A (zh) | 注视点渲染中的内容移位 | |
US11875452B2 (en) | Billboard layers in object-space rendering | |
US11080928B2 (en) | Methods and apparatus for visibility stream management | |
US20230101978A1 (en) | Meshlet shading atlas | |
US11893654B2 (en) | Optimization of depth and shadow pass rendering in tile based architectures | |
WO2023164792A1 (en) | Checkerboard mask optimization in occlusion culling | |
US11380047B2 (en) | Methods and apparatus for order-independent occlusion computations | |
US11373267B2 (en) | Methods and apparatus for reducing the transfer of rendering information | |
WO2024055221A1 (en) | Fast msaa techniques for graphics processing | |
US20240212257A1 (en) | Workload packing in graphics texture pipeline | |
WO2023055655A1 (en) | Meshlet shading atlas | |
KR20240093463A (ko) | 메시릿 셰이딩 아틀라스 | |
CN117980955A (zh) | 与样本空间相关联的聚焦分箱渲染 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |