CN109992103B - 用于在渲染期间调整角度采样率的方法、系统和存储介质 - Google Patents
用于在渲染期间调整角度采样率的方法、系统和存储介质 Download PDFInfo
- Publication number
- CN109992103B CN109992103B CN201811376319.9A CN201811376319A CN109992103B CN 109992103 B CN109992103 B CN 109992103B CN 201811376319 A CN201811376319 A CN 201811376319A CN 109992103 B CN109992103 B CN 109992103B
- Authority
- CN
- China
- Prior art keywords
- sampling rate
- scene
- rendering
- angular sampling
- location
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/391—Resolution modifying circuits, e.g. variable screen formats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/013—Eye tracking input arrangements
-
- 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/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/001—Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/139—Format conversion, e.g. of frame-rate or size
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/366—Image reproducers using viewer tracking
- H04N13/383—Image reproducers using viewer tracking for tracking with gaze detection, i.e. detecting the lines of sight of the viewer's eyes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/147—Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
-
- 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/61—Scene description
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2310/00—Command of the display device
- G09G2310/04—Partial updating of the display screen
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2354/00—Aspects of interface with display user
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/08—Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
Abstract
公开了一种用于在渲染期间调整角度采样率的方法、计算机可读介质和系统。该方法包括以下步骤:确定所显示的场景内的注视的位置,以及在渲染场景期间,基于所显示的场景内的注视的位置调整用于渲染场景的至少一部分的角度采样率。
Description
优先权声明
本申请要求于2017年11月21日提交的题为“在渲染期间调整角度采样率(ADJUSTING AN ANGULAR SAMPLING RATE DURING RENDERING)”的美国临时申请No.62/589,400(代理人案卷号NVIDP1177+/17SC0074US01)的权益,其全部内容通过引用并入本文。
技术领域
本发明涉及图像渲染,并且更具体地,涉及降低光场渲染的操作成本。
背景技术
虚拟现实和沉浸式显示器近来越来越受欢迎,但这些显示器有时与用户的视觉不适有关。光场显示器用于帮助为观看者提供更舒适的视觉体验。然而,光场显示器的当前实现使用非常耗费时间和资源的渲染技术。
因此,需要解决与现有技术相关联的这些问题和/或其他问题。
发明内容
公开了一种用于在渲染期间调整角度采样率的方法、计算机可读介质和系统。该方法包括以下步骤:确定所显示的场景内的注视的位置,以及在渲染场景期间,基于所显示的场景内的注视的位置调整用于渲染场景的至少一部分的角度采样率。
附图说明
图1示出了根据一个实施例的用于在渲染期间利用注视信息调整角度采样率的方法的流程图;
图2示出了根据一个实施例的并行处理单元;
图3A示出了根据一个实施例的图2的并行处理单元的通用处理集群;
图3B示出了根据一个实施例的图2的并行处理单元的分区单元;
图4示出了根据一个实施例的图3A的流式多处理器;
图5示出了根据一个实施例的包括图2的并行处理单元的片上系统;
图6是根据一个实施例的由图2的并行处理单元实现的图形处理管线的概念图;
图7示出了可以实现所有实施例的各种架构和/或功能的示例性系统;
图8示出了根据一个实施例的采用眼睛框和对应视图的示例性光视图采样实现;以及
图9示出了根据一个实施例的示例性的中央凹光场视图(foveated light fieldview)采样实现。
具体实施方式
图1示出了根据一个实施例的用于在渲染期间利用注视信息调整角度采样率的方法100的流程图。如操作102所示,确定所显示的场景内的注视的位置。在一个实施例中,注视的位置可以包括场景内的当前注视点。在另一个实施例中,注视可以包括用户的注视。例如,用户可以包括设备显示器的用户。在又一个实施例中,可以通过跟踪用户的一只或更多只眼睛的运动来确定注视的位置。
另外,在一个实施例中,场景可以包括在设备显示器内显示给用户的一个或更多个对象。例如,设备显示器可以包括虚拟现实显示器(例如,4D光场显示器)、全息显示器、汽车挡风玻璃/平视显示器(heads-up display)等。
此外,如操作104所示,基于注视的位置,在渲染场景期间调整用于渲染场景的至少一部分的角度采样率。在一个实施例中,调整可以包括针对场景内的预定区域确定从当前注视点的偏心率。例如,预定区域可以包括显示器内的一个或更多个像素。在另一示例中,偏心率可包括从当前注视点到预定区域的距离。
此外,在一个实施例中,调整可以包括基于所述偏心率调整预定区域的角度采样率。例如,响应于偏心率的减小,可以针对预定区域内的一个或更多个像素增加角度采样率。在另一示例中,响应于偏心率的增加,可以针对预定区域内的一个或更多个像素减小角度采样率。
此外,在一个实施例中,角度采样率可以指示在预定区域内渲染的每个像素的多个视图。例如,角度采样可以包括光场视图采样(例如,用于在4D光场显示器中产生内容的光场视图采样等)。在另一实施例中,预定区域可包括预定义的眼睛框。例如,代替单个相机/眼睛位置,眼睛框可以包括覆盖用户眼睛的预定部分(例如,瞳孔等)的多个基线点的预定义网格(例如,虚拟相机位置等)。
另外,在一个实施例中,预定区域内的每个渲染视图可以表示从眼睛框内的基线点的角度进行渲染的场景。在另一个实施例中,与较高的角度采样率相比,较低的角度采样率可以在眼睛框内渲染较少数量的视图。
此外,在一个实施例中,还可以基于偏心率来调整用于渲染场景的空间采样率。例如,空间采样率可随着偏心率的增加而减小。在另一实施例中,空间采样率可包括(例如,在预定区域内等)采样的多个空间像素。
此外,在一个实施例中,调整可以包括:针对场景内的一位置,将该位置的视网膜的空间采样率与显示器的空间采样率进行比较。例如,可以使用视网膜细胞的感受野密度(receptive field density)来计算视网膜的空间采样率。在另一个示例中,视网膜的空间采样率可以随着偏心率的增加而减小。在又一示例中,当显示器的空间采样率大于视网膜的空间采样率时,可以针对该位置减小空间采样率。在又一示例中,当显示器的空间采样率大于视网膜的空间采样率时,可以针对该位置减小角度采样率。
此外,在一个实施例中,可以识别场景内的用户的注视点(例如,通过使用一个或更多个硬件单元和一个或更多个应用程序跟踪用户的眼睛运动)。另外,在第一次渲染过程中,可以针对场景实现第一角度采样。例如,第一角度采样可以包括对整个场景的所有像素渲染的单个视图(例如,预定义的眼睛框内的单个基线点等)。
另外,在一个实施例中,在第二次渲染过程中,可以针对场景的第一预定部分实现第二角度采样率。例如,场景的第一预定部分可以包括场景的一部分,所述部分具有整个场景的一半视场。在另一示例中,第二角度采样的速率可以大于第一角度采样的速率。例如,第二角度采样(例如,角度采样的第二次过程等)可以包括对场景的第一预定部分内的像素的子集进行渲染的多个视图(例如,预定义的眼睛框内的多个基线点等)。
此外,在一个实施例中,在场景内,对像素的角度采样率可随着到用户的注视点的像素距离的减小而增加。例如,在第三次渲染过程中,可以针对场景的第二预定部分实现第三角度采样率。在一个实施例中,场景的第二预定部分可以包括场景的一部分,所述部分具有场景的第一预定部分的一半视场。在另一个实施例中,第二角度采样率可以大于第一角度采样率。在又一个实施例中,第二角度采样率可以包括对场景的第二预定部分内的像素的子集渲染的多个视图(例如,预定义的眼睛框内的多个基线点等)。
此外,在一个实施例中,在第一次渲染过程中,当用户的注视点位于眼睛框的中心时,渲染可以被投影到眼睛框的中心,并且渲染覆盖整个视场或场景。在第二次渲染过程中,渲染的投影可以相对于眼睛框的中心偏心,并且渲染可以覆盖来自第一次渲染过程的视场的子集。这可以在随后的渲染过程中继续,直到偏心视图覆盖整个眼睛框为止。
此外,在一个实施例中,可以使用汽车显示器呈现场景。例如,场景可以呈现为汽车信息娱乐显示器、车辆仪表组、挡风玻璃/平视显示器等中的一个或更多个的一部分。在另一个实施例中,显示器可以包括中央凹焦点支持显示器,其可以减少显示器内场景生成所需的计算量。
另外,在一个实施例中,可以利用深度学习、神经网络等来创建光场表示。例如,可以利用深度学习方法推断光场表示的深度分量。在另一个实施例中,可以利用一种或更多种深度学习技术来避免位置视图渲染。
以这种方式,可以在光场渲染过程中获得中央凹光场视图采样。更具体地,在渲染时,当和更远离场景内的注视位置的区域相比时,场景内的注视位置周围的区域可以以更高的空间角度细节被渲染。这可以在保持所观看的场景/图像的质量的同时降低执行光场渲染的计算成本,这可以增加光场渲染的性能。
现在将根据用户的期望,阐述关于可以或不可以实现前述框架的各种可选架构和特征的更多说明性信息。应该强烈注意的是,出于说明性目的阐述了以下信息,并且不应该被解释为以任何方式进行限制。任选的以下特征可以任选地并入或不排除所描述的其他特征。
并行处理架构
图2示出了根据一个实施例的并行处理单元(PPU)200。在一个实施例中,PPU 200是在一个或更多个集成电路设备上实现的多线程处理器。PPU 200是被设计用于并行处理大量线程的延迟隐藏架构。线程(即,执行的线程)是配置为由PPU 200执行的指令集的实例。在一个实施例中,PPU 200是图形处理单元(GPU),所述图形处理单元(GPU)配置为实现用于处理三维(3D)图形数据的图形渲染管线,以生成在诸如液晶显示(LCD)设备的显示设备上显示的二维(2D)图像数据。在其他实施例中,PPU 200可以用于执行通用计算。尽管出于说明性目的在此提供了一个示例性并行处理器,但应特别注意的是,这样的处理器仅出于说明性目的而提出,并且可采用任何处理器来补充和/或替代该处理器。
如图2所示,PPU 200包括输入/输出(I/O)单元205、主机接口单元210、前端单元215、调度器单元220、工作分配单元225、集线器230、交叉开关(Xbar)270、一个或更多个通用处理集群(GPCs)250以及一个或更多个分区单元280。PPU 200可以经由系统总线202连接到主机处理器或其他外围设备。PPU 200还可以连接到包括多个存储器设备204的本地存储器。在一个实施例中,本地存储器可以包括多个动态随机存取存储器(DRAM)设备。
I/O单元205配置为通过系统总线202从主机处理器(未示出)发送和接收通信(即,命令、数据等)。I/O单元205可以经由系统总线202与主机处理器直接通信或通过一个或更多个中间设备(例如存储器桥)与主机处理器通信。在一个实施例中,I/O单元205实现外围组件互连高速(PCIe)接口,用于通过PCIe总线进行通信。在替代的实施例中,I/O单元205可以实现其他类型的已知接口,用于与外部设备通信。
I/O单元205耦合到主机接口单元210,主机接口单元210对经由系统总线202接收的分组进行解码。在一个实施例中,分组表示配置为使PPU 200执行各种操作的命令。主机接口单元210按照命令指定将解码后的命令发送到PPU 200的各种其他单元。例如,一些命令可以被发送到前端单元215。其他命令可以被发送到集线器230或PPU 200的其他单元,诸如一个或更多个复制引擎、视频编码器、视频解码器、电源管理单元等(未明确示出)。换句话说,主机接口单元210配置为在PPU 200的各种逻辑单元之间和之中路由通信。
在一个实施例中,由主机处理器执行的程序对缓冲器中的命令流进行编码,该缓冲器向PPU 200提供用于处理的工作量。工作量可以包括要由那些指令处理的多个指令和数据。缓冲器是存储器中可由主机处理器和PPU 200两者访问(即,读/写)的区域。例如,主机接口单元210可以配置为访问系统存储器中的缓冲器,所述系统存储器通过由I/O单元205在系统总线202上发送的存储器请求来连接到系统总线202。在一个实施例中,主机处理器将命令流写入缓冲器,然后向PPU 300发送指向命令流开始的指针。主机接口单元210向前端单元215提供指向一个或更多个命令流的指针。前端单元215管理一个或更多个流,从流中读取命令并将命令转发到PPU 200的各个单元。
前端单元215耦合到调度器单元220,调度器单元220配置各种GPC 250以处理由一个或更多个流定义的任务。调度器单元220配置为跟踪与由调度器单元220管理的各种任务有关的状态信息。状态可以指示任务被指派给哪个GPC 250、任务是活动的还是不活动的,以及与任务相关联的优先级等等。调度器单元220管理一个或更多个GPC 250上的多个任务的执行。
调度器单元220耦合到工作分配单元225,工作分配单元225配置为分派任务以在GPC 250上执行。工作分配单元225可以跟踪从调度器单元220接收的多个调度任务。在一个实施例中,工作分配单元225为每个GPC 250管理待处理(pending)任务池和活动任务池。待处理任务池可包括多个时隙(例如,32个时隙),其包含指派给特定GPC 250处理的任务。活动任务池可以包括多个时隙(例如,4个时隙),用于由GPC 250主动处理的任务。当GPC 250完成任务的执行时,该任务从该GPC 250的活动任务池中逐出,从待处理任务池中选择并调度其他任务中的一个任务,用于在GPC 250上执行。如果GPC 250上的活动任务已空闲,例如在等待数据依赖性被解决时,那么活动任务可以从GPC 250中逐出并返回到待处理任务池,同时选择并调度待处理任务池中的另一个任务以在GPC 250上执行。
工作分配单元225经由XBar 270与一个或更多个GPC 250通信。XBar 270是将PPU200的许多单元耦合到PPU 200的其他单元的互连网络。例如,XBar 270可以配置为将工作分配单元225耦合到特定GPC 250。虽然未明确示出,但是PPU 200的一个或更多个其他单元被耦合到主机单元210。其他单元也可以经由集线器230连接到XBar 270。
任务由调度器单元220管理,并由工作分配单元225分派给GPC 250。GPC 250配置为处理任务并生成结果。结果可以由GPC 250内的其他任务消耗、经由XBar 270路由到不同的GPC 250或者存储在存储器204中。结果可以经由分区单元280写入存储器204,分区单元280实现用于向存储器204写入数据/从存储器204读取数据的存储器接口。在一个实施例中,PPU 200包括数目为U的分区单元280,U等于耦合到PPU 200的独立且不同的存储器设备204的数目。下面将结合图3B更详细地描述分区单元280。
在一个实施例中,主机处理器执行实现应用程序编程接口(API)的驱动程序内核,其使得能够在主机处理器上执行的一个或更多个应用程序调度用于在PPU 200上执行的操作。应用程序可以生成指令(即,API调用),其使得驱动程序内核生成一个或更多个任务以由PPU 200执行。驱动程序内核将任务输出到正在由PPU 200处理的一个或更多个流。每个任务可包括一个或更多个相关线程组,本文称为线程束(warp)。线程块可以指代包括用于执行任务的指令的多个线程组。同一线程组中的线程可以通过共享存储器交换数据。在一个实施例中,线程组包括32个相关线程。
图3A示出了根据一个实施例的图2的PPU 200的GPC 250。如图3A所示,每个GPC250包括多个用于处理任务的硬件单元。在一个实施例中,每个GPC 250包括管线管理器310、预光栅操作单元(PROP)315、光栅引擎325、工作分配交叉开关(WDX)380、存储器管理单元(MMU)390以及一个或更多个纹理处理集群(TPC)320。应当理解,图3A的GPC 250可以包括代替图3A中所示的单元的其他硬件单元或者除了图3A中所示的单元之外的其他硬件单元。
在一个实施例中,GPC 250的操作由管线管理器310控制。管线管理器310管理用于处理分配给GPC 250的任务的一个或更多个TPC 320的配置。在一个实施例中,管线管理器310可以配置一个或更多个TPC 320中的至少一个,以实现图形渲染管线的至少一部分。例如,TPC 320可以配置为在可编程的流式多处理器(SM)340上执行顶点着色器程序。管线管理器310还可以配置为将从工作分配单元225接收的分组路由到GPC 250内的适当逻辑单元。例如,一些分组可以被路由到PROP 315和/或光栅引擎325中的固定功能硬件单元,而其他分组可以被路由到TPC 320以供图元引擎335或SM 340处理。
PROP单元315配置为将由光栅引擎325和TPC 320生成的数据路由到分区单元280中的光栅操作(ROP)单元,下面将更详细地描述。PROP单元315还可以配置为执行颜色混合的优化、组织像素数据、执行地址转换等。
光栅引擎325包括配置为执行各种光栅操作的多个固定功能硬件单元。在一个实施例中,光栅引擎325包括设置引擎、粗光栅引擎、剔除引擎、裁剪引擎、精细光栅引擎和瓦片(tile)聚合引擎。设置引擎接收变换后的顶点并生成与由顶点定义的几何图元相关联的平面方程。平面方程被发送到粗光栅引擎以生成图元的覆盖信息(例如,用于瓦片的x,y覆盖掩码)。粗光栅引擎的输出可以被发送到剔除引擎,其中与未通过z-测试的图元相关联的片段被剔除,并且被发送到裁剪引擎,其中位于视锥体之外的片段被裁剪。那些经过裁剪和剔除后留下来的片段可以被传递到精细光栅引擎,以基于由设置引擎生成的平面方程生成像素片段的属性。光栅引擎380的输出包括例如要由在TPC 320内实现的片段着色器处理的片段。
包括在GPC 250中的每个TPC 320包括M管道控制器(MPC)330、图元引擎335、一个或更多个SM 340以及一个或更多个纹理单元345。MPC 330控制TPC 320的操作,将从管线管理器310接收的分组路由到TPC 320中的适当单元。例如,与顶点相关联的分组可以被路由到图元引擎335,图元引擎335配置为从存储器204提取与该顶点相关联的顶点属性。相反,与着色器程序相关联的分组可以被传输到SM 340。
在一个实施例中,纹理单元345配置为从存储器204加载纹理映射(例如,纹理元素的2D阵列),并对纹理映射进行采样以产生经采样的纹理值,以用于在由SM 340执行的着色器程序中使用。纹理单元345实现纹理操作,诸如使用mip-map(即,具有不同细节层次的纹理映射)的滤波操作。纹理单元345还用作SM 340到MMU 390的加载/存储路径。在一个实施例中,每个TPC 320包括两个(2)纹理单元345。
SM 340包括配置为处理由多个线程表示的任务的可编程的流式处理器。每个SM340是多线程的并且配置为同时执行来自特定线程组的多个线程(例如,32个线程)。在一个实施例中,SM 340实现SIMD(单指令、多数据)体系架构,其中线程组(即,线程束)中的每个线程被配置为基于相同的指令集来处理不同的数据集。线程组中的所有线程都执行相同的指令。在另一实施例中,SM 340实现SIMT(单指令、多线程)体系架构,其中,线程组中的每个线程被配置为基于相同的指令集处理不同的数据集,但是,其中线程组中的各个线程在执行期间允许发散。换句话说,当用于该线程组的指令被分派以供执行时,该线程组中的一些线程可以是活动的,从而执行该指令,而该线程组中的其他线程可以是不活动的,从而执行空操作(NOP)而不是执行指令。可以在下面结合图4更详细地描述SM 340。
MMU 390提供GPC 250和分区单元280之间的接口。MMU 390可以提供虚拟地址到物理地址的转换、存储器保护和存储器请求的仲裁。在一个实施例中,MMU 390提供一个或更多个转换后备缓冲器(TLB),用于改进虚拟地址到存储器204中的物理地址的转换。
图3B示出了根据一个实施例的图2的PPU 200的分区单元280。如图3B所示,分区单元280包括光栅操作(ROP)单元350、二级(L2)高速缓存360、存储器接口370和L2交叉开关(XBar)365。存储器接口370耦合到存储器204。存储器接口370可以实现用于高速数据传输的16、32、64、128位数据总线等。在一个实施例中,PPU 200包括U个存储器接口370,每个分区单元280有一个存储器接口370,其中,每个分区单元280连接到对应的存储器设备204。例如,PPU 200可以连接到多达U个存储器设备204,如图形双数据速率版本5的同步动态随机存取存储器(GDDR5SDRAM)。在一个实施例中,存储器接口370实现DRAM接口,并且U等于8。
在一个实施例中,PPU 200实现多级存储器分层结构。存储器204位于耦合到PPU200的SDRAM的片外。来自存储器204的数据可以被提取并存储在L2高速缓存360中,其位于芯片上并且在各种GPC 250之间共享。如图所示,每个分区单元280包括与对应的存储器设备204相关联的L2高速缓存360的一部分。然后,可以在GPC 250内的各种单元中实现较低级别的高速缓存。例如,SM 340中的每一个可以实现一级(L1)高速缓存。L1高速缓存是专用于特定SM 340的专用存储器。可以提取来自L2高速缓存360的数据并将其存储在每个L1高速缓存中,以便在SM 340的功能单元中进行处理。L2高速缓存360被耦合到存储器接口370和XBar 270。
ROP单元350包括ROP管理器355、颜色ROP(CROP)单元352和Z ROP(ZROP)单元354。CROP单元352执行与像素颜色相关的光栅操作,例如颜色压缩、像素混合等。ZROP单元354结合光栅引擎325执行深度测试。ZROP单元354接收与来自光栅引擎325的剔除引擎的像素片段相关联的样本位置的深度。ZROP单元354测试与片段相关联的样本位置相对深度缓冲器中的对应深度的深度。如果片段通过样本位置的深度测试,则ZROP单元354更新深度缓冲器并将深度测试的结果发送到光栅引擎325。ROP管理器355控制ROP单元350的操作。应当理解,分区单元280的数量可以与GPC 250的数量不同,因此,每个ROP单元350可以耦合到每个GPC 250。因此,ROP管理器355跟踪从不同GPC 250接收的分组并且确定由ROP单元350生成的结果被路由到哪个GPC 250。CROP单元352和ZROP单元354经由L2 XBar 365耦合到L2高速缓存360。
图4示出了根据一个实施例的图3A的流式多处理器340。如图4所示,SM 340包括指令高速缓存405、一个或更多个调度器单元410、寄存器文件420、一个或更多个处理核心450、一个或更多个特殊功能单元(SFU)452、一个或更多个加载/存储单元(LSU)454、互连网络480、共享存储器470和L1高速缓存490。
如上所述,工作分配单元225分派用于在PPU 200的GPC 250上执行的任务。任务被分配给GPC 250内的特定TPC 320,并且如果任务与着色器程序相关联,可以将任务分配给SM 340。调度器单元410从工作分配单元225接收任务并管理用于指派给SM 340的一个或更多个线程组(即,线程束)的指令调度。调度器单元410调度并行线程组中的线程用于执行,其中,每个组称为线程束。在一个实施例中,每个线程束包括32个线程。调度器单元410可以管理多个不同的线程束、调度线程束以执行,然后在每个时钟周期期间将指令从多个不同的线程束分派到各个功能单元(即,核心350、SFU 352和LSU 354)。
在一个实施例中,每个调度器单元410包括一个或更多个指令分派单元415。每个分派单元415配置为向一个或更多个功能单元发送指令。在图4所示的实施例中,调度器单元410包括两个分派单元415,分派单元415使得能够在每个时钟周期期间分派来自相同线程束的两个不同指令。在替代实施例中,每个调度器单元410可包括单个分派单元415或附加分派单元415。
每个SM 340包括寄存器文件420,其提供用于SM 340的功能单元的一组寄存器。在一个实施例中,寄存器文件420在每个功能单元之间被划分,使得每个功能单元被分配到寄存器文件420的专用部分。在另一实施例中,寄存器文件420在由SM 340执行的不同线程束之间被划分。寄存器文件420为连接到功能单元的数据路径的操作数提供临时存储。
每个SM 340包括L个处理核心450。在一个实施例中,SM 340包括大量(例如,128个等)不同的处理核心450。每个核心450可以包括完全管线化的单精度处理单元,其包括浮点算术逻辑单元和整数算术逻辑单元。核心450还可以包括双精度处理单元,其包括浮点算术逻辑单元。在一个实施例中,浮点算术逻辑单元实现用于浮点算术的IEEE 754-2008标准。每个SM 340还包括执行特殊功能(例如,属性评估、倒数平方根等)的M个SFU 452以及实现共享存储器470或L1高速缓存490与寄存器文件420之间的加载和存储操作的N个LSU 454。在一个实施例中,SM 340包括128个核心450、32个SFU 452和32个LSU 454。
每个SM 340包括互连网络480,互连网络480将每个功能单元连接到寄存器文件420并且将LSU 454连接到寄存器文件420、共享存储器470和L1高速缓存490。在一个实施例中,互连网络480是交叉开关,其可以配置为将任何功能单元连接到寄存器文件420中的任何寄存器,并将LSU 454连接到寄存器文件和共享存储器470和L1高速缓存490中的存储器位置。
共享存储器470是片上存储器阵列,其允许SM 340与图元引擎335之间以及SM 340中的线程之间的数据存储和通信。在一个实施例中,共享存储器470包括64KB的存储容量。L1高速缓存490位于从SM 340到分区单元280的路径中。L1高速缓存490可用于高速缓存读取和写入。在一个实施例中,L1高速缓存490包括24KB的存储容量。
上述PPU 200可以配置为比传统CPU快得多地执行高度并行计算。并行计算在图形处理、数据压缩、生物识别、流处理算法等方面具有优势。
当配置用于通用并行计算时,可以使用更简单的配置。在该模型中,如图2所示,固定功能图形处理单元被绕过,创建更简单的编程模型。在该配置中,工作分配单元225将线程块直接指派和分配给TPC 320。块中的线程执行相同的程序,在计算中使用唯一线程ID来确保每个线程生成唯一结果,使用SM 340执行程序并执行计算,使用共享存储器470以在线程之间通信,并且使用LSU 454通过分区L1高速缓存490和分区单元280读取和写入全局存储器。
当配置用于通用并行计算时,SM 340还可以写入调度器单元220可用于在TPC 320上启动新工作的命令。
在一个实施例中,PPU 200包括图形处理单元(GPU)。PPU 200配置为接收指定着色器程序用于处理图形数据的命令。图形数据可以被定义为一组图元,例如点、线、三角形、四边形、三角形条等。通常,图元包括指定图元的多个顶点(例如,在模型空间坐标系中)以及与图元的每个顶点相关联的属性的数据。PPU 200可以配置为处理图形图元以生成帧缓冲器(即,用于显示器的每个像素的像素数据)。
应用程序将场景的模型数据(即,顶点和属性的集合)写入诸如系统存储器或存储器204的存储器。模型数据定义可在显示器上可见的每个对象。然后,应用程序对驱动程序内核进行API调用,其请求渲染和显示模型数据。驱动程序内核读取模型数据并将命令写入一个或更多个流以执行操作来处理模型数据。命令可以引用要在PPU 200的SM 340上实现的不同着色器程序,包括顶点着色器、外壳着色器、域着色器、几何着色器和像素着色器中的一个或更多个。例如,SM 340中的一个或更多个可以配置为执行顶点着色程序,其处理由模型数据定义的多个顶点。在一个实施例中,不同的SM 340可以配置为同时执行不同的着色程序。例如,SM 340的第一子集可以配置为执行顶点着色程序,而SM 340的第二子集可以配置为执行像素着色程序。SM 340的第一子集处理顶点数据以产生经处理的顶点数据并将经处理的顶点数据写入L2高速缓存360和/或存储器204。在经处理的顶点数据被光栅化(即,从三维数据变换为屏幕空间中的二维数据)以产生片段数据之后,SM 340的第二子集执行像素着色器以产生经处理的片段数据,然后将其与其他经处理的片段数据混合并写入存储器204中的帧缓冲区。顶点着色程序和像素着色程序可以同时执行,以管线化方式处理来自同一场景的不同数据,直到场景的所有模型数据都被渲染到帧缓冲器为止。然后,帧缓冲器的内容被发送到显示控制器以在显示设备上显示。
PPU 200可以包括在台式计算机、膝上型计算机、平板电脑、智能电话(例如,无线、手持设备)、个人数字助理(PDA)、数码相机、手持电子装置等中。在一个实施例中,PPU 200包含在单个半导体衬底上。在另一个实施例中,PPU 200与一个或更多个其他逻辑单元(例如精简指令集计算机(RISC)CPU、存储器管理单元(MMU)、数模转换器(DAC)等)一起被包括在片上系统(SoC)中。
在一个实施例中,PPU 200可以包括在包括诸如GDDR5 SDRAM的一个或更多个存储器设备204的图形卡上。图形卡可以配置为与台式计算机的主板上的PCIe插槽接口,该台式计算机的主板包括例如北桥芯片集和南桥芯片集。在又一个实施例中,PPU 200可以是包括在主板的芯片集(即,北桥)中的集成图形处理单元(iGPU)。
图5示出了根据一个实施例的包括图2的PPU 200的片上系统(SoC)500。如图5所示,SoC 500包括如上所述的PPU 200和CPU 550。SoC 500还可以包括系统总线202,以实现SoC 500的各个组件之间的通信。CPU 550和PPU 200生成的存储器请求可以通过由SoC 500的多个组件共享的系统MMU 590来路由。SoC 500还可以包括耦合到一个或更多个存储器设备204的存储器接口595。存储器接口595可以实现例如DRAM接口。
虽然未明确示出,但是除了图5中所示的组件之外,SoC 500还可以包括其他组件。例如,SoC 500可以包括多个PPU 200(例如,四个PPU 200)、视频编码器/解码器和无线宽带收发器以及其他组件。在一个实施例中,SoC 500可以与存储器204一起包括在层叠封装(PoP)配置中。
图6是根据一个实施例的由图2的PPU 200实现的图形处理管线600的概念图。图形处理管线600是实现为从3D几何数据生成2D计算机生成图像的处理步骤的抽象流程图。众所周知,管线架构可以通过将操作分成多个阶段来更有效地执行长延迟操作,其中每个阶段的输出与下一个连续阶段的输入耦合。因此,图形处理管线600接收输入数据601,输入数据601从图形处理管线600的一个阶段传输到下一个阶段以生成输出数据602。在一个实施例中,图形处理管线600可以表示由API定义的图形处理管线。作为选择,图形处理管线600可以在先前附图和/或任何后续附图的功能和架构的上下文中实现。
如图6所示,图形处理管线600包括管线架构,该管线架构包括多个阶段。这些阶段包括但不限于数据组装阶段610、顶点着色阶段620、图元组装阶段630、几何着色阶段640、视口缩放、剔除和裁剪(VSCC)阶段650、光栅化阶段660、片段着色阶段670和光栅操作阶段680。在一个实施例中,输入数据601包括配置处理单元以实现图形处理管线600的各个阶段的命令和由所述各个阶段处理的几何图元(例如,点、线、三角形、四边形、三角形条或扇形等)。输出数据602可以包括被复制到存储器中的帧缓冲器或其他类型的表面数据结构的像素数据(即,颜色数据)。
数据组装阶段610接收输入数据601,输入数据601指定顶点数据用于高阶表面、图元等。数据组装阶段610收集临时存储器或队列中的顶点数据,例如通过从主机处理器接收包括指向存储器中的缓冲器的指针的命令并从缓冲器读取顶点数据。然后将顶点数据发送到顶点着色阶段620以进行处理。
顶点着色阶段620通过对每个顶点每次执行一组操作(即,顶点着色或程序)来处理顶点数据。例如,顶点可以被指定为与一个或更多个顶点属性(例如,颜色、纹理坐标、表面法线等)相关联的4坐标向量(即,<x,y,z,w>)。顶点着色阶段620可以操纵各个顶点属性,诸如位置、颜色、纹理坐标等。换句话说,顶点着色阶段620对顶点坐标或与顶点相关联的其他顶点属性执行操作。这些操作通常包括照明操作(即,修改顶点的颜色属性)和变换操作(即,修改顶点的坐标空间)。例如,可以使用对象坐标空间中的坐标来指定顶点,这些坐标通过将坐标乘以矩阵来进行变换,该矩阵将坐标从对象坐标空间转换为世界空间或标准化设备坐标(NCD)空间。顶点着色阶段620生成变换的顶点数据,该变换的顶点数据被发送到图元组装阶段630。
图元组装阶段630收集由顶点着色阶段620输出的顶点,并将顶点分组为几何图元,以供几何着色阶段640处理。例如,图元组装阶段630可以配置为将每三个连续顶点分组为一几何图元(即,三角形)以传输到几何着色阶段640。在一些实施例中,特定顶点可以重复用于连续几何图元(例如,三角形条中的两个连续三角形可以共享两个顶点)。图元组装阶段630将几何图元(即,关联顶点的集合)发送到几何着色阶段640。
几何着色阶段640通过对几何图元执行一组操作(即,几何着色或程序)来处理几何图元。曲面细分操作可以从每个几何图元生成一个或更多个几何图元。换句话说,几何着色阶段640可以将每个几何图元细分为两个或更多个几何图元的更精细网格,以供图形处理管线600的其余部分处理。几何着色阶段640将几何图元发送到视口SCC阶段650。
在一个实施例中,图形处理管线600可以在流式多处理器和顶点着色阶段620、图元组装阶段630、几何着色阶段640、片段着色阶段670和/或与之相关联的硬件/软件内操作,图形处理管线600可以顺序地执行处理操作。一旦顺序处理操作完成,在一个实施例中,视口SCC阶段650可以利用该数据。在一个实施例中,可以将由图形处理管线600中的一个或更多个阶段处理的图元数据写入高速缓存(例如,L1高速缓存、顶点高速缓存等)。在这种情况下,在一个实施例中,视口SCC阶段650可以访问高速缓存中的数据。在一个实施例中,视口SCC阶段650和光栅化阶段660被实现为固定功能电路。
视口SCC阶段650执行几何图元的视口缩放、剔除和裁剪。被渲染的每个表面都与抽象相机位置相关联。相机位置表示观看者观看场景的位置,并定义包围场景的对象的视锥体。视锥体可包括观察平面、后平面和四个裁剪平面。完全在视锥体之外的任何几何图元可以被剔除(即,丢弃),因为该几何图元将不会对最终渲染场景做出贡献。可以裁剪部分位于视锥体内并且部分位于视锥体外的任何几何图元(即,变换为包围在视锥体内的新几何图元)。此外,每个几何图元可以基于视锥体的深度缩放。然后,所有可能可见的几何图元被发送到光栅化阶段660。
光栅化阶段660将3D几何图元转换为2D片段(例如,能够用于显示等)。光栅化阶段660可以配置为利用几何图元的顶点来设置一组平面方程,从中可以插入各种属性。光栅化阶段660还可以计算多个像素的覆盖掩模,其指示像素的一个或更多个样本位置是否截取几何图元。在一个实施例中,还可以执行z-测试以确定几何图元是否被已经被光栅化的其他几何图元遮挡。光栅化阶段660生成被发送到片段着色阶段670的片段数据(即,与每个被覆盖像素的特定样本位置相关联的内插顶点属性)。
片段着色阶段670通过对每个片段执行一组操作(即,片段着色或程序)来处理片段数据。片段着色阶段670可以诸如通过执行照明操作或使用片段的内插纹理坐标采样纹理映射来生成片段的像素数据(即,颜色值)。片段着色阶段670生成发送到光栅操作阶段680的像素数据。
光栅操作阶段680可以对像素数据执行各种操作,诸如执行阿尔法测试、模板测试以及将像素数据与对应于与像素相关联的其他片段的其他像素数据混合。当光栅操作阶段680已经完成处理像素数据(即,输出数据602)时,可以将像素数据写入渲染目标,例如帧缓冲器、颜色缓冲器等。
应当理解,除了上述一个或更多个阶段之外或代替上述一个或更多个阶段,可以在图形处理管线600中包括一个或更多个附加阶段。抽象图形处理管线的各种实现可以实现不同的阶段。此外,在一些实施例中,可以从图形处理管线中排除上述一个或更多个阶段(例如,几何着色阶段640)。其他类型的图形处理管线也在本公开的范围内。此外,图形处理管线600的任何阶段可以由诸如PPU 200的图形处理器内的一个或更多个专用硬件单元实现。图形处理管线600的其他阶段可以由诸如PPU 200的SM 340的可编程硬件单元实现。
图形处理管线600可以经由由诸如CPU 550的主机处理器执行的应用程序来实现。在一个实施例中,设备驱动器可以实现应用程序编程接口(API),该应用程序编程接口(API)定义各种功能,各种功能可以由应用程序可以利用,以便生成用于显示的图形数据。设备驱动器是包括控制PPU 200的操作的多个指令的软件程序。API为程序员提供一个抽象概念,其允许程序员利用专用图形硬件(例如PPU 200)来生成图形数据,而不需要程序员利用PPU 200的特定指令集。应用程序可以包括路由到用于PPU 200的设备驱动器的API调用。设备驱动器解释API调用并执行各种操作以响应API调用。在一些情况下,设备驱动器可以通过在CPU 550上执行指令来执行操作。在其他情况下,设备驱动器可以至少部分地通过利用CPU 550与PPU 200之间的输入/输出接口在PPU 200上启动操作来执行操作。在一个实施例中,设备驱动器配置为利用PPU 200的硬件来实现图形处理管线600。
可以在PPU 200内执行各种程序以便实现图形处理管线600的各个阶段。例如,设备驱动器可以在PPU 200上启动内核以在一个SM 340(或多个SM 340)上执行顶点着色阶段620。设备驱动器(或由PPU 200执行的初始内核)还可以在PPU 200上启动其他内核以执行图形处理管线600的其他阶段,例如几何着色阶段640和片段着色阶段670。此外,图形处理管线600的一些阶段可以在固定单元硬件(例如在PPU 200内实现的数据汇编器或光栅化器)上实现。可以理解,在由SM 340上的后续内核处理之前,来自一个内核的结果可以通过一个或更多个中间固定功能硬件单元来处理。
图7示出了示例性系统700,其中可以实现各种先前实施例的各种架构和/或功能。如图所示,提供了系统700,其包括连接到通信总线702的至少一个中央处理器701。通信总线702可以使用任何合适的协议来实现,例如PCI(外围组件互连)、PCI-Express、AGP(加速图形端口)、超传输或任何其他总线或一个或更多个点对点通信协议。系统700还包括主存储器704。控制逻辑(软件)和数据存储在主存储器704中,主存储器704可以采用随机存取存储器(RAM)的形式。
系统700还包括输入设备712、图形处理器706和显示器708,即传统的CRT(阴极射线管)、LCD(液晶显示器)、LED(发光二极管)、离子显示器等。可以从输入设备712(例如键盘、鼠标、触摸板、麦克风等)接收用户输入。在一个实施例中,图形处理器706可以包括多个着色器模块、光栅化模块等。前述模块中的每一个甚至可以位于单个半导体平台上以形成图形处理单元(GPU)。
在本说明书中,单个半导体平台可以指代唯一的基于单一半导体的集成电路或芯片。应当注意,术语单个半导体平台还可以指具有增加的连接性的多芯片模块,其模拟片上操作,并且相对于利用传统的中央处理单元(CPU)和总线实现进行了实质性的改进。当然,根据用户的期望,各种模块也可以单独设置或者在半导体平台的各种组合中设置。
系统700还可以包括辅助存储器710。辅助存储器710包括例如硬盘驱动器和/或可移除存储驱动器,其代表软盘驱动器、磁带驱动器、光盘驱动器、数字通用盘(DVD)驱动器、记录设备、通用串行总线(USB)闪存。可移除存储驱动器以众所周知的方式从可移除存储单元读取和/或写入可移除存储单元。
计算机程序或计算机控制逻辑算法可以存储在主存储器704和/或辅助存储器710中。这样的计算机程序在被执行时使系统700能够执行各种功能。存储器704、存储器710和/或任何其他存储器是计算机可读介质的可能示例。
在一个实施例中,各种先前附图的架构和/或功能可以在中央处理器701、图形处理器706、能够实现中央处理器701和图形处理器706二者的能力的至少一部分的集成电路(未示出)、芯片集(即,一组集成电路,所述一组集成电路被设计为用于执行相关功能的单元来工作和销售等)和/或用于任何其他集成电路的上下文中实现。
此外,各种先前附图的架构和/或功能可以在通用计算机系统、电路板系统、专用于娱乐目的的游戏控制台系统、专用系统和/或任何其他期望的系统的上下文中实现。例如,系统700可以采用台式计算机、膝上型计算机、服务器、工作站、游戏控制台、嵌入式系统和/或任何其他类型的逻辑的形式。此外,系统700可以采用各种其他设备的形式,包括但不限于个人数字助理(PDA)设备、移动电话设备、电视等。
此外,虽然未示出,但是系统700可以耦合到用于通信目的的网络(例如,电信网络,局域网(LAN),无线网络,诸如因特网、对等网络、有线网络等的广域网(WAN)等)。
中央凹光场渲染
概述
在一个实施例中,光场显示器可用于为虚拟现实和沉浸式显示器提供舒适的视觉体验。但是,对这些显示的内容进行渲染非常昂贵。例如,诸如虚拟现实和沉浸式显示器的各种应用可能需要高图像质量、低渲染延迟和一致的深度提示。光场显示器可以通过支持焦点提示来提供改进的视觉体验,并且可以以各种形式实现,包括桌面显示器和头戴式显示器。
通过用眼睛/注视跟踪设备增大任何光场显示,光场渲染可以利用中央凹(foveation)加速。例如,可以使用眼睛跟踪器来定位场景内的注视位置,并且围绕该区域使用高细节进行渲染并且场景内的周边区域中使用较少细节进行渲染。
人类视觉系统可以在中央凹中解析比在周边中更高的空间频率。在一个实施例中,可以针对需要采样的样本的数量导出理论下限。该界限可以用于在4D光束空间中制定内容自适应重要性采样(例如,其中4D可以指每个像素中的维度信息(X,Y和入射光线的角度))。
诸如虚拟现实和沉浸式显示器的许多应用可能需要高图像质量、低渲染延迟和一致的深度提示。尽管图形硬件和渲染算法有所进步,但仍可能需要感知舒适的设计。光场显示器可以支持焦点提示,但是当前的渲染技术可能不会实时生成高质量的内容。中央凹渲染可以在保持感知质量的同时降低计算成本,但是现有方法不适用于具有焦点提示的4D光场显示器。
在一个实施例中,中央凹光场渲染和显示系统可以支持低延迟和高质量以及焦点提示,以改善深度感知并避免转向(vergence)视觉辐辏(accommodation conflict)。在另一个实施例中,可以基于人类视觉系统的调节和中央凹两者来导出4D光场光线空间中的重要性采样。从概念上讲,这可以通过跟踪来自视网膜细胞后面穿过眼睛并回到场景中的光线和改变眼睛的焦距以扫描光线空间来实现。
在另一个实施例中,可以在主域和频域两者中分析整个光场系统(包括显示器、眼睛晶状体和眼睛视网膜)。可以针对各种成分导出特定的光谱界限,并且可以使用导频感知研究来验证这些界限。基于该感知模型,可以实现4D光场采样方法用于中央凹光场渲染。
频率界限分析
通过支持适当的焦点提示,光场显示器可以在3D电视和虚拟现实头戴式显示器中提供更舒适的体验,这避免了当在传统立体或头戴式显示器上显示3D内容时由转向和视觉辐辏产生的眼睛疲劳和疾病。支持光场显示器的调节可以包括来自多个视点的内容的密集采样,其比单个视图的渲染更昂贵多个数量级。为了减少采样光场内容所需的带宽,在频域中可以在显示器、透镜和视网膜的领域中导出若干空间角度带宽界限。
光线空间分析
在一个实施例中,观察者可以聚焦在距离为dd=(defd)/(de-fd)的光场显示上,其中,fd是当聚焦在显示上时眼睛的焦距,并且de是眼球的直径。显示光场Ld可以沿着自由空间传播并且可以被眼睛晶状体折射,并且视网膜可以通过沿着在瞳孔处参数化的角度尺寸u对视网膜光场L积分来接收图像I:
对于在距眼睛一定距离d0(d0不等于dd)处呈现的离焦虚拟对象,其对应的视网膜光场可以通过方程(2)的逆映射获得,具有斜率
κ(do,fd)=(deκ(do,fd))-1. (3)
在平地图中,由于积分所有光线可以在瞳孔上积分以获得方程(1)中的视网膜图像,因此可以通过视网膜直径混淆圈(CoC)使图像模糊
在离焦对象的情况下,可以以与混淆圈大小成反比的频率对其进行直观的采样。另外,在大偏心的情况下,渲染成本也会大大降低。此外,通过傅立叶分析,可以在空间和角度维度上揭示更多的用于节约的理论界限。
频域分析
可以通过傅立叶切片定理获得方程(1)中的积分视网膜图像的频谱:
以下导出特定界限。
显示界限
对于在规则采样的显示器上显示的任何内容,可能需要适当的抗混叠(anti-aliasing)以避免频率掩蔽。当物体延伸超出光场显示器的景深(DoF)时,由于显示角度采样中的较窄带宽,空间域可能受到裁剪而被低通滤波。由于显示能力而在空间域上的减小的界限由下式给出
晶状体界限
对于离焦对象,其可感知的频谱可以通过利用傅里叶变换的瞳孔函数的卷积在方程(5)中对切片轴ωu=0有贡献的能量来控制。对于具有主域斜率κ(do,fd)的离焦对象,可感知的空间能量由下式sinc(adeκωu(do,fd))=sinc(aκ(do,fd))控制,这恰好是从方程(4)中的混淆圈的傅立叶变换获得的结果。因为sinc在其前半周期π之后迅速降低,所以我们可以推导出空间带宽并演绎出相应的角度带宽
由于界限主要受瞳孔孔径a限制,因此当对眼睛的焦平面(假设的)外的物体进行采样时,可能仅需要考虑低于光场显示的空间角频率。
视网膜界限
视网膜空间采样和分辨率可随着偏心率而降低,这主要是因为小型视网膜神经节细胞受体场(mRGCf)以较大的偏心率增加其树突野(dendritic field)尺寸,同时在视场上保持恒定的区域采样。该结果可用于通过用户研究利用较低空间分辨率和跨视网膜偏心率的阴影率来降低渲染成本。在说明如何导出空间分辨率界限作为视网膜偏心率的函数之前,可以说明影响光场内容采样的结果。
注意,角度界限可以取决于不同偏心率下的视网膜空间界限和内容深度这两者,并且示例示出了在相同偏心率下的不同角度界限。实际上,在采样阶段可能需要考虑许多空间界限和角度界限。例如,可以类似地对在远周边具有大点扩展尺寸的不同散焦模糊的对象进行采样,因为视网膜空间带宽小于它们的光学空间带宽,而它们的角度样本仍然不同。在一个实施例中,可以跨视网膜偏心率估计空间分辨率极限,并且可以将结果与从解剖学感受野尺寸导出的带宽进行比较。
我们需要多少光线?
确定光场显示器需要多少光线进入瞳孔(即角度采样率)以支持适当的焦点提示。若干因素可能影响最终可感知的图像,包括显示器、眼睛的光学、视网膜的解剖结构和在空间中分布的内容。尽管中央凹的空间分辨率可以很高(例如,60个周期/度),但是显示空间和角度带宽可以设置显示器的景深之外的对象的采样界限。然而,当视网膜空间带宽快速下降到中央凹带宽的一小部分时,如方程(9)所示,角度带宽的界限也可以线性减小;渲染的整体节省可以很好地延伸到4D光场。这些结果可能适用于新兴的中央凹光场显示器。
模糊检测和光场带宽
渲染中央凹光场的一个目标可以是尽可能简洁地对4D信息进行采样(例如,使用最少数量的光线来表示不同深度和偏心率处的对象而不让用户注意到差异)。极端情况可能是用2D牌替换周边4D光场渲染,但需要找到灵敏度和检测阈值。这种方法的最终判断可能是人类视觉系统。在一个实施例中,随着视觉偏心率的增长,视敏度可能单调下降,并且可以知道视敏度的下降跟随神经节细胞的密度。可以构建模型,该模型预测小型神经节细胞的感受野密度作为视网膜偏心率(x,y)∈x和子午线类型k的函数:
其中ρcone=14,804.6/平方度(ρcone=14,804.6deg-2)是中央凹处的视锥细胞的密度,并且ak、r2,k、re,k是沿着视场的四个子午线的所有拟合常数。在实际中,延伸到六边形感受野空间的任意视网膜位置也可能是有用的:
视网膜空间带宽可以如下获得:
角度带宽和深度感知
如方程(9)所示,空间带宽的减小可导致更窄的角度带宽。如果视觉系统对周边焦点提示的变化不敏感,则可以进一步减小角度带宽。具体地,可以确定是否有在没有视觉系统检测到角度采样的情况下可以省略角度采样的条件。调查可以从行为数据开始。判断模糊变化的能力可能是一个重要因素,因为无法这样做可能会阻止更高层次的感知并引发视觉辐辏调节冲突。可以在各种偏心率下(例如,从中心凹到8度偏心率的范围内)测量模糊检测(模糊存在的识别)和模糊辨别(模糊的大小差异的识别)的阈值。对于检测(例如,0.53D至1.25D)和辨别(例如,0.29D至0.72D),阈值可以作为偏心率的函数单调增加。模糊检测阈值也可以在更远的视觉偏心率处测量,其中它可以增加(例如,从在偏心率为7度时模糊检测阈值从2到5D,到在60度偏心率时模糊检测阈值从7到12D)。
阈值的单调增加可能表明在周边省略角度采样的机会更多;如果视觉系统不能领会它们的焦点提示,则可以省略某些物体的角度采样。
视网膜细胞的感受野密度
在一个实施例中,可以确定视网膜细胞的感受野密度并将其设置为最大空间采样分辨率。然后,根据场景中的材料距被跟踪注视的距离,可以使用最大空间采样分辨率来降低光场显示器的渲染成本。
随着空间采样率在更远的偏心率处减小,角度采样也可以减小,并且采样率可以取决于给定偏心率处的空间采样带宽和对象的深度。在一个实施例中,虽然视网膜的空间采样率小于显示器提供的空间采样率,但是因为所需的角度采样带宽可以小于由显示器提供的角度采样带宽,所以可以对空间像素进行二次采样,并且可以减少视图的数量。在另一个实施例中,当渲染用于远周边视觉的内容时,可以根据确定的斜率(例如,对象的深度)和相应的感受野密度对角度视图进一步向下采样。
光场视图采样
光场视图采样可能需要从跨越眼睛框的不同的基线点(例如,虚拟相机位置)密集地渲染相同的3D场景。图8示出了具有眼睛框802和对应视图804的示例性光视图采样实现800。如图8所示,采用被瞳孔平面上的眼睛框802内的预定空间(例如,1mm等)分开的每个虚拟相机,预定数量的视图804(例如,7×7等)被渲染。然而,以全分辨率对大量视图进行采样需要对大量像素进行着色,这对于实时应用可能是不实际的。
作为解决方案,将眼睛/注视跟踪器与光场显示器一起使用可以允许在具有高空间角度细节的情况下在所显示的场景内渲染感兴趣的区域,并且以较低的计算成本渲染场景的其余部分。因为仅使用那些显示器的一个观看者期望大视场,虚拟现实显示器可以从该实现中受益。
示例性实现
图9示出了示例性的中央凹光场视图采样实现900。如图所示,确定注视点902位于图像904的中心。在第一次渲染过程中,对场景908中的所有像素进行一个中心视图906的采样。例如,第一次渲染过程可以等同于传统的2D渲染过程。
对于更靠近注视点902的视口区域,可以对更多视图进行采样以便实现光场体验。例如,在第二次过程中,可以使用视口912对视场922采样额外数量的视图910(例如,8个以上视图等),其小于先前的渲染过程(例如,图像904的一半等),以节省着色成本。
在第三次过程中,可以使用视口916对视场924采样额外数量的视图914(例如,16个以上视图等),其小于先前渲染过程(例如,图像904的1/4等)。在第四次过程中,可以使用视口920对视场926采样额外数量的视图918(例如,56个更多视图等),其小于先前的渲染过程(例如,图像904的1/8等)。在连续较小的视口和视场中添加更多视图的过程可以继续,直到达到预定的角度采样率。
尽管上面已经描述了各种实施例,但是应该理解,它们仅以示例的方式呈现,而不是限制。因此,优选实施例的宽度和范围不应受任何上述示例性实施例的限制,而应仅根据所附权利要求及其等同物来限定。
Claims (23)
1.一种用于在渲染期间调整角度采样率的方法,所述方法包括:
通过硬件处理器确定场景内的注视点的位置;和
在渲染所述场景期间,通过所述硬件处理器基于所述场景内的所述注视点的位置调整所述角度采样率以生成经调整的角度采样率,其中所述经调整的角度采样率指示用于对所述场景的至少一部分中的一个或多个像素的每个像素进行渲染的若干个不同视图;以及
通过以下方式以所述经调整的角度采样率渲染所述场景的至少一部分:基于由所述经调整的角度采样率指示的所述若干个不同视图,选择多个不同视图的子集,在所述子集中所述场景中的至少一部分中的一个或多个像素的每个像素被渲染。
2.根据权利要求1所述的方法,其中,所述注视点的位置包括所述场景内的当前注视点。
3.根据权利要求2所述的方法,其中,所述调整包括针对所述场景内的预定区域确定从所述当前注视点的偏心率。
4.根据权利要求3所述的方法,其中,基于所述偏心率针对所述预定区域调整所述角度采样率。
5.根据权利要求3所述的方法,其中,所述调整包括响应于所述偏心率的减小来增加所述角度采样率。
6.根据权利要求3所述的方法,其中,所述调整包括响应于所述偏心率的增加而减小所述角度采样率。
7.根据权利要求1的方法,其中所述调整包括针对所述场景内的第一位置,将用于渲染所述第一位置的空间采样率与针对所述第一位置的视网膜的空间采样率进行比较。
8.根据权利要求1所述的方法,还包括:基于所述注视点的位置,调整用于渲染所述场景的空间采样率。
9.根据权利要求8所述的方法,其中,使用视网膜细胞的感受野密度计算视网膜的空间采样率。
10.根据权利要求7所述的方法,还包括:响应于确定用于渲染所述场景的空间采样率大于所述场景的视网膜的空间采样率:
降低用于渲染所述第一位置的场景的空间采样率;以及
降低用于渲染所述第一位置的场景的角度采样率。
11.根据权利要求1的方法,其中所述不同视图代表眼睛框内的不同虚拟相机位置。
12.根据权利要求11的方法,其中所述不同视图被包括在多个基线点的预定义网格中。
13.一种用于在渲染期间调整角度采样率的系统,所述系统包括:
硬件处理器,所述硬件处理器配置为:
确定场景内的注视点的位置;以及
在渲染所述场景期间,基于所述场景内的所述注视点的位置,调整所述角度采样率以生成经调整的角度采样率,其中所述经调整的角度采样率指示用于对所述场景的至少一部分中的一个或多个像素的每个像素进行渲染的若干个不同视图;以及
通过以下方式以所述经调整的角度采样率渲染所述场景的至少一部分:基于由所述经调整的角度采样率指示的所述若干个不同视图,选择多个不同视图的子集,在所述子集中所述场景中的至少一部分中的一个或多个像素的每个像素被渲染。
14.根据权利要求13所述的系统,其中,所述注视点的位置用于识别所述场景内的当前注视点。
15.根据权利要求14所述的系统,其中,所述调整包括针对所述场景内的预定区域确定从所述当前注视点的偏心率。
16.根据权利要求15所述的系统,其中,基于所述偏心率针对所述预定区域调整所述角度采样率。
17.根据权利要求15所述的系统,其中,所述调整包括响应于所述偏心率的减小而增加所述角度采样率。
18.根据权利要求15所述的系统,其中,所述调整包括响应于所述偏心率的增加而减小所述角度采样率。
19.根据权利要求13所述的系统,还包括:基于所述注视点的位置,调整用于渲染所述场景的空间采样率。
20.根据权利要求13所述的系统,其中,所述调整包括:对于所述场景内的第一位置,将用于渲染所述第一位置的空间采样率与所述第一位置的视网膜的空间采样率进行比较。
21.根据权利要求20所述的系统,其中,使用视网膜细胞的感受野密度计算视网膜的空间采样率。
22.根据权利要求13的系统 ,其中所述不同视图代表眼睛框内的不同虚拟相机位置。
23.一种非暂时性计算机可读存储介质,其存储指令,当所述指令在由处理器执行时使所述处理器执行步骤,所述步骤包括:
确定场景内的注视点的位置;以及
在渲染所述场景期间,基于所述场景内的注视点的位置调整角度采样率以生成经调整的角度采样率,其中所述经调整的角度采样率指示用于对所述场景的至少一部分中的一个或多个像素的每个像素进行渲染的若干个不同视图;以及
通过以下方式以所述经调整的角度采样率渲染所述场景的至少一部分:基于由所述经调整的角度采样率指示的所述若干个不同视图,选择多个不同视图的子集,在所述子集中所述场景中的至少一部分中的一个或多个像素的每个像素被渲染。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762589400P | 2017-11-21 | 2017-11-21 | |
US62/589,400 | 2017-11-21 | ||
US15/880,460 US10395624B2 (en) | 2017-11-21 | 2018-01-25 | Adjusting an angular sampling rate during rendering utilizing gaze information |
US15/880,460 | 2018-01-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109992103A CN109992103A (zh) | 2019-07-09 |
CN109992103B true CN109992103B (zh) | 2022-07-05 |
Family
ID=66532473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811376319.9A Active CN109992103B (zh) | 2017-11-21 | 2018-11-19 | 用于在渲染期间调整角度采样率的方法、系统和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10395624B2 (zh) |
CN (1) | CN109992103B (zh) |
DE (1) | DE102018128699A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10740876B1 (en) * | 2018-01-23 | 2020-08-11 | Facebook Technologies, Llc | Systems and methods for generating defocus blur effects |
CN110324601A (zh) * | 2018-03-27 | 2019-10-11 | 京东方科技集团股份有限公司 | 渲染方法、计算机产品及显示装置 |
US10553012B2 (en) * | 2018-04-16 | 2020-02-04 | Facebook Technologies, Llc | Systems and methods for rendering foveated effects |
US11250819B2 (en) * | 2018-05-24 | 2022-02-15 | Lockheed Martin Corporation | Foveated imaging system |
JP7100523B2 (ja) * | 2018-07-27 | 2022-07-13 | 京セラ株式会社 | 表示装置、表示システムおよび移動体 |
CN114787752A (zh) * | 2019-12-17 | 2022-07-22 | 托比股份公司 | 用于在显示器上应用适应性颜色渲染的方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11345349A (ja) * | 1998-04-03 | 1999-12-14 | Avid Technol Inc | 複雑な視覚デ―タを編集し連続更新レンダリングを行うシステム |
CN102393970A (zh) * | 2011-12-13 | 2012-03-28 | 北京航空航天大学 | 一种物体三维建模与渲染系统及三维模型生成、渲染方法 |
CN104469110A (zh) * | 2014-11-26 | 2015-03-25 | 西北工业大学 | 可变角度采样数的光场采集装置 |
CN105825545A (zh) * | 2016-03-29 | 2016-08-03 | 浙江大学 | 基于虚拟光源和自适应稀疏矩阵还原的全局光照绘制方法 |
CN106056661A (zh) * | 2016-05-31 | 2016-10-26 | 钱进 | 基于Direct3D 11的三维图形渲染引擎 |
CN106683199A (zh) * | 2015-11-06 | 2017-05-17 | 三星电子株式会社 | 3d图形渲染方法和设备 |
CN106815800A (zh) * | 2015-12-02 | 2017-06-09 | 卢茨洛格斯技术有限公司 | 用于在计算机系统中控制空间分辨率的方法和装置 |
CN107240147A (zh) * | 2017-05-26 | 2017-10-10 | 清华大学 | 图像渲染方法及系统 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8808164B2 (en) | 2008-03-28 | 2014-08-19 | Intuitive Surgical Operations, Inc. | Controlling a robotic surgical tool with a display monitor |
US7850306B2 (en) | 2008-08-28 | 2010-12-14 | Nokia Corporation | Visual cognition aware display and visual data transmission architecture |
US8493390B2 (en) | 2010-12-08 | 2013-07-23 | Sony Computer Entertainment America, Inc. | Adaptive displays using gaze tracking |
US10585472B2 (en) | 2011-08-12 | 2020-03-10 | Sony Interactive Entertainment Inc. | Wireless head mounted display with differential rendering and sound localization |
US9860522B2 (en) * | 2012-08-04 | 2018-01-02 | Paul Lapstun | Head-mounted light field display |
US9727991B2 (en) * | 2013-03-01 | 2017-08-08 | Microsoft Technology Licensing, Llc | Foveated image rendering |
US9898081B2 (en) | 2013-03-04 | 2018-02-20 | Tobii Ab | Gaze and saccade based graphical manipulation |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
AU2015297035B2 (en) | 2014-05-09 | 2018-06-28 | Google Llc | Systems and methods for biomechanically-based eye signals for interacting with real and virtual objects |
US9928610B2 (en) | 2014-06-27 | 2018-03-27 | Samsung Electronics Co., Ltd. | Motion based adaptive rendering |
US10529059B2 (en) * | 2014-08-11 | 2020-01-07 | The Regents Of The University Of California | Vision correcting display with aberration compensation using inverse blurring and a light field display |
US10176639B2 (en) | 2014-11-27 | 2019-01-08 | Magic Leap, Inc. | Virtual/augmented reality system having dynamic region resolution |
US10417832B2 (en) | 2015-03-11 | 2019-09-17 | Facebook Technologies, Llc | Display device supporting configurable resolution regions |
US10085005B2 (en) * | 2015-04-15 | 2018-09-25 | Lytro, Inc. | Capturing light-field volume image and video data using tiled light-field cameras |
JP2016202716A (ja) | 2015-04-24 | 2016-12-08 | 株式会社コーエーテクモゲームス | プログラム及び記録媒体 |
US10810797B2 (en) | 2015-05-22 | 2020-10-20 | Otoy, Inc | Augmenting AR/VR displays with image projections |
US10037620B2 (en) | 2015-05-29 | 2018-07-31 | Nvidia Corporation | Piecewise linear irregular rasterization |
US10042165B2 (en) | 2015-08-03 | 2018-08-07 | Oculus Vr, Llc | Optical system for retinal projection from near-ocular display |
US9978183B2 (en) | 2015-09-18 | 2018-05-22 | Fove, Inc. | Video system, video generating method, video distribution method, video generating program, and video distribution program |
KR20180057693A (ko) | 2015-09-24 | 2018-05-30 | 토비 에이비 | 눈 추적 가능한 웨어러블 디바이스들 |
US20170178395A1 (en) | 2015-12-16 | 2017-06-22 | Google Inc. | Light field rendering of an image using variable computational complexity |
US10643296B2 (en) | 2016-01-12 | 2020-05-05 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
US10643381B2 (en) | 2016-01-12 | 2020-05-05 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
US10157448B2 (en) | 2016-02-12 | 2018-12-18 | Qualcomm Incorporated | Foveated video rendering |
US10475370B2 (en) | 2016-02-17 | 2019-11-12 | Google Llc | Foveally-rendered display |
US10540007B2 (en) | 2016-03-04 | 2020-01-21 | Rockwell Collins, Inc. | Systems and methods for delivering imagery to head-worn display systems |
US10372205B2 (en) | 2016-03-31 | 2019-08-06 | Sony Interactive Entertainment Inc. | Reducing rendering computation and power consumption by detecting saccades and blinks |
US10401952B2 (en) | 2016-03-31 | 2019-09-03 | Sony Interactive Entertainment Inc. | Reducing rendering computation and power consumption by detecting saccades and blinks |
US10169846B2 (en) | 2016-03-31 | 2019-01-01 | Sony Interactive Entertainment Inc. | Selective peripheral vision filtering in a foveated rendering system |
US10460704B2 (en) | 2016-04-01 | 2019-10-29 | Movidius Limited | Systems and methods for head-mounted display adapted to human visual mechanism |
US10546518B2 (en) * | 2017-05-15 | 2020-01-28 | Google Llc | Near-eye display with extended effective eyebox via eye tracking |
-
2018
- 2018-01-25 US US15/880,460 patent/US10395624B2/en active Active
- 2018-11-15 DE DE102018128699.6A patent/DE102018128699A1/de active Pending
- 2018-11-19 CN CN201811376319.9A patent/CN109992103B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11345349A (ja) * | 1998-04-03 | 1999-12-14 | Avid Technol Inc | 複雑な視覚デ―タを編集し連続更新レンダリングを行うシステム |
CN102393970A (zh) * | 2011-12-13 | 2012-03-28 | 北京航空航天大学 | 一种物体三维建模与渲染系统及三维模型生成、渲染方法 |
CN104469110A (zh) * | 2014-11-26 | 2015-03-25 | 西北工业大学 | 可变角度采样数的光场采集装置 |
CN106683199A (zh) * | 2015-11-06 | 2017-05-17 | 三星电子株式会社 | 3d图形渲染方法和设备 |
CN106815800A (zh) * | 2015-12-02 | 2017-06-09 | 卢茨洛格斯技术有限公司 | 用于在计算机系统中控制空间分辨率的方法和装置 |
CN105825545A (zh) * | 2016-03-29 | 2016-08-03 | 浙江大学 | 基于虚拟光源和自适应稀疏矩阵还原的全局光照绘制方法 |
CN106056661A (zh) * | 2016-05-31 | 2016-10-26 | 钱进 | 基于Direct3D 11的三维图形渲染引擎 |
CN107240147A (zh) * | 2017-05-26 | 2017-10-10 | 清华大学 | 图像渲染方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US10395624B2 (en) | 2019-08-27 |
US20190156793A1 (en) | 2019-05-23 |
DE102018128699A1 (de) | 2019-07-04 |
CN109992103A (zh) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10362289B2 (en) | Method for data reuse and applications to spatio-temporal supersampling and de-noising | |
CN109992103B (zh) | 用于在渲染期间调整角度采样率的方法、系统和存储介质 | |
US9978171B2 (en) | Control of a sample mask from a fragment shader program | |
US10229529B2 (en) | System, method and computer program product for implementing anti-aliasing operations using a programmable sample pattern table | |
US9547931B2 (en) | System, method, and computer program product for pre-filtered anti-aliasing with deferred shading | |
US9754407B2 (en) | System, method, and computer program product for shading using a dynamic object-space grid | |
US10120187B2 (en) | Sub-frame scanout for latency reduction in virtual reality applications | |
TW201832179A (zh) | 使用一類神經網路過濾影像資料 | |
US20210181674A1 (en) | System and method for near-eye light field rendering for wide field of view interactive three-dimensional computer graphics | |
US20160049000A1 (en) | System, method, and computer program product for performing object-space shading | |
US9230363B2 (en) | System, method, and computer program product for using compression with programmable sample locations | |
US9230362B2 (en) | System, method, and computer program product for using compression with programmable sample locations | |
CN107392836B (zh) | 使用图形处理管线实现的立体多投影 | |
US20150179142A1 (en) | System, method, and computer program product for reduced-rate calculation of low-frequency pixel shader intermediate values | |
US11638028B2 (en) | Adaptive pixel sampling order for temporally dense rendering | |
US10417813B2 (en) | System and method for generating temporally stable hashed values | |
TW201638883A (zh) | 用於細分表面的直接和互動式射線追蹤之方法及設備 | |
US20220198746A1 (en) | Reservoir-based spatiotemporal importance resampling utilizing a global illumination data structure | |
US20150084952A1 (en) | System, method, and computer program product for rendering a screen-aligned rectangle primitive | |
US10212406B2 (en) | Image generation of a three-dimensional scene using multiple focal lengths | |
US11120609B2 (en) | Reconstruction for temporally dense ray trace rendering | |
US10192525B2 (en) | System, method and computer program product for generating one or more values for a signal patch using neighboring patches collected based on a distance dynamically computed from a noise distribution of the signal patch |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |