CN118043850A - Meshlet着色图集 - Google Patents
Meshlet着色图集 Download PDFInfo
- Publication number
- CN118043850A CN118043850A CN202280064147.XA CN202280064147A CN118043850A CN 118043850 A CN118043850 A CN 118043850A CN 202280064147 A CN202280064147 A CN 202280064147A CN 118043850 A CN118043850 A CN 118043850A
- Authority
- CN
- China
- Prior art keywords
- meshlet
- pixels
- scene
- vertices
- primitives
- 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
- 238000004040 coloring Methods 0.000 title claims description 46
- 238000012545 processing Methods 0.000 claims abstract description 150
- 238000000034 method Methods 0.000 claims abstract description 135
- 238000009877 rendering Methods 0.000 claims description 61
- 230000015654 memory Effects 0.000 claims description 53
- 238000009825 accumulation Methods 0.000 claims description 7
- 230000001427 coherent effect Effects 0.000 claims description 7
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 39
- 238000005070 sampling Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 15
- 230000008901 benefit Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012800 visualization Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 102100038126 Tenascin Human genes 0.000 description 2
- 108010008125 Tenascin Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 230000002093 peripheral effect Effects 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
Classifications
-
- 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
- G06T17/205—Re-meshing
-
- 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/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本文所呈现的各方面涉及用于图形处理的方法和设备,包括装置(例如,GPU)。该装置可将至少一个场景划分成多个meshlet,该meshlet中的每个meshlet包括多个图元,并且该图元中的每个图元包括多个顶点。该装置还可针对该多个顶点中的每个顶点计算纹理坐标对。此外,该装置可基于该纹理坐标对并且基于该多个meshlet中的每个meshlet的透视投影选择该至少一个场景中的该多个meshlet中的每个meshlet的大小。该装置还可针对该至少一个场景中的该meshlet中的每个meshlet计算meshlet图集中的布局信息。此外,该装置可基于所计算的布局信息,对该meshlet图集中的多个像素中的每个像素进行着色。
Description
相关申请的交叉引用
本申请要求名称为“MESHLET着色图集(MESHLET SHADING ATLAS)”且于2021年9月30日提交的美国临时申请序列第63/261,909号以及名称为“MESHLET着色图集(MESHLETSHADING ATLAS)”且于2022年9月21日提交的美国专利申请序列第17/934,159号的权益和优先权,这两篇申请全文以引用方式明确并入本文。
技术领域
本公开总体上涉及处理系统,并且更具体地,涉及用于图形处理的一种或多种技术。
背景技术
计算设备通常执行图形和/或显示处理(例如,利用图形处理单元(GPU)、中央处理单元(CPU)、显示处理器等)以渲染和显示视觉内容。此类计算设备可包括例如计算机工作站、移动电话(诸如智能电话)、嵌入式系统、个人计算机、平板计算机和视频游戏控制台。GPU被配置成执行图形处理流水线,该图形处理流水线包括一个或多个处理级,这些处理级一起操作以执行图形处理命令并输出帧。中央处理单元(CPU)可以通过向GPU发出一个或多个图形处理命令来控制该GPU的操作。现代CPU通常能够并发地执行多个应用,每个应用可能需要在执行期间利用GPU。显示处理器被配置成将从CPU接收的数字信息转换成模拟值,并且可以向显示面板发出命令以显示可视内容。提供用于在显示器上可视呈现的内容的设备可以利用GPU和/或显示处理器。
设备的GPU被配置为执行在图形处理流水线中的过程。此外,显示处理器或显示处理单元(DPU)可以被配置为执行显示处理的过程。然而,随着无线通信和更小的手持设备的出现,已经发展出针对改善的图形或显示处理的增加的需求。
发明内容
下面给出了一个或多个方面的简化总结,以便提供对这些方面的基本理解。该概述不是对所有预期方面的广泛概述,并且既不旨在标识所有方面的关键或重要元素,也不旨在描述任何或所有方面的范围。其唯一目的是以简化形式给出一个或多个方面的一些概念,作为稍后给出的更详细的描述的前序。
在本公开的一个方面,提供了一种方法、计算机可读介质和装置。该装置可以是图形处理单元(GPU)或可执行图形处理的任何装置。该装置可将至少一个场景划分成多个meshlet,该多个meshlet中的每个meshlet包括多个图元,并且该多个图元中的每个图元包括多个顶点。该装置还可标识该至少一个场景中的该多个meshlet中的每个meshlet的可见性,其中该多个meshlet中的每个meshlet被标识为可见或不可见。附加地,该装置可丢弃被标识为不可见的该多个meshlet中的每个meshlet。该装置还可针对该多个meshlet中的每个meshlet中的该多个图元中的每个图元的该多个顶点中的每个顶点计算纹理坐标对。该装置还可基于针对该多个meshlet中的每个meshlet中的该多个图元中的每个图元的该多个顶点中的每个顶点的该纹理坐标对并且基于该多个meshlet中的每个meshlet的透视投影选择该至少一个场景中的该多个meshlet中的每个meshlet的大小。此外,该装置可针对该至少一个场景中的该多个meshlet中的每个meshlet计算meshlet图集中的布局信息,针对每个meshlet的该meshlet图集中的该布局信息基于该meshlet的所选择的大小。该装置还可基于该meshlet图集中的所计算的布局信息,对该meshlet图集中的多个像素中的每个像素进行着色。该装置还可渲染被标识为可见的该多个meshlet中的每个meshlet,其中对该meshlet图集进行采样以确定输出图像中的该多个像素中的每个像素的颜色。此外,该装置可将包括所渲染的被标识为可见的多个meshlet的该输出图像发射到显示器或面板。
在附图和以下描述中阐述了本公开的一个或多个示例的细节。本公开的其他特征、目的和优点将从描述和附图以及权利要求中显而易见。
附图说明
图1是图示根据本公开的一种或多种技术的示例内容生成系统的框图。
图2图示了根据本公开的一种或多种技术的示例GPU。
图3是图示示例着色图集的图。
图4A是图示示例三维(3D)模型的图。
图4B是图示示例可视化模型的图。
图4C是图示示例meshlet的图。
图5A是图示示例屏幕空间边界框的图。
图5B是图示示例图集空间块的图。
图6是图示示例meshlet的图。
图7是图示GPU组件与显示器/面板之间的示例通信的通信流程图。
图8是图形处理的示例方法的流程图。
图9是图形处理的示例方法的流程图。
具体实施方式
图形处理的一些方面可利用不同类型的着色过程(例如,对象空间着色或纹素着色)。对象空间着色可将着色结果存储在对象空间中,而不是像在其他类型的着色中那样存储在最终图像空间中。对象空间可以是模型的纹理空间,诸如在纹素着色中。在着色图集流式传输中,对象空间是其中模型的补丁在块(例如,矩形块)内被着色的图集。在图形处理的一些方面,不同的对象空间着色方法可对着色工作负载以不同的方式进行分组,诸如在不同类型的着色单元中。这可改进着色的效率,并且能够实现着色信息的流式传输和/或着色信息的再利用。纹素着色的一些方面可使用每个纹理的原始纹理空间中的像素图块(例如,8×8像素图块)。此外,着色图集流式传输可使用被映射到矩形块中的补丁(例如,多达3个图元/三角形)。相比之下,屏幕空间方法可在每像素级别(或在屏幕空间图块中)操作,这可能需要大约每帧重新计算。因此,屏幕空间方法可能难以再利用和/或以足够的时间相干性进行流式传输。对象空间着色方法还可能导致对象空间采样图案与目标屏幕空间采样图案不能良好地匹配。这种无法与目标屏幕空间采样图案匹配的情况可能导致过采样,这会浪费GPU性能(例如,浪费多达400%的被处理像素)。此外,无法与目标屏幕空间采样图案匹配的情况可能导致欠采样,这会导致图像质量下降。在一些实例中,由于矩形映射到块中,着色图集中的失真图元/三角形可能在一个轴线上出现欠采样,而在另一个轴线上出现过采样。本公开的各方面可提供包括与目标屏幕空间采样图案匹配的采样图案的着色方法(例如,对象空间着色方法)。例如,本公开的各方面可包括具有对于所有可能视图而言多半视图无关且无失真的映射的大着色单元(例如,在纹理空间中)。本公开的各方面还可提供足够大并与其屏幕空间大小大致对准的着色单元。通过这样做,本公开的各方面可最小化过采样和欠采样的影响。
系统、装置、计算机程序产品和方法的各个方面将在下文中参考附图进行更全面的描述。然而,本公开可以以许多不同的形式来体现,以及不应当被解释为限于贯穿本公开所呈现的任何特定的结构或功能。相反,提供这些方面使得本公开将是透彻和完整的,并且将向本领域技术人员充分传达本公开的范围。基于本文的教导,本领域技术人员应当理解,本公开的范围旨在覆盖本文公开的系统、装置、计算机程序产品和方法的任何方面,无论其是独立于本公开的其他方面实现的还是与本公开的其他方面组合实现的。例如,可以使用本文中阐述的任何数量的方面来实现装置或实践方法。此外,本公开的范围旨在涵盖使用除了本文中所阐述的公开的各个方面之外或不同于本文中所阐述的公开的各个方面的其他结构、功能、或者结构和功能来实施的这样的装置或方法。本文所公开的任何方面可以通过权利要求的一个或多个元素来体现。
尽管本文中描述了各个方面,但是这些方面的许多变型和置换落在本公开的范围内。尽管提及了本公开的各方面的一些潜在益处和优点,但是本公开的范围并不旨在限于特定的益处、用途或目标。确切而言,本公开的各方面旨在广泛地适用于不同的无线技术、系统配置、网络和传输协议,其中的一些是通过示例的方式在附图和下文的描述中说明的。具体实施方式和附图仅仅例示本公开而非限定本公开,本公开的范围由所附权利要求及其等效技术方案来定义。
参考各种装置和方法呈现了若干个方面。这些装置和方法是通过各种框、组件、电路、过程、算法等(被统称为“元素”)在以下具体实施方式中描述并且在附图中示出的。可以使用电子硬件、计算机软件或者其任意组合来实现这样的元素。这些元素是作为硬件还是软件来实现取决于特定的应用程序和强加于整个系统的设计约束。
例如,元素、或元素的任何部分、或元素的任何组合可以被实现为包括一个或多个处理器(其还可以被称为处理单元)的“处理系统”。处理器的示例包括微处理器、微控制器、图形处理单元(GPU)、通用GPU(GPGPU)、中央处理单元(CPU)、应用处理器、数字信号处理器(DSP)、精简指令集计算(RISC)处理器、片上系统(SOC)、基带处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立硬件电路和其他配置为执行本公开中描述的各种功能的合适硬件。在处理系统中的一个或多个处理器可以执行软件。软件可被宽泛地解释成意为指令、指令集、代码、代码段、程序代码、程序、子程序、软件组件、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。术语“应用”可以是指软件。如本文所描述的,一种或多种技术可以指被配置成执行一个或多个功能的应用,即软件。在此类示例中,应用可被存储在存储器(例如,处理器的片上存储器、系统存储器或任何其他存储器)上。本文所描述的硬件(诸如处理器)可以被配置为执行应用。例如,应用可以被描述为包括代码,该代码在由硬件执行时使该硬件执行本文所描述的一种或多种技术。作为示例,硬件可以从存储器访问代码并执行从存储器访问的代码,以执行本文所描述的一种或多种技术。在一些示例中,在本公开中标识组件。在此类示例中,组件可以是硬件、软件或它们的组合。各组件可以是单独的组件或单个组件的子组件。
相应地,在本文中所描述的一个或多个示例中,所描述的功能可以在硬件、软件或它们的任何组合中来实现。如果用软件来实现,则功能可以作为一个或多个指令或代码来在计算机可读介质上进行存储或编码。计算机可读介质包括计算机储存介质。存储介质可以是能够由计算机访问的任何可用介质。作为示例而非限制,此类计算机可读介质可包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、光盘存储、磁盘存储、其他磁性存储设备、上述类型的计算机可读介质的组合、或能够被用于存储可被计算机访问的指令或数据结构形式的计算机可执行代码的任何其他介质。
概括而言,本公开描述了如下的技术:在单个设备或多个设备中具有图形处理流水线,从而改善对图形内容的渲染和/或减少处理单元(即,被配置为执行本文中所描述的一种或多种技术的任何处理单元,诸如GPU)的负载。例如,本公开描述了用于在利用图形处理的任何设备中进行图形处理的技术。贯穿本公开描述了其他示例益处。
如本文所使用的,术语“内容”的实例可以是指“图形内容”、“图像”,反之亦然。不管这些术语是用作形容词、名词还是其他词类,都是如此。在一些示例中,如本文所使用的,术语“图形内容”可以指由图形处理管线的一个或多个过程产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以指由被配置为执行图形处理的处理单元产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以指由图形处理单元产生的内容。
在一些示例中,如本文所使用的,术语“显示内容”可以是指由被配置为执行显示处理的处理单元生成的内容。在一些示例中,如本文所使用的,术语“显示内容”可以指由显示处理单元生成的内容。可以对图形内容进行处理以变成显示内容。例如,图形处理单元可以将图形内容(诸如帧)输出到缓冲器(其可以被称为帧缓冲器)。显示处理单元可以从缓冲器读取图形内容(诸如一个或多个帧),并在其上执行一个或多个显示处理技术以生成显示内容。例如,显示处理单元可以被配置成在一个或多个渲染层上执行合成以生成帧。作为另一示例,显示处理单元可以被配置成将两个或更多个层一起合成、混合或以其他方式组合成单个帧。显示处理单元可被配置成对帧执行缩放,例如,放大或缩小。在一些示例中,帧可以指层。在其他示例中,帧可以指已经被混合在一起以形成该帧的两个或更多个层,即,该帧包括两个或更多个层,并且包括两个或更多个层的该帧可以随后被混合。
图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、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(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可包括meshlet组件198,该meshlet组件被配置为将至少一个场景划分成多个meshlet,该多个meshlet中的每个meshlet包括多个图元,并且该多个图元中的每个图元包括多个顶点。meshlet组件198还可被配置为标识至少一个场景中的多个meshlet中的每个meshlet的可见性,其中多个meshlet中的每个meshlet被标识为可见或不可见。meshlet组件198还可被配置为丢弃被标识为不可见的多个meshlet中的每个meshlet。meshlet组件198还可被配置为针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点计算纹理坐标对。meshlet组件198还可被配置为基于针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点的纹理坐标对并且基于多个meshlet中的每个meshlet的透视投影选择至少一个场景中的多个meshlet中的每个meshlet的大小。meshlet组件198还可被配置为针对至少一个场景中的多个meshlet中的每个meshlet计算meshlet图集中的布局信息,针对每个meshlet的meshlet图集中的布局信息基于meshlet的所选择的大小。meshlet组件198还可被配置为基于meshlet图集中的所计算的布局信息,对meshlet图集中的多个像素中的每个像素进行着色。meshlet组件198还可被配置为渲染被标识为可见的多个meshlet中的每个meshlet,其中对meshlet图集进行采样以确定输出图像中的多个像素中的每个像素的颜色。meshlet组件198还可被配置为将包括所渲染的被标识为可见的多个meshlet的输出图像发射到显示器或面板。尽管以下描述可以集中于图形处理,但是本文中描述的概念可以适用于其他类似的处理技术。
如本文所描述的,设备诸如设备104可以是指被配置为执行本文描述的一种或多种技术的任何设备、装置或系统。例如,设备可以是服务器、基站、用户装备、客户端设备、站、接入点、计算机(例如,个人计算机、台式计算机、膝上型计算机、平板计算机、计算机工作站、或大型计算机)、最终产品、装置、电话、智能电话、服务器、视频游戏平台或控制台、手持式设备(例如,便携式视频游戏设备或个人数字助理(PDA))、可穿戴计算设备(例如,智能手表、增强现实设备或虚拟现实设备)、非可穿戴设备、显示器或显示设备、电视、电视机顶盒、中间网络设备、数字媒体播放器、视频流设备、内容流设备、车载计算机、任何移动设备、被配置为生成图形内容的任何设备、或被配置为执行本文所描述的一种或多种技术的任何设备。本文的过程可以被描述为由特定组件(例如,GPU)执行,但是在进一步的实施例中,可以使用与所公开的实施例一致的其他组件(例如,CPU)来执行。
GPU可以在GPU流水线中处理多种类型的数据或数据分组。例如,在一些方面,GPU可以处理两种类型的数据或数据分组,例如,上下文寄存器分组和绘制调用数据。上下文寄存器分组可以是一组全局状态信息,例如,关于全局寄存器、着色程序或常数数据的信息,其可以调节图形上下文将如何被处理。例如,上下文寄存器分组可包括关于颜色格式的信息。在上下文寄存器分组的一些方面,可能存在指示哪个工作负载属于上下文寄存器的比特。此外,可能存在同时和/或并行运行的多个功能或程序。例如,功能或程序可以描述某个操作,例如,颜色模式或颜色格式。因此,上下文寄存器可以定义GPU的多个状态。
上下文状态可用于确定单个处理单元(例如,顶点提取器(VFD)、顶点着色器(VS)、着色器处理器或几何形状处理器)如何运行和/或处理单元以哪种模式运行。为了这样做,GPU可以使用上下文寄存器和编程数据。在一些方面,GPU可基于模式或状态的上下文寄存器定义在流水线中生成工作负载(例如,顶点或像素工作负载)。某些处理单元(例如,VFD)可使用这些状态来确定某些功能,例如,如何聚集顶点。由于这些模式或状态可能改变,因此GPU可能需要改变对应的上下文。附加地,与模式或状态相对应的工作负载可以遵循改变的模式或状态。
图2图示了根据本公开的一种或多种技术的示例GPU 200。如图2所示,GPU 200包括命令处理器(CP)210、绘制调用分组212、VFD 220、VS222、顶点高速缓存(VPC)224、三角形设置引擎(TSE)226、光栅化器(RAS)228、Z过程引擎(ZPE)230、像素插值器(PI)232、片段着色器(FS)234、渲染后端(RB)236、二级(L2)高速缓存(UCHE)238和系统存储器240。尽管图2显示了GPU 200包括处理单元220-238,但GPU 200可包括数个附加处理单元。附加地,处理单元220-238仅仅是一示例,并且处理单元的任何组合或顺序可由根据本公开的GPU使用。GPU 200还包括命令缓冲器250、上下文寄存器分组260和上下文状态261。
如图2所示,GPU可利用CP(例如,CP 210)或硬件加速器将命令缓冲器解析为上下文寄存器分组(例如,上下文寄存器分组260)和/或绘制调用数据分组(例如,绘制调用分组212)。随后,CP 210可以通过单独的路径将上下文寄存器分组260或绘制调用分组212发送到GPU中的处理单元或块。此外,命令缓冲器250可以交替上下文寄存器和绘制调用的不同状态。例如,命令缓冲器可以下方式构造:上下文N的上下文寄存器、上下文N的绘制调用、上下文N+1的上下文寄存器和上下文N+1的绘制调用。
GPU可以按各种不同的方式渲染图像。在一些实例中,GPU可以使用渲染和/或平铺渲染来渲染图像。在平铺渲染GPU中,图像可以被划分或分割成不同的部分或图块。在划分图像之后,可以单独渲染每个部分或图块。平铺渲染GPU可以将计算机图形图像划分成网格格式,以使得网格的每个部分(即图块)被单独渲染。在一些方面,在分箱过程期间,图像可被划分成不同的箱或图块。在一些方面,在分箱过程期间,可构建可见流,其中可标识可见图元或绘制调用。与图块渲染相反,直接渲染不会将帧划分成更小的箱或图块。相反,在直接渲染中,整个帧是一次渲染的。附加地,一些类型的GPU可允许平铺渲染和直接渲染两者。
在一些方面,GPU可将绘制或渲染过程应用于不同的箱或图块。例如,GPU可针对一个箱进行渲染,并为箱中的图元或像素执行所有绘制。在针对箱进行渲染的过程期间,可在GMEM中定位渲染目标。在一些实例中,在针对一个箱进行渲染之后,可将渲染目标的内容移动到系统存储器,并且可释放GMEM以渲染下一个箱。附加地,GPU可针对另一箱进行渲染,并且针对该箱中的图元或像素执行绘制。因此,在一些方面中,可能存在覆盖一个表面中的所有绘制的少量箱(例如,四个箱)。此外,GPU可循环通过一个箱中的所有绘制,但执行可见绘制调用的绘制,即包含可见几何图形的绘制调用。在一些方面,可生成可见性流(例如,在分箱过程中)以确定图像或场景中每个图元的可见性信息。例如,这种可见性流可标识某个图元是否可见。在一些方面,该信息可用于移除不可见的图元,例如在渲染过程中。此外,至少一些被标识为可见的图元可在渲染过程中渲染。
在图块渲染的一些方面,可存在多个处理阶段或过程。例如,可在两个过程中执行渲染,例如可见性或箱可见性过程(bin-visibility pass)和渲染或箱渲染过程(bin-rendering pass)。在可见性过程期间,GPU可输入渲染工作负载,记录图元或三角形的位置,并且然后确定哪些图元或三角形落入哪个箱或区域中。在可见性过程的一些方面,GPU还可标识或标记可见性流中每个图元或三角形的可见性。在渲染过程期间,GPU可输入可见性流并一次处理一个箱或区域。在一些方面,可分析可见性流以确定哪些图元或图元顶点可见或不可见。因而,可以处理可见的图元或图元顶点。通过这样做,GPU可减少处理或渲染不可见的图元或三角形的不必要的工作负载。
在一些方面,在可见性过程期间,可以处理某些类型的图元几何体,例如,仅位置几何体。附加地,根据图元或三角形的位置或定位,可以将图元分类到不同的箱或区域中。在一些实例中,将图元或三角形分类到不同的箱中可以是通过确定用于这些图元或三角形的可见性信息来执行的。例如,GPU可确定每个箱或区域中的每个图元的可见性信息或将其写入例如系统存储器中。该可见性信息可用于确定或生成可见性流。在渲染过程中,每个箱中的图元可单独渲染。在这些实例中,可见性流可以是从用于丢弃对于该箱不可见的图元的存储器中提取的。
GPU或GPU架构的一些方面可提供用于渲染(例如,软件渲染和硬件渲染)的数个不同的选项。在软件渲染中,驱动器或CPU可通过处理每个视图一次来复制整个帧几何图形。附加地,一些不同的状态可以根据视图而改变。因此,在软件渲染中,软件可通过改变可用于针对图像中的每个视点进行渲染的一些状态来复制整个工作负载。在某些方面中,由于GPU可能针对图像中的每个视点多次提交相同的工作负载,因此可能存在增加的开销量。在硬件渲染中,硬件或GPU可能负责复制或处理图像中每个视点的几何图形。因此,硬件可管理针对图像中每个视点的图元或三角形的复制或处理。
在一些方面,渲染可在多个位置和/或多个设备上执行,例如,以便在不同设备之间划分渲染工作负载。例如,渲染可在服务器和客户端设备之间分割,这可称为“分割渲染”。在一些实例中,分割渲染可以是一种用于将内容带到用户设备或头戴式显示器(HMD)的方法,其中图形处理的一部分可在设备或HMD外部(例如,在服务器处)执行。
可针对数个不同类型的应用(例如,虚拟现实(VR)应用、增强现实(AR)应用和/或扩展现实(XR)应用)执行分割渲染。在VR应用中,在用户设备处显示的内容可对应于人造或动画内容。在AR或XR内容中,在用户设备处显示的内容的一部分可对应于真实世界内容(例如,真实世界中的对象),并且内容的一部分可以是人造或动画内容。而且,人造或动画内容和真实世界内容可显示在光学透视或视频透视设备中,使得用户可同时观看真实世界对象和人造或动画内容。在一些方面,人造或动画内容可称为增强内容,反之亦然。
图3图示了如在图形处理中利用的着色图集300的一个示例。如图3所示,图形处理的一些方面可利用诸如经由着色图集300的着色图集流式传输。着色图集流式传输是适于流式传输虚拟现实(VR)内容的对象空间渲染框架。在一些实例中,着色图集流式传输也可称为向量流式传输。着色图集流式传输可将图元的补丁动态地图表化成纹理图集。着色图集流式传输还可对分配给图集中的矩形的数个图元或三角形(例如,一(1)至三(3)个图元或三角形)打补丁。
图形处理的一些方面还可确定两个或三个邻近图元/三角形的补丁的可见性。可直接从当前视点和预测视点的潜在可见集(PVS)导出(即,使用扩展视野(FOV))图集存储器管理。可在图形处理单元(GPU)上动态地执行该图集存储器管理过程。可在图集中分配新可见的补丁,而可从图集移除已变得不可见的补丁。此外,可基于补丁在屏幕上的投影面积来确定补丁大小。在着色级,可使用标准几何过程将可见补丁着色到图集中。
在分割渲染应用(例如,包括服务器和客户端设备的应用)中,服务器可计算着色图集(例如,着色图集300)中的着色信息。着色图集可被编码(例如,活动图像专家组(MPEG)编码)并流式传输到客户端设备(例如,独立的头戴式显示器(HMD))。着色图集可以是时间相干的,并且适用于高效的MPEG压缩和流式传输。客户端设备可以较高的帧速率渲染最终视图。附加地,可从着色图集中对着色进行采样。随着用户移动他们的头部,可渲染新的视图。这些新视图可使用客户端设备处可用的最新图集帧。
图形处理的一些方面可利用不同类型的着色过程(例如,对象空间着色或纹素着色)。对象空间着色可将着色结果存储在对象空间中,而不是像在其他类型的着色中那样存储在最终图像空间中。对象空间可以是模型的纹理空间,诸如在纹素着色中。在着色图集流式传输中,对象空间是其中模型的补丁在块(例如,矩形块)内被着色的图集。例如,图3中的着色图集300可以是其中模型的补丁在块内被着色的对象空间。
在图形处理的一些方面,不同的对象空间着色方法可对着色工作负载以不同的方式进行分组。这可改进着色的效率,并且能够实现着色信息的流式传输和/或着色信息的再利用。纹素着色的一些方面可通过使用每个纹理的原始纹理空间中的像素图块(例如,8×8像素图块)来对着色工作负载进行分组。此外,着色图集流式传输可通过使用被映射到矩形块中的补丁(例如,多达3个图元/三角形的组)来对着色工作负载进行分组。相比之下,屏幕空间方法可在每像素级别(或在屏幕空间图块中)操作,这可能需要大约每帧重新计算。因此,屏幕空间方法可能难以再利用和/或以足够的时间相干性进行流式传输。
对象空间着色方法还可能导致对象空间采样图案与目标屏幕空间采样图案不能良好地匹配。这种无法与目标屏幕空间采样图案匹配的情况可能导致过采样,从而浪费GPU性能。此外,无法与目标屏幕空间采样图案匹配的情况可能导致欠采样,这会导致图像质量下降。在一些实例中,由于矩形映射到块中,着色图集中的失真图元/三角形可能在一个轴线上出现欠采样,而在另一个轴线上出现过采样。基于上述内容,提供包括与目标屏幕空间采样图案匹配的采样图案的着色方法可能是有益的。标识具有对于所有可能视图而言多半视图无关且无失真的映射的可连续着色的大区域(例如,在纹理空间中)也可能是有益的。此外,包括足够大并与其屏幕空间大小大致对准的着色单元可能是有益的。
本公开的各方面可提供包括与目标屏幕空间采样图案匹配的采样图案的着色方法(例如,对象空间着色方法)。例如,本公开的各方面可包括具有对于所有可能视图而言多半视图无关且无失真的映射的大着色单元(例如,在纹理空间中)。本公开的各方面还可提供足够大并与其屏幕空间大小大致对准的着色单元。通过这样做,本公开的各方面可最小化过采样和欠采样的影响。
在一些方面,着色图集流式传输可依赖于对象空间着色并且可使用被映射到矩形块中作为单元构建块的补丁(例如,多达3个图元或三角形)。对象空间着色方法可能受到以下事实的影响:它们的采样图案与目标屏幕空间采样图案不能良好地匹配,这可能导致过采样和欠采样。本文所呈现的各方面提出了对象空间着色方法以解决此问题,包括与目标屏幕空间采样图案匹配的采样图案。例如,本文所呈现的各方面可利用具有对于数个视图(例如,所有可能的视图)而言视图无关且无失真的映射的着色单元。本文所呈现的各方面还可利用足够大且与其屏幕空间大小大致对准的着色单元以便最小化过采样和欠采样的影响。
在一些实例中,本公开的各方面可通过将场景划分为meshlet并预先计算数个视图无关图表来定义用于着色的像素组。例如,本公开的各方面可预先计算包括第一轴线(U)和第二轴线(V)的二维(2D)图表(即,UV图表)。meshlet是一组几何图元,它们可以连接也可以不连接。Meshlet可被生成为相对平坦的,使得meshlet内不发生自闭塞以便避免伪影。如本文所指示的,meshlet中的每个meshlet可包括一个或多个图元或三角形。此外,meshlet可以是现代渲染引擎的方便表示。例如,网格着色器可显著增加现代渲染管线的性能。
本公开的各方面可利用具有最大图元/三角形计数的meshlet或以其为目标。此外,本公开的各方面可使用现有的着色图集存储器管理以便将meshlet渲染到图集中。在一些方面,每个meshlet的固定UV图表可在初始化期间流式传输一次,并且UV图表可更新图集中的偏移量。而且,较大meshlet可能导致需要处理和流式传输的实例较少。
附加地,本公开的各方面可利用包括数个不同级的渲染过程。例如,本公开的各方面可利用预处理级、可见性级、存储器管理级、着色级和/或显示级进行渲染。在预处理级期间,本公开的各方面可经由应用最小二乘保角映射方法来生成meshlet并生成UV图表。在可见性级,本公开的各方面可确定哪些meshlet可见以及哪些meshlet不可见。在存储器管理级期间,本公开的各方面可为每个可见meshlet分配图集中的空间。在着色级,本公开的各方面可对所分配的图集块中的meshlet中的每个meshlet进行着色。最后,在显示级期间,本公开的各方面可利用图集中的偏移量和/或预先计算的UV图表,使用可见meshlet来渲染最终视图/图像。为了显示最终视图/图像,可将视图/图像发射到显示器或显示面板。
图4A、图4B和图4C分别图示了示例着色三维(3D)模型402、示例meshlet可视化模型422和示例meshlet 442的图400、420和440。更具体地,图4A、图4B和图4C中的图400、420和440图示了变换过程的不同级。如图4A、图4B和图4C中所描绘的,变换过程包括着色图集中的着色三维(3D)模型402、meshlet可视化模型422和meshlet 442。如图4A中所图示的,图400包括着色3D模型402,该着色3D模型包括所标识的区域(即,白框)。该所标识的区域对应于着色图集中包括至少一个meshlet(例如,meshlet 442)的区域。如图4B所示,图420包括meshlet可视化模型422,该meshlet可视化模型包括所标识的区域(即,白框)。类似于图4A,该所标识的区域对应于着色图集中包括至少一个meshlet(例如,meshlet 442)的区域。如图4C中所描绘的,图440包括着色图集中对应于图4A和图4B中所标识的区域的meshlet442。
本公开的各方面还可利用时间相干方法。例如,由于UV图表是预先计算的,因此meshlet的投影大小的变化可能导致meshlet到图集的映射的比例调整。该比例调整的过程可类似于标准着色图集中的过程。而且,该过程可与时间再利用和高速缓存组合以产生更高的效率(其可类似于时间自适应着色)。此外,流式传输编解码器可能能够利用类似于标准着色图集的时间相干性。
如上文所指示的,本公开的各方面可在渲染过程期间利用存储器管理级。在存储器管理级,可以类似于原始着色图集的方式确定meshlet的大小。例如,可基于meshlet中心、相机和meshlet中的顶点之间的最大角度来确定meshlet的大小。可执行该meshlet大小确定以避免透视投影的问题。在一些方面,可将边界框(例如,屏幕空间边界框)的边放大到一定的幂(例如,二的下一幂)。此外,可在着色图集中分配对应大小的块(例如,图集空间块)。附加地,可对边界框大小施加偏差(即,类似于原始着色图集中的偏差)。该过程可用于限制着色工作负载的量。
图5A和图5B分别图示了示例屏幕空间边界框和示例图集空间块的图500和520。如图5A所示,图500包括屏幕空间边界框502。如本文所提及的,可在渲染过程期间在存储器管理级中利用屏幕空间边界框502。更具体地,在存储器管理级期间,可对边界框的大小施加偏差。此外,可将屏幕空间边界框502的边放大到一定的幂(例如,2的幂)。如图5B所示,图520包括图集空间块522。如上文所提及的,可在着色图集中分配图集空间块522。例如,图集空间块522可对应于屏幕空间边界框502的大小并且被分配在着色图集中。此外,图集空间块522的长度可对应于一定的幂(例如,2m),并且图集空间块522的宽度可对应于另一量(例如,2n),其中m和n为整数。
图6图示了在着色级期间利用的示例meshlet的图600。如图6所示,图600包括meshlet 610和着色像素620。如上文所提及的,本公开的各方面可在渲染过程期间利用着色级。在着色级期间,网格着色器可用于对着色图集(或meshlet图集)中的某些meshlet(例如,可见meshlet)进行着色。如图6中所描绘的,可在着色meshlet(例如,meshlet 610)中的每个着色meshlet周围添加着色像素(例如,着色像素620)的边界。通过在meshlet610周围添加着色像素620的边界,这可允许在从图集采样时进行纹理滤波。着色图集可包含对应于所渲染场景的可见表面的着色信息。meshlet图集可包含对应于所渲染场景的可见表面的meshlet信息。此外,布局信息可以是关于所渲染场景内的元素的布置的信息。
本公开的各方面还可在渲染过程期间利用显示级。在一些实例中,显示级可以是直接渲染过程。例如,可在顶点着色器中利用预先计算的UV图表(即,按顶点存储)和图集中的偏移量来计算纹理坐标。纹理坐标是纹理空间中的坐标。纹理坐标可相对于纹理空间中的位置(例如,(0,0))。此外,当纹理被应用于图元时,其纹素地址可被映射到对象坐标中。然后可将对象坐标转换为屏幕坐标或像素位置。附加地,片段着色器可利用来自顶点着色器的纹理坐标来实现对着色图集的纹理查找。
本公开的各方面可包括数个不同的益处或优点。如上文所提及的,本公开的各方面可提供一种稳健的纹理空间着色方法,其利用某些着色方法,诸如meshlet和网格着色器。根据本公开的纹理空间着色解决方案可多半独立于原始模型的纹理分辨率。此外,纹理空间着色解决方案可通过采用视图无关的预先计算的UV图表来减少采样伪影。例如,视图无关的预先计算的UV图表可组合图元/三角形,例如尽可能多的图元/三角形。纹理空间着色解决方案还可维持高效的存储器管理、时间相干性、潜在流式传输能力和/或着色图集的紧凑性。因此,本文所呈现的各方面可为利用纹理空间高速缓存和/或渲染的现代引擎提供实用的办法。例如,本文所呈现的各方面可与数个过程一起利用,诸如全局照明、时间累积/高速缓存/抗混叠和烘焙。
图7是根据本公开的一种或多种技术的图形处理的通信流程图700。如图7所示,图700包括根据本公开的一种或多种技术的GPU组件702(例如,GPU管线中的组件)、显示器或面板704与GPU组件706(例如,GPU管线中的组件)之间的示例通信。
在710处,GPU组件702可将至少一个场景划分成多个meshlet,该多个meshlet中的每个meshlet包括多个图元,并且该多个图元中的每个包括多个顶点。在一些方面,GPU组件702可接收对至少一个场景的指示(例如,GPU组件702可从GPU组件706接收对至少一个场景712的指示)。在一些方面,多个meshlet中的每个meshlet中的多个图元中的每个图元可与多个图元中的至少一个其他图元相邻、在至少一个其他图元的阈值距离内、或者与至少一个其他图元在空间上相干。
在720处,GPU组件702可标识至少一个场景中的多个meshlet中的每个meshlet的可见性,其中该多个meshlet中的每个meshlet被标识为可见或不可见。在一些实例中,被标识为可见的多个meshlet中的每个meshlet可对应于meshlet图集中的所着色的多个像素中的至少一个像素。
在730处,GPU组件702可丢弃被标识为不可见的多个meshlet中的每个meshlet。
在740处,GPU组件702可针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点计算纹理坐标对。可基于meshlet的最小失真布置来预先计算针对多个meshlet中的每个meshlet中的多个顶点中的每个顶点的纹理坐标对。此外,可基于meshlet的透视投影来动态地计算针对多个meshlet中的每个meshlet中的多个顶点中的每个顶点的纹理坐标对。此外,可在网格着色器、顶点着色器或计算着色中计算针对多个meshlet中的每个meshlet中的多个顶点中的每个顶点的纹理坐标对。
在750处,GPU组件702可基于针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点的纹理坐标对并且基于多个meshlet中的每个meshlet的透视投影选择至少一个场景中的多个meshlet中的每个meshlet的大小。多个meshlet中的每个meshlet的透视投影可以是每个meshlet到对应于至少一个场景的当前视点的图像平面的投影。此外,多个meshlet中的每个meshlet的大小可基于多个meshlet中的每个meshlet的中心与meshlet的多个顶点中的每个顶点之间的对向角的最大值,其中该对向角对应于至少一个场景的当前视点。
在760处,GPU组件702可针对至少一个场景中的多个meshlet中的每个meshlet计算meshlet图集中的布局信息,针对每个meshlet的meshlet图集中的布局信息基于meshlet的所选择的大小。在一些方面,计算meshlet图集中的布局信息可包括为至少一个场景中的多个meshlet中的每个meshlet分配meshlet图集中的空间,其中为多个meshlet中的每个meshlet分配的着色图集中的空间基于meshlet的所选择的大小。meshlet图集可对应于对象空间着色表示。此外,meshlet图集可与图形应用相关联,该图形应用包括以下中的至少一者:流式传输应用、全局照明应用、时间累积应用、高速缓存应用或抗混叠应用。
在770处,GPU组件702可基于meshlet图集中的所计算的布局信息,对meshlet图集中的多个像素中的每个像素进行着色。在一些实例中,对meshlet图集中的多个像素中的每个像素进行着色可包括计算meshlet图集中的多个像素中的每个像素的表面颜色。例如,GPU组件可计算meshlet图集中的多个像素中的每个像素的表面颜色。附加地,对meshlet图集中的多个像素中的每个像素进行着色可包括计算以下中的至少一者:meshlet图集中的多个像素中的每个像素的透明度信息、meshlet图集中的多个像素中的每个像素的对象标识符、meshlet图集中的多个像素中的每个像素的一个或多个表面法线、或者meshlet图集中的多个像素中的每个像素的世界空间位置。例如,GPU组件可计算以下中的至少一者:meshlet图集中的多个像素中的每个像素的透明度信息、meshlet图集中的多个像素中的每个像素的对象标识符、meshlet图集中的多个像素中的每个像素的一个或多个表面法线、或者meshlet图集中的多个像素中的每个像素的世界空间位置。
在780处,GPU组件702可渲染被标识为可见的多个meshlet中的每个meshlet,其中对meshlet图集进行采样以确定输出图像中的多个像素中的每个像素的颜色。
在790处,GPU组件702可将包括所渲染的被标识为可见的多个meshlet的输出图像发射到显示器或面板(例如,显示器/面板704)(例如,GPU组件702将图像792发射到显示器/面板704)。
图8是根据本公开的一种或多种技术的图形处理的示例方法的流程图800。该方法可由GPU(诸如用于图形处理的装置)、另一图形处理器、GPU管线、无线通信设备和/或结合图1至图7的示例使用的可执行图形处理的任何装置来执行。
在802处,GPU可将至少一个场景划分成多个meshlet,该多个meshlet中的每个meshlet包括多个图元,并且该多个图元中的每个图元包括多个顶点,如结合图1至图7中的示例所描述的。例如,如图7的710中所描述的,GPU组件702可将至少一个场景划分成多个meshlet,该多个meshlet中的每个meshlet包括多个图元,并且该多个图元中的每个图元包括多个顶点。此外,步骤802可由图1中的处理单元120执行。在一些方面,多个meshlet中的每个meshlet中的多个图元中的每个图元可与多个图元中的至少一个其他图元相邻、在至少一个其他图元的阈值距离内、或者与至少一个其他图元在空间上相干。在一些方面,GPU可接收对至少一个场景的指示(例如,GPU可从另一GPU组件接收对至少一个场景的指示)。
在808处,GPU可针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点计算纹理坐标对,如结合图1至图7中的示例所描述的。例如,如图7的740中所描述的,GPU组件702可针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点计算纹理坐标对。此外,步骤808可由图1中的处理单元120执行。可基于meshlet的最小失真布置来预先计算针对多个meshlet中的每个meshlet中的多个顶点中的每个顶点的纹理坐标对。此外,可基于meshlet的透视投影来动态地计算针对多个meshlet中的每个meshlet中的多个顶点中的每个顶点的纹理坐标对。此外,可在网格着色器、顶点着色器或计算着色中计算针对多个meshlet中的每个meshlet中的多个顶点中的每个顶点的纹理坐标对。
在810处,GPU可基于针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点的纹理坐标对并且基于多个meshlet中的每个meshlet的透视投影选择至少一个场景中的多个meshlet中的每个meshlet的大小,如结合图1至图7中的示例所描述的。例如,如图7的750中所描述的,GPU组件702可基于针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点的纹理坐标对并且基于多个meshlet中的每个meshlet的透视投影选择至少一个场景中的多个meshlet中的每个meshlet的大小。此外,步骤810可由图1中的处理单元120执行。多个meshlet中的每个meshlet的透视投影可以是每个meshlet到对应于至少一个场景的当前视点的图像平面的投影。此外,多个meshlet中的每个meshlet的大小可基于多个meshlet中的每个meshlet的中心与meshlet的多个顶点中的每个顶点之间的对向角的最大值,其中该对向角对应于至少一个场景的当前视点。
在812处,GPU可针对至少一个场景中的多个meshlet中的每个meshlet计算meshlet图集中的布局信息,针对每个meshlet的meshlet图集中的布局信息基于meshlet的所选择的大小,如结合图1至图7中的示例所描述的。例如,如在图7的760中所描述的,GPU组件702可针对至少一个场景中的多个meshlet中的每个meshlet计算meshlet图集中的布局信息,针对每个meshlet的meshlet图集中的布局信息基于meshlet的所选择的大小。此外,步骤812可由图1中的处理单元120执行。在一些方面,计算meshlet图集中的布局信息可包括为至少一个场景中的多个meshlet中的每个meshlet分配meshlet图集中的空间,其中为多个meshlet中的每个meshlet分配的着色图集中的空间基于meshlet的所选择的大小。meshlet图集可对应于对象空间着色表示。此外,meshlet图集可与图形应用相关联,该图形应用包括以下中的至少一者:流式传输应用、全局照明应用、时间累积应用、高速缓存应用或抗混叠应用。
在814处,GPU可基于meshlet图集中的所计算的布局信息,对meshlet图集中的多个像素中的每个像素进行着色,如结合图1至图7中的示例所描述的。例如,如图7的770中所描述的,GPU组件702可基于meshlet图集中的所计算的布局信息,对meshlet图集中的多个像素中的每个像素进行着色。此外,步骤814可由图1中的处理单元120执行。在一些实例中,对meshlet图集中的多个像素中的每个像素进行着色可包括计算meshlet图集中的多个像素中的每个像素的表面颜色。例如,GPU可计算meshlet图集中的多个像素中的每个像素的表面颜色。附加地,对meshlet图集中的多个像素中的每个像素进行着色可包括计算以下中的至少一者:meshlet图集中的多个像素中的每个像素的透明度信息、meshlet图集中的多个像素中的每个像素的对象标识符、meshlet图集中的多个像素中的每个像素的一个或多个表面法线、或者meshlet图集中的多个像素中的每个像素的世界空间位置。例如,GPU可计算以下中的至少一者:meshlet图集中的多个像素中的每个像素的透明度信息、meshlet图集中的多个像素中的每个像素的对象标识符、meshlet图集中的多个像素中的每个像素的一个或多个表面法线、或者meshlet图集中的多个像素中的每个像素的世界空间位置。
图9是根据本公开的一种或多种技术的图形处理的示例方法的流程图900。该方法可由GPU(诸如用于图形处理的装置)、另一图形处理器、GPU管线、无线通信设备和/或结合图1至图7的示例使用的可执行图形处理的任何装置来执行。
在902处,GPU可将至少一个场景划分成多个meshlet,该多个meshlet中的每个meshlet包括多个图元,并且该多个图元中的每个图元包括多个顶点,如结合图1至图7中的示例所描述的。例如,如图7的710中所描述的,GPU组件702可将至少一个场景划分成多个meshlet,该多个meshlet中的每个meshlet包括多个图元,并且该多个图元中的每个图元包括多个顶点。此外,步骤902可由图1中的处理单元120执行。在一些方面,多个meshlet中的每个meshlet中的多个图元中的每个图元可与多个图元中的至少一个其他图元相邻、在至少一个其他图元的阈值距离内、或者与至少一个其他图元在空间上相干。在一些方面,GPU可接收对至少一个场景的指示(例如,GPU可从另一GPU组件接收对至少一个场景的指示)。
在904处,GPU可标识至少一个场景中的多个meshlet中的每个meshlet的可见性,其中该多个meshlet中的每个meshlet被标识为可见或不可见,如结合图1至图7中的示例所描述的。例如,如图7的720中所描述的,GPU组件702可标识至少一个场景中的多个meshlet中的每个meshlet的可见性,其中该多个meshlet中的每个meshlet被标识为可见或不可见。此外,步骤904可由图1中的处理单元120执行。在一些实例中,被标识为可见的多个meshlet中的每个meshlet可对应于meshlet图集中的所着色的多个像素中的至少一个像素。
在906处,GPU可丢弃被标识为不可见的多个meshlet中的每个meshlet,如结合图1至图7中的示例所描述的。例如,如图7的730中所描述的,GPU组件702可丢弃被标识为不可见的多个meshlet中的每个meshlet。此外,步骤906可由图1中的处理单元120执行。
在908处,GPU可针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点计算纹理坐标对,如结合图1至图7中的示例所描述的。例如,如图7的740中所描述的,GPU组件702可针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点计算纹理坐标对。此外,步骤908可由图1中的处理单元120执行。可基于meshlet的最小失真布置来预先计算针对多个meshlet中的每个meshlet中的多个顶点中的每个顶点的纹理坐标对。此外,可基于meshlet的透视投影来动态地计算针对多个meshlet中的每个meshlet中的多个顶点中的每个顶点的纹理坐标对。此外,可在网格着色器、顶点着色器或计算着色中计算针对多个meshlet中的每个meshlet中的多个顶点中的每个顶点的纹理坐标对。
在910处,GPU可基于针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点的纹理坐标对并且基于多个meshlet中的每个meshlet的透视投影选择至少一个场景中的多个meshlet中的每个meshlet的大小,如结合图1至图7中的示例所描述的。例如,如图7的750中所描述的,GPU组件702可基于针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点的纹理坐标对并且基于多个meshlet中的每个meshlet的透视投影选择至少一个场景中的多个meshlet中的每个meshlet的大小。此外,步骤910可由图1中的处理单元120执行。多个meshlet中的每个meshlet的透视投影可以是每个meshlet到对应于至少一个场景的当前视点的图像平面的投影。此外,多个meshlet中的每个meshlet的大小可基于多个meshlet中的每个meshlet的中心与meshlet的多个顶点中的每个顶点之间的对向角的最大值,其中该对向角对应于至少一个场景的当前视点。
在912处,GPU可针对至少一个场景中的多个meshlet中的每个meshlet计算meshlet图集中的布局信息,针对每个meshlet的meshlet图集中的布局信息基于meshlet的所选择的大小,如结合图1至图7中的示例所描述的。例如,如在图7的760中所描述的,GPU组件702可针对至少一个场景中的多个meshlet中的每个meshlet计算meshlet图集中的布局信息,针对每个meshlet的meshlet图集中的布局信息基于meshlet的所选择的大小。此外,步骤912可由图1中的处理单元120执行。在一些方面,计算meshlet图集中的布局信息可包括为至少一个场景中的多个meshlet中的每个meshlet分配meshlet图集中的空间,其中为多个meshlet中的每个meshlet分配的着色图集中的空间基于meshlet的所选择的大小。meshlet图集可对应于对象空间着色表示。此外,meshlet图集可与图形应用相关联,该图形应用包括以下中的至少一者:流式传输应用、全局照明应用、时间累积应用、高速缓存应用或抗混叠应用。
在914处,GPU可基于meshlet图集中的所计算的布局信息,对meshlet图集中的多个像素中的每个像素进行着色,如结合图1至图7中的示例所描述的。例如,如图7的770中所描述的,GPU组件702可基于meshlet图集中的所计算的布局信息,对meshlet图集中的多个像素中的每个像素进行着色。此外,步骤914可由图1中的处理单元120执行。在一些实例中,对meshlet图集中的多个像素中的每个像素进行着色可包括计算meshlet图集中的多个像素中的每个像素的表面颜色。例如,GPU可计算meshlet图集中的多个像素中的每个像素的表面颜色。附加地,对meshlet图集中的多个像素中的每个像素进行着色可包括计算以下中的至少一者:meshlet图集中的多个像素中的每个像素的透明度信息、meshlet图集中的多个像素中的每个像素的对象标识符、meshlet图集中的多个像素中的每个像素的一个或多个表面法线、或者meshlet图集中的多个像素中的每个像素的世界空间位置。例如,GPU可计算以下中的至少一者:meshlet图集中的多个像素中的每个像素的透明度信息、meshlet图集中的多个像素中的每个像素的对象标识符、meshlet图集中的多个像素中的每个像素的一个或多个表面法线、或者meshlet图集中的多个像素中的每个像素的世界空间位置。
在916处,GPU可渲染被标识为可见的多个meshlet中的每个meshlet,其中对meshlet图集进行采样以确定输出图像中的多个像素中的每个像素的颜色,如结合图1至图7中的示例所描述的。例如,如在图7的780中所描述的,GPU组件702可渲染被标识为可见的多个meshlet中的每个meshlet,其中对meshlet图集进行采样以确定输出图像中的多个像素中的每个像素的颜色。此外,步骤916可由图1中的处理单元120执行。
在918处,GPU可将包括所渲染的被标识为可见的多个meshlet的输出图像发射到显示器或面板,如结合图1至图7中的示例所描述的。例如,如图7的790中所描述的,GPU组件702可将包括所渲染的被标识为可见的多个meshlet的输出图像发射到显示器或面板。此外,步骤918可由图1中的处理单元120执行。
在配置中,提供了用于图形处理的方法或装置。该装置可以是GPU、图形处理器或可执行图形处理的某个其他处理器。在各方面,该装置可以是设备104内的处理单元120,或者可以是设备104或另一设备内的某个其他硬件。该装置(例如,处理单元120)可包括用于将至少一个场景划分成多个meshlet的部件,该多个meshlet中的每个meshlet包括多个图元,并且该多个图元中的每个图元包括多个顶点。该装置(例如,处理单元120)还可包括用于针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点计算纹理坐标对的部件。该装置(例如,处理单元120)还可包括用于基于针对多个meshlet中的每个meshlet中的多个图元中的每个图元的多个顶点中的每个顶点的纹理坐标对并且基于多个meshlet中的每个meshlet的透视投影选择至少一个场景中的多个meshlet中的每个meshlet的大小的部件。该装置(例如,处理单元120)还可包括用于针对至少一个场景中的多个meshlet中的每个meshlet计算meshlet图集中的布局信息的部件,针对每个meshlet的meshlet图集中的布局信息基于meshlet的所选择的大小。该装置(例如,处理单元120)还可包括用于基于meshlet图集中的所计算的布局信息,对meshlet图集中的多个像素中的每个像素进行着色的部件。该装置(例如,处理单元120)还可包括用于标识至少一个场景中的多个meshlet中的每个meshlet的可见性的部件,其中该多个meshlet中的每个meshlet被标识为可见或不可见。该装置(例如,处理单元120)还可包括用于丢弃被标识为不可见的多个meshlet中的每个meshlet的部件。该装置(例如,处理单元120)还可包括用于渲染被标识为可见的多个meshlet中的每个meshlet的部件,其中对meshlet图集进行采样以确定输出图像中的多个像素中的每个像素的颜色。该装置(例如,处理单元120)还可包括用于将包括所渲染的被标识为可见的多个meshlet的输出图像发射到显示器或面板的部件。
本文中所描述的主题可被实现以达成一个或多个益处或优点。例如,所描述的图形处理技术可由GPU、图形处理器或可执行图形处理以实现本文所描述的meshlet着色图集技术的某个其他处理器使用。与其他图形处理技术相比,这也可以以低成本实现。此外,本文的图形处理技术可以改进或加速数据处理或执行。此外,本文的图形处理技术可以改进资源或数据利用和/或资源效率。附加地,本公开的各方面可利用meshlet着色图集技术,以便改进存储器带宽效率和/或增加GPU处的处理速度。
应当理解的是,所公开的过程/流程图中框的特定次序或层次只是对示例方法的说明。应当理解的是,基于设计偏好可以重新排列过程/流程图中框的特定次序或层次。进一步地,一些框可以组合或者省略。所附的方法权利要求以样本次序给出了各个框的元素,但是并不意味着受限于所给出的特定次序或层次。
提供前面的描述是为了使本领域的任何技术人员能够实践这里描述的各个方面。对这些方面的各种修改对于本领域技术人员而言将是显而易见的,并且本文中所定义的通用原理可以应用于其它方面。因此,权利要求并不旨在限于本文所示出的各方面,而是应被赋予与权利要求的语言相一致的全部范围,其中除非特别说明,否则以单数形式对元素的引用并不旨在表示“一个且仅一个”,而是表示“一个或多个”。措辞“示例性”在本文中用于意指“用作示例、实例、或例示”。本文中被描述为“示例性的”任何方面未必被解释为比其它方面优选或具有优势。
除非另有明确声明,否则术语“一些”指代一个或多个,并且在上下文没有另外规定的情况下,术语“或”可以被解释为“和/或”。组合诸如“A、B或C中的至少一个”、“A、B或C中的一个或多个”、“A、B和C中的至少一个”、“A、B和C中的一个或多个”以及“A、B、C或其任何组合”包括A、B和/或C的任何组合,并可包括多个A、多个B或多个C。具体地,组合诸如“A、B或C中的至少一者”、“A、B或C中的一者或多者”、“A、B和C中的至少一者”、“A、B和C中的一者或多者”、以及“A、B、C或其任何组合”可以是仅A、仅B、仅C、A和B、A和C、B和C、或者A和B和C,其中任何此类组合可包含A、B或C中的一个或多个成员。贯穿本公开描述的各个方面的元素的对于本领域普通技术人员来说是已知的或稍后将是已知的所有结构和功能等同方案通过引用的方式明确地并入本文,并且旨在被权利要求所涵盖。此外,本文所公开的任何内容都不是旨在奉献给公众的,无论这种公开是否在权利要求中明确地记载。“模块”、“机构”、“元件”、“设备”等词不能替代“部件”一词。因此,不应当将权利要求元素解释为部件加功能,除非元件是明确地使用短语“用于......的部件”来叙述的。
在一个或多个示例中,本文中所描述的功能可以在硬件、软件、固件或它们的任何组合中实现。例如,尽管贯穿本公开使用了术语“处理单元”,但是这样的处理单元可以在硬件、软件、固件或它们的任何组合中实现。如果在本文中描述的任何功能、处理单元、技术或其他模块以软件实现,则在本文中描述的功能、处理单元、技术或其他模块可以作为一个或多个指令或代码存储在计算机可读介质上或在计算机可读介质上传输。
根据本公开,在上下文没有另外规定的情况下术语“或”可被解读为“和/或”。附加地,虽然诸如“一个或多个”或“至少一个”等短语可能已经用于本文所公开的一些特征而不是其他特征,但是没有使用这种语言的特征可以被解读为在上下文没有另外规定的情况下具有此类隐含含义。
在一个或多个示例中,本文中所描述的功能可以在硬件、软件、固件或其任何组合中实现。例如,尽管贯穿本公开使用了术语“处理单元”,但是这样的处理单元可以在硬件、软件、固件或它们的任何组合中实现。如果在本文中描述的任何功能、处理单元、技术或其他模块以软件实现,则在本文中描述的功能、处理单元、技术或其他模块可以作为一个或多个指令或代码存储在计算机可读介质上或在计算机可读介质上传输。计算机可读介质可包括计算机数据存储介质和通信介质,这些介质包括促成计算机程序从一地向另一地转移的任何介质。以此方式,计算机可读介质一般可对应于(1)非暂态的有形计算机可读存储介质或(2)通信介质诸如信号或载波。数据存储介质可以是可由一台或多台计算机或一个或多个处理器访问以检索用于实现本公开所述技术的指令、代码和/或数据结构的任何可用介质。作为示例而非限定,此类计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备。本文使用的磁盘和光盘包括:压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光来再现数据。上述的组合应当也被包括在计算机可读介质的范围内。计算机程序产品可以包括计算机可读介质。
代码可以由一个或多个处理器来执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、算术逻辑单元(ALU)、现场可编程逻辑阵列(FPGA)、或其他等效的集成的或分立逻辑电路。相应地,如本文所使用的术语“处理器”可以指任何上述结构或适于实现本文所描述的技术的任何其他结构。同样,这些技术可以在一个或多个电路或逻辑元件中被完全实现。
本公开的技术可以在各种各样的设备或装置中实现,包括无线手机、集成电路(IC)或IC组(例如,芯片组)。本公开中描述了各种组件、模块或单元,以强调配置为执行所公开技术的设备的功能方面,但不一定需要由不同的硬件单元来实现。确切而言,如上所述,各个单元可以被组合在任何硬件单元中,或者由可互操作的硬件单元的集合(包括如上所述的一个或多个处理器)结合合适的软件和/或固件来提供。相应地,如本文所使用的术语“处理器”可以指任何上述结构或适于实现本文所描述的技术的任何其他结构。同样,这些技术可以在一个或多个电路或逻辑元件中被完全实现。
以下方面仅是例示性的并且可以与本文描述的其他方面或教导内容相结合,而不受限制。
方面1是一种用于图形处理的装置,该装置包括耦合到存储器的至少一个处理器,并且至少部分基于存储在该存储器中的第一信息,该至少一个处理器被配置为:将至少一个场景划分成多个meshlet,该多个meshlet中的每个meshlet包括多个图元,并且该多个图元中的每个图元包括多个顶点;针对该多个meshlet中的每个meshlet中的该多个图元中的每个图元的该多个顶点中的每个顶点计算纹理坐标对;基于针对该多个meshlet中的每个meshlet中的该多个图元中的每个图元的该多个顶点中的每个顶点的该纹理坐标对并且基于该多个meshlet中的每个meshlet的透视投影选择该至少一个场景中的该多个meshlet中的每个meshlet的大小;针对该至少一个场景中的该多个meshlet中的每个meshlet计算meshlet图集中的布局信息,针对每个meshlet的该meshlet图集中的该布局信息基于该meshlet的所选择的大小;以及基于该meshlet图集中的所计算的布局信息,对该meshlet图集中的多个像素中的每个像素进行着色。
方面2是根据方面1所述的装置,其中该至少一个处理器还被配置为:标识该至少一个场景中的该多个meshlet中的每个meshlet的可见性,其中该多个meshlet中的每个meshlet被标识为可见或不可见。
方面3是根据方面2所述的装置,其中该至少一个处理器还被配置为:丢弃被标识为不可见的该多个meshlet中的每个meshlet。
方面4是根据方面2所述的装置,其中被标识为可见的该多个meshlet中的每个meshlet对应于该meshlet图集中的所着色的多个像素中的至少一个像素。
方面5是根据方面1至4中任一项所述的装置,其中该多个meshlet中的每个meshlet的该透视投影是每个meshlet到对应于该至少一个场景的当前视点的图像平面的投影。
方面6是根据方面1至5中任一项所述的装置,其中该多个meshlet中的每个meshlet的该大小基于该多个meshlet中的每个meshlet的中心与该meshlet的该多个顶点中的每个顶点之间的对向角的最大值,其中该对向角对应于该至少一个场景的当前视点。
方面7是根据方面1至6中任一项所述的装置,其中为了计算该meshlet图集中的该布局信息,该至少一个处理器被配置为:为该至少一个场景中的该多个meshlet中的每个meshlet分配该meshlet图集中的空间,其中为该多个meshlet中的每个meshlet分配的着色图集中的空间基于该meshlet的所选择的大小。
方面8是根据方面1至7中任一项所述的装置,其中为了对该meshlet图集中的该多个像素中的每个像素进行着色,该至少一个处理器被配置为:计算该meshlet图集中的该多个像素中的每个像素的表面颜色。
方面9是根据方面1至8中任一项所述的装置,其中为了对该meshlet图集中的该多个像素中的每个像素进行着色,该至少一个处理器被配置为:计算以下中的至少一者:该meshlet图集中的该多个像素中的每个像素的透明度信息、该meshlet图集中的该多个像素中的每个像素的对象标识符、该meshlet图集中的该多个像素中的每个像素的一个或多个表面法线、或者该meshlet图集中的该多个像素中的每个像素的世界空间位置。
方面10是根据方面1至9中任一项所述的装置,其中该至少一个处理器还被配置为:渲染被标识为可见的该多个meshlet中的每个meshlet,其中对该meshlet图集进行采样以确定输出图像中的该多个像素中的每个像素的颜色。
方面11是根据方面10所述的装置,其中该至少一个处理器还被配置为:将包括所渲染的被标识为可见的多个meshlet的该输出图像发射到显示器或面板。
方面12是根据方面1至11中任一项所述的装置,其中该多个meshlet中的每个meshlet中的该多个图元中的每个图元与该多个图元中的至少一个其他图元相邻、在该至少一个其他图元的阈值距离内、或者与该至少一个其他图元在空间上相干。
方面13是根据方面1至12中任一项所述的装置,其中基于该meshlet的最小失真布置来预先计算针对该多个meshlet中的每个meshlet中的该多个顶点中的每个顶点的该纹理坐标对。
方面14是根据方面1至13中任一项所述的装置,其中基于该meshlet的该透视投影来动态地计算针对该多个meshlet中的每个meshlet中的该多个顶点中的每个顶点的该纹理坐标对。
方面15是根据方面1至14中任一项所述的装置,其中在网格着色器、顶点着色器或计算着色器中计算针对该多个meshlet中的每个meshlet中的该多个顶点中的每个顶点的该纹理坐标对。
方面16是根据方面1至15中任一项所述的装置,其中该meshlet图集对应于对象空间着色表示。
方面17是根据方面1至16中任一项所述的装置,其中该meshlet图集与图形应用相关联,该图形应用包括以下中的至少一者:流式传输应用、全局照明应用、时间累积应用、高速缓存应用或抗混叠应用。
方面18是根据方面1至17中任一项所述的装置,其中该装置是无线通信设备,还包括耦合到该至少一个处理器的天线或收发器中的至少一者,其中该至少一个处理器被配置为经由该天线或该收发器中的至少一者接收对该场景的指示。
方面19是一种用于实现根据方面1至17中任一项所述的图形处理的方法。
方面20是一种用于图形处理的装置,该装置包括用于实现方面1至18中的任一项的部件。
方面21是一种存储计算机可执行代码的计算机可读介质(例如,非暂态计算机可读介质),该代码在由处理器执行时使该至少一个处理器实现方面1至17中的任一项。
Claims (30)
1.一种用于图形处理的装置,所述装置包括:
存储器;和
至少一个处理器,所述至少一个处理器耦合到所述存储器,并且至少部分地基于存储在所述存储器中的第一信息,所述至少一个处理器被配置为:
将至少一个场景划分成多个meshlet,所述多个meshlet中的每个meshlet包括多个图元,并且所述多个图元中的每个图元包括多个顶点;
针对所述多个meshlet中的每个meshlet中的所述多个图元中的每个图元的所述多个顶点中的每个顶点计算纹理坐标对;
基于针对所述多个meshlet中的每个meshlet中的所述多个图元中的每个图元的所述多个顶点中的每个顶点的所述纹理坐标对并且基于所述多个meshlet中的每个meshlet的透视投影选择所述至少一个场景中的所述多个meshlet中的每个meshlet的大小;
针对所述至少一个场景中的所述多个meshlet中的每个meshlet计算meshlet图集中的布局信息,针对每个meshlet的所述meshlet图集中的所述布局信息基于所述meshlet的所选择的大小;以及
基于所述meshlet图集中的所计算的布局信息,对所述meshlet图集中的多个像素中的每个像素进行着色。
2.根据权利要求1所述的装置,其中所述至少一个处理器还被配置为:
标识所述至少一个场景中的所述多个meshlet中的每个meshlet的可见性,其中所述多个meshlet中的每个meshlet被标识为可见或不可见。
3.根据权利要求2所述的装置,其中所述至少一个处理器还被配置为:
丢弃被标识为不可见的所述多个meshlet中的每个meshlet。
4.根据权利要求2所述的装置,其中被标识为可见的所述多个meshlet中的每个meshlet对应于所述meshlet图集中的所着色的多个像素中的至少一个像素。
5.根据权利要求1所述的装置,其中所述多个meshlet中的每个meshlet的所述透视投影是每个meshlet到对应于所述至少一个场景的当前视点的图像平面的投影。
6.根据权利要求1所述的装置,其中所述多个meshlet中的每个meshlet的所述大小基于所述多个meshlet中的每个meshlet的中心与所述meshlet的所述多个顶点中的每个顶点之间的对向角的最大值,其中所述对向角对应于所述至少一个场景的当前视点。
7.根据权利要求1所述的装置,其中为了计算所述meshlet图集中的所述布局信息,所述至少一个处理器被配置为:为所述至少一个场景中的所述多个meshlet中的每个meshlet分配所述meshlet图集中的空间,其中为所述多个meshlet中的每个meshlet分配的着色图集中的空间基于所述meshlet的所选择的大小。
8.根据权利要求1所述的装置,其中为了对所述meshlet图集中的所述多个像素中的每个像素进行着色,所述至少一个处理器被配置为:计算所述meshlet图集中的所述多个像素中的每个像素的表面颜色。
9.根据权利要求1所述的装置,其中为了对所述meshlet图集中的所述多个像素中的每个像素进行着色,所述至少一个处理器被配置为:计算所述meshlet图集中的所述多个像素中的每个像素的透明度信息、所述meshlet图集中的所述多个像素中的每个像素的对象标识符、所述meshlet图集中的所述多个像素中的每个像素的一个或多个表面法线、或者所述meshlet图集中的所述多个像素中的每个像素的世界空间位置中的至少一者。
10.根据权利要求1所述的装置,其中所述至少一个处理器还被配置为:
渲染被标识为可见的所述多个meshlet中的每个meshlet,其中对所述meshlet图集进行采样以确定输出图像中的所述多个像素中的每个像素的颜色。
11.根据权利要求10所述的装置,其中所述至少一个处理器还被配置为:
将包括所渲染的被标识为可见的多个meshlet的所述输出图像发射到显示器或面板。
12.根据权利要求1所述的装置,其中所述多个meshlet中的每个meshlet中的所述多个图元中的每个图元与所述多个图元中的至少一个其他图元相邻、在所述至少一个其他图元的阈值距离内、或者与所述至少一个其他图元在空间上相干。
13.根据权利要求1所述的装置,其中基于所述meshlet的最小失真布置来预先计算针对所述多个meshlet中的每个meshlet中的所述多个顶点中的每个顶点的所述纹理坐标对。
14.根据权利要求1所述的装置,其中基于所述meshlet的所述透视投影来动态地计算针对所述多个meshlet中的每个meshlet中的所述多个顶点中的每个顶点的所述纹理坐标对。
15.根据权利要求1所述的装置,其中在网格着色器、顶点着色器或计算着色器中计算针对所述多个meshlet中的每个meshlet中的所述多个顶点中的每个顶点的所述纹理坐标对。
16.根据权利要求1所述的装置,其中所述meshlet图集对应于对象空间着色表示。
17.根据权利要求1所述的装置,所述装置还包括耦合到所述至少一个处理器的天线或收发器中的至少一者,其中所述至少一个处理器被配置为经由所述天线或所述收发器中的至少一者接收对所述场景的指示,并且其中所述meshlet图集与图形应用相关联,所述图形应用包括以下中的至少一者:流式传输应用、全局照明应用、时间累积应用、高速缓存应用或抗混叠应用。
18.一种图形处理的方法,所述方法包括:
将至少一个场景划分成多个meshlet,所述多个meshlet中的每个meshlet包括多个图元,并且所述多个图元中的每个图元包括多个顶点;
针对所述多个meshlet中的每个meshlet中的所述多个图元中的每个图元的所述多个顶点中的每个顶点计算纹理坐标对;
基于针对所述多个meshlet中的每个meshlet中的所述多个图元中的每个图元的所述多个顶点中的每个顶点的所述纹理坐标对并且基于所述多个meshlet中的每个meshlet的透视投影选择所述至少一个场景中的所述多个meshlet中的每个meshlet的大小;
针对所述至少一个场景中的所述多个meshlet中的每个meshlet计算meshlet图集中的布局信息,针对每个meshlet的所述meshlet图集中的所述布局信息基于所述meshlet的所选择的大小;以及
基于所述meshlet图集中的所计算的布局信息,对所述meshlet图集中的多个像素中的每个像素进行着色。
19.根据权利要求18所述的方法,所述方法还包括:
标识所述至少一个场景中的所述多个meshlet中的每个meshlet的可见性,其中所述多个meshlet中的每个meshlet被标识为可见或不可见。
20.根据权利要求19所述的方法,所述方法还包括:
丢弃被标识为不可见的所述多个meshlet中的每个meshlet。
21.根据权利要求19所述的方法,其中被标识为可见的所述多个meshlet中的每个meshlet对应于所述meshlet图集中的所着色的多个像素中的至少一个像素。
22.根据权利要求18所述的方法,其中所述多个meshlet中的每个meshlet的所述透视投影是每个meshlet到对应于所述至少一个场景的当前视点的图像平面的投影。
23.根据权利要求18所述的方法,其中所述多个meshlet中的每个meshlet的所述大小基于所述多个meshlet中的每个meshlet的中心与所述meshlet的所述多个顶点中的每个顶点之间的对向角的最大值,其中所述对向角对应于所述至少一个场景的当前视点。
24.根据权利要求18所述的方法,其中计算所述meshlet图集中的所述布局信息包括:为所述至少一个场景中的所述多个meshlet中的每个meshlet分配所述meshlet图集中的空间,其中为所述多个meshlet中的每个meshlet分配的着色图集中的空间基于所述meshlet的所选择的大小。
25.根据权利要求18所述的方法,其中对所述meshlet图集中的所述多个像素中的每个像素进行着色包括:计算所述meshlet图集中的多个像素中的每个像素的表面颜色,或者其中对所述meshlet图集中的所述多个像素中的每个像素进行着色包括:计算以下中的至少一者:所述meshlet图集中的所述多个像素中的每个像素的透明度信息、所述meshlet图集中的所述多个像素中的每个像素的对象标识符、所述meshlet图集中的所述多个像素中的每个像素的一个或多个表面法线、或者所述meshlet图集中的所述多个像素中的每个像素的世界空间位置。
26.根据权利要求18所述的方法,所述方法还包括:
渲染被标识为可见的所述多个meshlet中的每个meshlet,其中对所述meshlet图集进行采样以确定输出图像中的所述多个像素中的每个像素的颜色;以及
将包括所渲染的被标识为可见的多个meshlet的所述输出图像发射到显示器或面板。
27.根据权利要求18所述的方法,其中所述多个meshlet中的每个meshlet中的所述多个图元中的每个图元与所述多个图元中的至少一个其他图元相邻、在所述至少一个其他图元的阈值距离内、或者与所述至少一个其他图元在空间上相干,并且其中基于所述meshlet的最小失真布置来预先计算针对所述多个meshlet中的每个meshlet中的所述多个顶点中的每个顶点的所述纹理坐标对。
28.根据权利要求18所述的方法,其中基于所述meshlet的所述透视投影来动态地计算针对所述多个meshlet中的每个meshlet中的所述多个顶点中的每个顶点的所述纹理坐标对,其中在网格着色器、顶点着色器或计算着色器中计算针对所述多个meshlet中的每个meshlet中的所述多个顶点中的每个顶点的所述纹理坐标对,其中所述meshlet图集对应于对象空间着色表示,并且其中所述meshlet图集与图形应用相关联,所述图形应用包括以下中的至少一者:流式传输应用、全局照明应用、时间累积应用、高速缓存应用或抗混叠应用。
29.一种用于图形处理的装置,所述装置包括:
用于将至少一个场景划分成多个meshlet的部件,所述多个meshlet中的每个meshlet包括多个图元,并且所述多个图元中的每个图元包括多个顶点;
用于针对所述多个meshlet中的每个meshlet中的所述多个图元中的每个图元的所述多个顶点中的每个顶点计算纹理坐标对的部件;
用于基于针对所述多个meshlet中的每个meshlet中的所述多个图元中的每个图元的所述多个顶点中的每个顶点的所述纹理坐标对并且基于所述多个meshlet中的每个meshlet的透视投影选择所述至少一个场景中的所述多个meshlet中的每个meshlet的大小的部件;
用于针对所述至少一个场景中的所述多个meshlet中的每个meshlet计算meshlet图集中的布局信息的部件,针对每个meshlet的所述meshlet图集中的所述布局信息基于所述meshlet的所选择的大小;和
用于基于所述meshlet图集中的所计算的布局信息,对所述meshlet图集中的多个像素中的每个像素进行着色的部件。
30.一种存储用于图形处理的计算机可执行代码的计算机可读介质,所述代码在由处理器执行时使所述处理器:
将至少一个场景划分成多个meshlet,所述多个meshlet中的每个meshlet包括多个图元,并且所述多个图元中的每个图元包括多个顶点;
针对所述多个meshlet中的每个meshlet中的所述多个图元中的每个图元的所述多个顶点中的每个顶点计算纹理坐标对;
基于针对所述多个meshlet中的每个meshlet中的所述多个图元中的每个图元的所述多个顶点中的每个顶点的所述纹理坐标对并且基于所述多个meshlet中的每个meshlet的透视投影选择所述至少一个场景中的所述多个meshlet中的每个meshlet的大小;
针对所述至少一个场景中的所述多个meshlet中的每个meshlet计算meshlet图集中的布局信息,针对每个meshlet的所述meshlet图集中的所述布局信息基于所述meshlet的所选择的大小;以及
基于所述meshlet图集中的所计算的布局信息,对所述meshlet图集中的多个像素中的每个像素进行着色。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163261909P | 2021-09-30 | 2021-09-30 | |
US63/261,909 | 2021-09-30 | ||
US17/934,159 US20230101978A1 (en) | 2021-09-30 | 2022-09-21 | Meshlet shading atlas |
US17/934,159 | 2022-09-21 | ||
PCT/US2022/044445 WO2023055655A1 (en) | 2021-09-30 | 2022-09-22 | Meshlet shading atlas |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118043850A true CN118043850A (zh) | 2024-05-14 |
Family
ID=85721687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280064147.XA Pending CN118043850A (zh) | 2021-09-30 | 2022-09-22 | Meshlet着色图集 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230101978A1 (zh) |
CN (1) | CN118043850A (zh) |
TW (1) | TW202322043A (zh) |
-
2022
- 2022-09-21 US US17/934,159 patent/US20230101978A1/en active Pending
- 2022-09-22 TW TW111135899A patent/TW202322043A/zh unknown
- 2022-09-22 CN CN202280064147.XA patent/CN118043850A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
TW202322043A (zh) | 2023-06-01 |
US20230101978A1 (en) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116391205A (zh) | 用于图形处理单元混合渲染的装置和方法 | |
US11468629B2 (en) | Methods and apparatus for handling occlusions in split rendering | |
CN111406277A (zh) | 以微砖为基础的低分辨率深度存储 | |
US11631212B2 (en) | Methods and apparatus for efficient multi-view rasterization | |
CN116529772A (zh) | 经压缩的几何形状渲染与流式传输 | |
US11908079B2 (en) | Variable rate tessellation | |
EP4242972A2 (en) | Methods and apparatus for edge compression anti-aliasing | |
US20210312704A1 (en) | Rendering using shadow information | |
CN116348904A (zh) | 用simo方法优化gpu内核以用于利用gpu高速缓存进行缩小 | |
US20230101978A1 (en) | Meshlet shading atlas | |
US11875452B2 (en) | Billboard layers in object-space rendering | |
WO2023055655A1 (en) | Meshlet shading atlas | |
US11610372B2 (en) | Methods and apparatus for multiple lens distortion correction | |
CN117980955A (zh) | 与样本空间相关联的聚焦分箱渲染 | |
CN116018807A (zh) | 图像空间函数传输 | |
CN117616446A (zh) | 基于图块的架构中的深度和阴影通道渲染的优化 | |
CN115917605A (zh) | 用于次序无关的遮挡计算的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |