用于渲染凹形效果的系统、方法和非暂时性存储介质技术方案

技术编号:22418851 阅读:18 留言:0更新日期:2019-10-30 02:12
本发明专利技术公开了用于渲染凹形效果的系统、方法和非暂时性存储介质。在一个实施例中,计算机系统可以基于由虚拟现实设备生成的传感器数据来确定3D空间中的方位。该系统可以基于所确定的方位在3D空间中生成光线足迹。对于光线足迹中的至少一个,系统可以识别要为该光线足迹生成的对应数目的子样本,并且基于对应数目的子样本生成光线足迹中的一个或多个坐标。系统可以通过从一个或多个坐标中的每一个投影光线以测试与一个或多个物体的相交来确定在3D空间内定义的一个或多个物体的可见性。系统可以基于所确定的一个或多个物体的可见性来生成一个或多个物体的图像。

【技术实现步骤摘要】
用于渲染凹形效果的系统、方法和非暂时性存储介质
本公开一般涉及计算机图形,并且更具体地涉及用于生成诸如虚拟现实和增强现实的人工现实的图形渲染方法和优化。
技术介绍
计算机图形,一般说来,是使用计算机创建的视觉场景。三维(3D)计算机图形向用户提供来自特定的视点的3D物体的视图。可以使用原始几何形状在3D建模空间中定义3D场景中的每个物体(例如,茶壶、房屋、人等)。例如,圆柱形物体可以使用圆柱形管以及顶部和底部圆形盖来建模。圆柱形管和圆形盖可以各自由较小多边形(例如,三角形)的网络或网格表示。反过来,可以基于在3D建模空间中它们各自的顶点的坐标来存储每个多边形。即使计算机图形中的3D物体可以在三维中建模,但是它们通常通过矩形二维(2D)显示器(诸如计算机或电视监视器)呈现给观看者。由于人类视觉感知系统的局限性,人类期望在任何时刻都能从大致相同的视角感知世界。换句话说,人类期望3D物体的某些部分将是可见的,以及其他部分将被从视野中隐藏起来。因此,对于每个3D场景,计算机图形系统可以只需要渲染对用户可见的场景部分,而不需要渲染其余部分。这允许系统大大减少了所需的计算量。光线投射是一种用于确定3D场景中物体可见性的技术。通常,虚拟光线从虚拟针孔相机通过虚拟矩形屏幕的每个像素均匀地投射到3D世界中,以确定什么是可见的(例如,基于光线击中的3D物体的哪些部分)。然而,这假定当对于具有有限视场的传统矩形显示技术(例如,计算机监视器和电话显示器)计算来自虚拟针孔相机的主可见性时,均匀的光线分布是合理的。然而,这一假设并不适用于更精确地表示真实的光学传感器的非针孔虚拟相机。此外,当前的VR观察光学器件(例如,集成在头戴式显示器内)提供弯曲的、非均匀的观察表面,而不是传统的矩形显示。因此,基于上述假设设计和优化的传统渲染技术在计算上效率低下,产生次优渲染,并且缺乏在人工现实中渲染场景的灵活性。
技术实现思路
本文描述的特定实施例涉及提供实时性能的主可见性算法和非常适合于渲染诸如虚拟现实和增强现实的人工现实的特征集合。当解决可见性问题时,特定实施例使用层次包围盒和两级截面剔除/入口点搜索算法来加速和优化相干主可见性光线的遍历,而不是为每个像素均匀地投射单独的光线。特定实施例利用多样本抗锯齿的适配来进行光线投射,这显著降低存储器带宽。特定实施例进一步提供灵活性和渲染优化,这使得渲染引擎能够在保持实时性能的同时本地生成各种图形特征。在人工现实环境中这样的图形特征——诸如透镜失真、子像素渲染、非常宽的视场、聚焦和随机景深模糊——可能是特别期望的。这些实施例提供对动画和基于物理的着色和照明的支持,以提高渲染的场景的真实感。相反,为传统显示器(例如,具有均匀像素网格的矩形监视器或电视机集)设计的传统光栅化管线通常在硬件中实现,并且需要多次通过和/或后处理来近似这些特征。此外,主要关注蒙特卡罗路径追踪的传统光线追踪器在当前VR显示器上不能实现实时性能(例如,具有1080×1200×2分辨率和90Hz刷新率要求)。因此,本文描述的实施例特别适合于渲染人工现实,并且呈现了传统光栅化技术的具体的、可行的替代方案。本专利技术的实施例可以包括或结合人工现实系统来实现。人工现实是在呈现给用户之前已经以某种方式调整的现实形式,其可以包括例如虚拟现实(VR)、增强现实(AR)、混杂现实(MR)、混合现实、或其一些组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如,现实世界照片)组合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或其某种组合,并且其中的任何一个可以在单个通道中或在多个通道(诸如向观看者产生三维效果的立体视频)中呈现。另外,在一些实施例中,人工现实可以与例如用于在人工现实中创造内容和/或在人工现实中(例如在人工现实中执行活动)使用的应用程序、产品、附件、服务或它们的一些组合相关联。提供人工现实内容的人工现实系统可以在各种平台上实现,该平台包括连接到主机系统的头戴式显示器(HMD)、独立HMD、移动设备或计算系统、或能够向一个或多个观看者提供人工现实内容的任何其他硬件平台。本文公开的实施例仅是示例,并且本公开的范围不限于它们。特定实施例可以包括上面公开的实施例的组件、元件、特征、功能、操作或步骤中的全部、部分或均不包括。特别地,根据本专利技术的实施例在针对方法、存储介质、系统和计算机程序产品的所附权利要求中公开,其中,在一个权利要求类别(例如,方法)中提及的任何特征也可以在另一个权利要求类别(例如,系统)中要求保护。选择所附权利要求中的从属关系或引用仅出于形式上的原因。然而,也可以要求保护由对任何先前权利要求(特别是多个依赖性)的特意参考而产生的任何主题,从而公开了权利要求及其特征的任何组合,并且可以要求保护,而不管所附权利要求中选择的从属关系如何。可以要求保护的主题不仅包括所附权利要求中阐述的特征的组合,而且还包括权利要求中的特征的任何其他组合,其中,权利要求中提到的每个特征可以与权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的任何实施例和特征,可以在单独的权利要求中和/或在本文描述或描绘的任何实施例或特征或所附权利要求的任何特征的任何组合中要求保护。附图说明图1示出了层次包围盒树数据结构的示例。图2示出了用于定义投影光线/波束的位置的示例三级层次结构。图3示出了与足迹相关联的光线和子样本光线的示例。图4示出了通过块投射的波束的示例。图5示出了通过区块投射的波束的示例。图6A至图6C示出了用于确定可见性的方法的示例。图7示出了焦面图的示例。图8示出了焦面图和相机参数的示例。图9示出了用于为VR设备本地生成具有光学失真的图像的方法。图10示出了重要性图的示例。图11示出了用于基于变化的多样本抗锯齿生成图像的示例方法。图12示出了将不使用波束竞速的图形生成时间线与使用波束竞速的时间线进行比较的示例。图13示出了用于使用波束竞速来生成用于VR显示器的视频帧的示例方法。图14示出了示例计算机系统。具体实施方式计算机图形中的一个基本问题是确定物体的可见性。目前,最常用的两种方法是光线追踪法,它模拟光的传输,在诸如电影和计算机辅助设计(CAD)的精度高于速度的行业占主导地位。由于光线追踪的计算要求很高,所以传统上它不适合需要实时或接近实时渲染的应用程序。确定可见性的另一种方法是深度缓存法(z-buffering),它检查场景中的每个3D物体,并更新缓冲区,该缓冲区针对虚拟矩形屏幕的每个像素追踪当前最近的物体。典型地,深度缓存法由当前图形硬件实现,并且缺乏处理偏离上述假设(例如,具有均匀像素分布的针孔相机和/或矩形屏幕)的渲染任务的灵活性。本文描述的特定实施例提供了一种可见性算法,其具有接近深度缓存法的性能特征,但是具有额外的灵活性,其能够渲染用于人工现实的各种各样的视觉效果。为了提供进一步的环境,传统深度缓存法经常用于解决实时主可见性问题,大部分是由于其适用于均匀的主可见性问题(例如,对于传统矩形屏幕)以及廉价的专用硬件实现的可用性和扩展性。深度缓存(z-buffer)算法使用深度缓存,这是一种均匀的网格数据结构,存储每个样本/像素的当前最近的击中深度。深度缓存法的大多数实现都假设样本/像素被放置本文档来自技高网
...

