当前位置: 首页 > 专利查询>辉达公司专利>正文

用于对层次深度图采样的系统、方法和计算机程序产品技术方案

技术编号:10114290 阅读:189 留言:0更新日期:2014-06-04 18:34
提供用于对层次深度图采样的系统、过程和计算机程序产品。用于对层次深度图采样的方法包括以下步骤:生成层次深度图,以及基于样本像素和目标像素之间的差异从层次深度图的目标层级读取与样本像素相关联的值。层次深度图包括至少两个层级。

【技术实现步骤摘要】
【专利摘要】提供用于对层次深度图采样的系统、过程和计算机程序产品。用于对层次深度图采样的方法包括以下步骤:生成层次深度图,以及基于样本像素和目标像素之间的差异从层次深度图的目标层级读取与样本像素相关联的值。层次深度图包括至少两个层级。【专利说明】用于对层次深度图采样的系统、方法和计算机程序产品
本专利技术涉及计算机图形,并且更具体地,涉及利用深度缓冲区的算法。
技术介绍
深度缓冲区存储指示用于三维场景中的对象表面的深度的多个值。针对许多类型的计算机图形渲染应用实现深度缓冲区。深度值可用来确定相对于特定视点,对象是否被其他对象所遮蔽。典型地,深度缓冲区包括与数字图像中的相应多个像素相关联的多个值。深度缓冲区中的每个值可表示和与特定像素相对应的视点最靠近的对象的深度。一些算法,诸如屏幕空间环境光遮蔽算法,对深度缓冲区内的多个不同值采样以针对每个像素计算环境光遮蔽(八0)值。这些技术的净性能由于深度缓冲区的大量分散的读取而受到损害,导致高速缓存效率低下。因此,存在解决该问题和/或与现有技术相关联的其他问题的需要。
技术实现思路
提供用于对层次深度图采样的系统、方法和计算机程序产品。用于对层次深度图采样的方法包括下面的步骤:生成层次深度图,以及基于样本像素和目标像素之间的差异((11打虹的⑶)从层次深度图的目标层级读取与样本像素相关联的值。层次深度图包括至少两个层级。【专利附图】【附图说明】图1示出根据一个实施例的、用于对层次深度图采样的方法的流程图;图2示出根据一个实施例的、用于实现可缩放(8(^1处16)环境光遮蔽算法的方法的流程图;图3示出根据一个实施例的层次深度图;图4示出根据一个实施例的、可缩放环境光遮蔽算法中的用于目标像素的多个样本像素;图5示出根据一个实施例的并行处理单元〔??口);图6示出根据一个实施例的、图5的流多处理器;以及图7示出在其中可实现各先前实施例的各架构和丨或功能性的示例性系统。【具体实施方式】许多不同类型的渲染算法在作为算法一部分的一个或多个计算中利用深度缓冲区(即2缓冲区例如,环境光遮蔽(八0)算法生成着色效果以近似光在真实世界中辐射的路线。八0算法确定附近的几何体对表面上的具体点的遮蔽量。如果附近的几何体遮蔽该点,那么该点可被渲染以包括阴影(例如采用较低强度来渲染然而,如果附近的几何体不遮蔽该点,那么该点可被渲染而没有阴影(例如采用较高强度来渲染本领域普通技术人员将理解的是,使用常规同时维持交互的帧率无法以全高清晰度分辨率实时实施在模型空间中所计算的环境光遮蔽(即通过对每个对象采样来确定对象是否遮蔽了点因此,对全八0算法生成充分近似值的一项技术是屏幕空间环境光遮蔽在3^0算法中,模型首先被光栅化以产生深度缓冲区,该深度缓冲区将每个像素位置(或如果以子像素分辨率实现深度缓冲区那么样本位置)与最靠近用于像素的视点的几何体的深度相关联。一旦生成深度缓冲区,那么可通过对多个附近的像素采样来计算用于像素的近似的环境光遮蔽,以确定该像素是否可能被附近的几何体所遮蔽。在一些33八0算法中,用于每个像素的深度和表面法线二者可用来确定近似的遮蔽。常规3^0算法由于深度缓冲区中所采样的点的分散而性能不佳,导致高速缓存效率低下并生成大量长时延存储器访问请求。公开了用于对深度缓冲区编码的示例性技术,其提高对深度缓冲区中的大量分散条目采样的算法的性能,从而提高高速缓存效率并减少用于对附近的条目采样的长时延存储器访问请求的数目。图1示出根据一个实施例的、用于对层次深度图采样的方法100的流程图。在步骤102,生成层次深度图。在一个实施例中,层次深度图是具有两个或更多个层级的值的阵列,其中基于深度缓冲区中的多个值填充(即叩丨社6)第一层级并且采用来自第一层级的值的子集填充第二层级。在步骤104,从层次深度图的目标层级读取与样本像素相关联的值。在一个实施例中,目标层级基于样本像素与目标像素的距离。应注意的是,虽然本文结合层次深度图阐述各可选特征,但这类特征仅出于示例性目的而阐述,并且其不应被认为是以任何方式进行限制。图2示出根据一个实施例的、用于实现可缩放环境光遮蔽(^0)算法的方法200的流程图。应特别注意的是,下面的信息仅出于示例性目的而阐述,并且其不应被认为是以任何方式进行限制,因为其他算法可能利用层次深度图以补充或代替由图2的流程图所示出的“0算法。在步骤202,通过在图形处理单元((--)中实施高精度来生成深度缓冲区。在一个实施例中,高精度2-1^88被实施为经过的仅深度预通过模型数据集(即诸如三角形、四边形、或三角形条带的图形基元)被传送到⑶匕随后在深度上变换并光栅化模型数据以产生用于每个片段(即与给定表面对象相关联的像素的一部分)的2坐标。针对与该像素位置相关联的所有其他2坐标测试该2坐标以确定最靠近特定视点的对象,并且如果该2坐标是最靠近的对象,那么将该2坐标存储在深度缓冲区中的与该像素位置相对应的条目处。一旦所有的模型数据已被光栅化,那么最终产生的深度缓冲区表示从视点到在经光栅化的图像中的每个像素位置处的最靠近的表面的光线的长度。为了增加“0算法中的结果的准确度,应谨慎地采用可能的最高精度来填充深度缓冲区。在一个实施例中,可通过实现下面的优化来增加深度缓冲区的精度。在将模型视图投影矩阵投向用于上的顶点着色器中所实施的变换的单精度之前,可在主机处理器上以双精度计算模型视图投影矩阵。对于模型视图投影矩阵,可在负无穷(-⑴)的深度处选择远裁剪平面,其可减少当计算矩阵积时所实施的浮点操作的数目。此外,当在中计算变换时,可通过在以列为主的矩阵(例如模型视图投影矩阵)的左侧乘以矢量来节省一半精度。应理解的是,上 述优化仅是用于提高算法准确度的建议,并且其不应被认为是以任何方式进行限制。在步骤204,基于深度缓冲区生成层次深度图。在一个实施例中,深度缓冲区用来填充层次深度图的基本层级。典型地,由所生成的深度缓冲区将深度值存储为0和1之间的浮点值。层次深度图的基本层级将深度缓冲区的深度值转换成相机空间值,其指示近裁剪平面(?)的位置和远裁剪平面(?)的位置之间的2值。通过选择来自层次深度图的下一最低层级的值的子集来填充层次深度图的相继较高层级。层次深度图包括至少两个层级,与数字图像的全分辨率相对应的基本层级,以及与小于该基本层级的分辨率(例如基本层级的分辨率的一半)相对应的第一层级。层次深度图的较高层级(即1级、2级等)确保采用高的高速缓存效率读取空间分布的样本(即,当采样的像素较远离目标像素位置时,由 所并行处理的邻近像素将典型地从层次深度图读取相同样本因为层次深度图的每个层级的一小区域留在高速缓存中,所以较少的读取请求将被传送到存储器(即得到高带宽和低时延。在步骤206,针对正针对其执行“0算法的数字图像的每个目标像素,选择多个样本像素。在一个实施例中,对于每个目标像素,多个样本像素分布在围绕点的半球上,该半球的中心点在由从视点以与目标像素相关联的方向所投影的光线所相交的表面上的点处。在一个实施例中,根据值\重构点I该值\读取自层次深度图的基本层级、与由X坐标)和7坐标(5^ )所给定的目标像素相关联的索引处。点的X坐标和7坐标由等式给定:【权利要求】1.一种方法,包括: 生成层本文档来自技高网...

【技术保护点】
一种方法,包括:生成层次深度图,其中所述层次深度图包括至少两个层级;以及基于样本像素和目标像素之间的差异从所述层次深度图的目标层级读取与所述样本像素相关联的值。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:摩根·麦圭尔大卫·帕特里克·利布基麦克尔·托马斯·马拉
申请(专利权)人:辉达公司
类型:发明
国别省市:无

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1