【技术保护点】
1.一种用于图像渲染的方法,包括通过计算系统:确定在三维空间中的方位,其中,所述方位基于由虚拟现实设备生成的传感器数据;基于确定的所述方位在所述三维空间中生成多个光线足迹;对于所述多个光线足迹中的至少一个光线足迹:识别要为所述光线足迹生成的对应数目的子样本;基于所述对应数目的子样本生成所述光线足迹中的一个或多个坐标;以及通过从所述一个或多个坐标中的每一个投影光线以测试与一个或多个物体的相交来确定在所述三维空间内定义的所述一个或多个物体的可见性;以及基于确定的所述一个或多个物体的可见性来生成所述一个或多个物体的图像。

【技术特征摘要】
2018.04.16 US 15/954,5231.一种用于图像渲染的方法,包括通过计算系统:确定在三维空间中的方位,其中,所述方位基于由虚拟现实设备生成的传感器数据;基于确定的所述方位在所述三维空间中生成多个光线足迹;对于所述多个光线足迹中的至少一个光线足迹:识别要为所述光线足迹生成的对应数目的子样本;基于所述对应数目的子样本生成所述光线足迹中的一个或多个坐标;以及通过从所述一个或多个坐标中的每一个投影光线以测试与一个或多个物体的相交来确定在所述三维空间内定义的所述一个或多个物体的可见性;以及基于确定的所述一个或多个物体的可见性来生成所述一个或多个物体的图像。2.根据权利要求1所述的方法,还包括:通过应用程序编程接口访问由应用程序指定的重要性图;其中,所述重要性图包括分别对应于所述多个光线足迹的多个重要性值;并且其中,基于由所述重要性图定义的所述多个重要性值中的第一重要性值来识别要为所述光线足迹生成的所述对应数目的子样本。3.根据权利要求2所述的方法,其中,所述多个重要性值存储在网格数据结构中;其中,所述多个光线足迹分别对应于多个像素;并且其中,所述光线足迹的所述对应数目的子样本的识别是基于在所述网格数据结构中的所述第一重要性值的相对位置和在所述多个像素中的所述光线足迹的对应像素的相对位置。4.根据权利要求2所述的方法,还包括:对于所述多个光线足迹中的第二光线足迹,基于由所述重要性图定义的所述多个重要性值中的第二重要性值来识别要为所述第二光线足迹生成的对应第二数目的子样本;其中,对应于所述光线足迹的所述第一重要性值被定义为比对应于所述第二光线足迹的所述第二重要性值更重要。5.根据权利要求4所述的方法,还包括:基于所述对应第二数目的子样本来生成所述第二光线足迹中的一个或多个第二坐标;其中,为所述光线足迹生成的所述一个或多个坐标的数目大于为所述第二光线足迹生成的所述一个或多个第二坐标的数目。6.根据权利要求4所述的方法,其中,所述光线足迹与所述图像中的注视区域相关联,并且所述第二光线足迹与所述图像中的在所述注视区域之外的区域相关联。7.根据权利要求1所述的方法,其中,所述多个光线足迹中的每一个由中心坐标和至少一个差值定义。8.根据权利要求1所述的方法,其中,基于在焦面图的区域内定义的点的密度来识别要为所述光线足迹生成的子样本的数目。9.一个或多个包含软件的计算机可读非暂时性存储介质,所述软件在被执行时能够操作以使一个或多个处理器执行操作,所述操作包括:确定三维空间中的方位,其中,所述方位是基于由虚拟现实设备生成的传感器数据;基于确定的所述方位在所述三维空间中生成多个光线足迹;对于所述多个光线足迹中的至少一个光线足迹:识别要为所述光线足迹生成的对应数目的子样本;基于所述对应数目的子样本生成所述光线足迹中的一个或多个坐标;以及通过从所述一个或多个坐标中的每一个投影光线以测试与一个或多个物体的相交来确定在所述三维空间内定义的所述一个或多个物体的可见性;以及基于确定的所述一个或多个物体的可见性来生成所述一个或多个物体的图像。10.根据权利要求9所述的介质,其中,所述软件在被执行时能够进一步操作以使所述一个或多个处理器执行操作,所述操作包括:通过应用程序编程接口访问由应用程序指定的重要性图;其中,所述重要性图包括分别对应于所述多个光线足迹的多个重要性值;并且其中,基于由所述重要性图定义的所述多个重要性值中的第一重要性值来识别要为所述光线足迹生成的所述对应数目的子样本。11.根据权利要求10所述的介质,其中,所述多个重要性值存储在网格数据结构中;其中,所述多个光线...

【专利技术属性】
技术研发人员:沃伦·安德鲁·亨特安东·S·卡普拉尼扬迈克尔·马拉亚历山大·南克维斯
申请(专利权)人:脸谱科技有限责任公司
类型:发明
国别省市:美国,US

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

1