CN110709893B - 高品质分层深度图像纹理光栅化方法 - Google Patents

高品质分层深度图像纹理光栅化方法 Download PDF

Info

Publication number
CN110709893B
CN110709893B CN201880036412.7A CN201880036412A CN110709893B CN 110709893 B CN110709893 B CN 110709893B CN 201880036412 A CN201880036412 A CN 201880036412A CN 110709893 B CN110709893 B CN 110709893B
Authority
CN
China
Prior art keywords
surfel
polygon
partition
camera window
partitioned
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
Application number
CN201880036412.7A
Other languages
English (en)
Other versions
CN110709893A (zh
Inventor
曼弗雷德·恩斯特
西尔维乌·博拉茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN110709893A publication Critical patent/CN110709893A/zh
Application granted granted Critical
Publication of CN110709893B publication Critical patent/CN110709893B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/529Depth or shape recovery from texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

在一个总的方面,一种方法可以包括组合分区多边形和生成的纹理映射,以形成用于在虚拟现实空间中进行三维渲染的场景的模型。纹理映射的生成可以包括将分区多边形中的分层深度图像样本投影到源相机窗口空间中的点,将该点投影回分区多边形中来作为表面元素(surfel),将surfel投影到目标相机窗口空间中的surfel占据区,将surfel占据区覆盖的像素中包括的子像素样本从目标相机窗口空间投影到分区多边形,将子像素样本从分区多边形投影到源相机窗口空间中,并基于样本在源相机窗口空间中的位置来对每个子像素样本应用颜色权重。

Description

高品质分层深度图像纹理光栅化方法
相关申请的交叉引用
本申请要求2017年11月1日提交的名称为“HIGH QUALITY LAYERED DEPTH IMAGETEXTURE RASTERIZATION(高品质分层深度图像纹理光栅化)”的美国非临时专利申请No.15/800,343的优先权,并且是其继续申请,该申请的公开内容以全文引用的方式并入到本文中。
技术领域
本文的描述大体涉及虚拟现实(VR)空间中的场景表示。
背景技术
基于图像的渲染(IBR)技术可以用来表示几何复杂的对象或场景、对其着色和渲染。分层深度图像(LDI)可以是一种基于图像的技术,其可用于表示和渲染具有复杂几何形状的对象。当将复杂的三维(3D)场景处理成能够在计算设备(例如,移动计算设备)上有效率地渲染的格式时,LDI可以用作中间表示。
发明内容
根据一个总的方面,一个或多个计算机的系统可以被配置成通过在系统上安装软件、固件、硬件或它们的组合来执行特定的操作或动作,该软件、固件、硬件或它们的组合在操作中使得系统执行该动作。一个或多个计算机程序可以被配置成通过包括指令来执行特定的操作或动作,该指令在被数据处理装置执行时使得该装置执行这些动作。
在一个总的方面,一种计算机实施的方法可以包括:由计算系统生成分区多边形的纹理映射,包括:将分区多边形中的分层深度图像(LDI)样本投影到源相机窗口空间中的点,将所述源相机窗口空间中的所述点投影回所述分区多边形中来作为表面元素(surfel),所述surfel具有在所述分区多边形中的所述LDI样本的位置处的相关联的颜色,将所述分区多边形中的所述surfel投影到目标相机窗口空间中的surfel占据区,所述surfel占据区覆盖所述目标相机窗口空间的图像平面中包括的至少一个像素,将所述至少一个像素中所包括的多个子像素样本中的每一个从所述目标相机窗口空间投影到所述分区多边形,将所述多个子像素样本中的每一个从所述分区多边形投影到所述源相机窗口空间中,所述投影确定所述多个子像素样本中的每一个在所述源相机窗口空间中的位置;以及基于每个子像素样本在所述源相机窗口空间中的位置,将颜色权重应用于每个子像素样本。所述计算机实施的方法还可以包括:由所述计算系统组合所述分区多边形和所述纹理映射,所述组合形成用于在虚拟现实空间中实时三维(3D)渲染的场景的模型。
实施方式可以包括以下特征中的一个或多个,单独地或与一个或多个其他特征。例如,LDI样本可以是所述分区多边形中所包括的分层深度图像(LDI)中所包括的多个LDI样本之一。将所述分区多边形中的所述LDI样本投影到所述源相机窗口空间中的所述点可以是针对包括在所述分区多边形中的所述多个LDI样本中包括的每个LDI样本来执行的。该至少一个像素可以用与surfel相关联的颜色填充。源相机窗口空间中的点可以放置在源相机窗口空间中包括的滤波器支持域(support)的中心。将源相机窗口空间中的点投影回分区多边形可以包括:将该点与包括滤波器支持域的最小大小矩形的顶点一起投影。将源相机窗口空间中的点投影回分区多边形可以包括:将滤波器支持域投影到分区多边形中,以及将由源相机窗口空间中的滤波器支持域限定的像素投影到分区多边形中。与surfel相关联的颜色可以基于像素的颜色。滤波器支持域可以是具有特定半径并且以源相机窗口空间中的点为中心的圆。滤波器支持域可以限定与源相机窗口空间中包括的像素重叠的形状。滤波器的形状可以限定从所述源相机窗口空间投影回所述分区多边形的、得到所述surfel的所述点的大小。将所述分区多边形中的所述surfel投影到所述目标相机窗口空间中的所述surfel占据区可以是针对所述分区多边形中所包括的每个surfel执行的。目标相机窗口空间可以是包括多个像素的图像平面。多个像素可以识别图像平面的分辨率。投影surfel的投影surfel占据区可以覆盖图像平面中像素中的一个或多个像素。像素中的一个或多个可以是与surfel相关联的颜色。颜色权重可以基于子像素距滤波器支持域的中心点的距离,该子像素包括在滤波器支持域中。
在另一个总的方面,一种计算机实施的方法可以包括:由计算系统针对分区多边形中所包括的每个surfel,向surfel指派颜色和不透明度,所述指派可以包括:将相应的源滤波函数与所述分区多边形中所包括的每个surfel相关联,所述源滤波函数确定由相应的surfel提供的所述分区多边形的alpha覆盖性的量,将目标滤波函数与所述分区多边形相关联,所述目标滤波函数提供surfel占据区到将完全不透明的分区多边形的投影,并且提供surfel的所指派的不透明度的、随着surfel的中心点距所述分区多边形内部的距离增加的下降;以及计算分区多边形的alpha覆盖性来作为所述分区多边形中所包括的surfel的水平集函数以及作为所述分区多边形的水平集函数。
实施方式可以包括以下特征中的一个或多个,单独地或与一个或多个其他特征组合。例如,surfel的水平集函数可以是以surfel的位置为中心的相关联的相应源滤波函数。分区多边形的水平集函数可以是相关联的目标滤波函数。相关联的目标滤波函数可以对应于分区多边形中包括的surfel的并集。与分区多边形中所包括的surfel的并集相对应的相关联的目标滤波函数可以在纹理空间中的每个点处取对该纹理空间点有贡献的surfel源滤波函数的最大值。滤波器的相同的解析形式能够用于所述源滤波函数和所述目标滤波函数二者。所述分区多边形中所包括的surfel被置于两个或更多个群组中,其中surfel的每个群组与特定的滤波函数相关联。
一个或多个实施方式的细节在附图和以下描述中阐述。其他特征根据说明书和附图以及根据权利要求书将显而易见。
附图说明
图1A是示出使用电缆连接到VR头戴式装置(与之对接)的移动计算设备的图。
图1B是示出移动计算设备使用无线连接而连接到VR头戴式装置(与之对接)的图。
图1C是示出包括(并入、容纳)移动计算设备的VR头戴式装置的示意图。
图1D是示出用户佩戴VR头戴式装置的图。
图2是用于创建三维(3D)虚拟现实(VR)环境并与之交互的示例系统的框图,该系统包括纹理光栅化器模块和纹理alpha计算模块。
图3A-E是示出分区平面中包括的表面元素(surfel)的光栅化的框图。
图4A是示出包括在源相机窗口空间中的滤波器的函数的示例曲线图的图。
图4B是示出投影到源相机窗口空间中的两个重叠surfel占据区的框图。
图5是示出包括多个surfel的分区多边形的框图。
图6是可用于生成分区平面的纹理映射的方法的示例的流程图。
图7是用于为分区平面的纹理映射计算alpha通道信息的方法的示例的流程图。
图8示出了可以用于实施这里描述的技术的计算机设备和移动计算机设备的示例。
图9是示出由纹理光栅化器为分区平面生成纹理映射的框图。
各附图中相似的附图标记表示相似的元素。
具体实施例
分层深度图像(LDI)可以是三维(3D)场景的基于图像的表示。LDI可以包括分层深度像素的二维(2D)阵列或群组。每个分层深度像素可以包括从单个相机位置或视角观察时沿着一条视线排布的LDI样本集合。该相机可以称为LDI相机。指代LDI样本的其他方式可以包括但不限于点、深度像素或分层深度像素样本。对于每个LDI样本,称为源相机的相机提供与该LDI样本相关联的数据。LDI像素的表示可以包括颜色信息、alpha通道信息、深度信息(像素与相机之间的距离)、LDI样本的源相机的标识符(例如,指向相机的编号、指针或对相机的引用)以及能够支持在三维(3D)空间中渲染LDI的其他属性。例如,alpha通道信息可以用于确定像素的不透明度水平。
分区算法可以将场景的LDI表示中包括的LDI样本收集或分组到一个或多个分区中。例如,分区可以是LDI样本的子集。分区平面可以是3D空间中的平面,其基本包括属于该分区的LDI样本(例如,包括其全部,少于全部,或其中至少一个)的位置。平面可以是无限的二维(2D)几何对象。分区多边形可以是包含在分区平面中的3D多边形,该分区平面包含属于该分区的LDI样本的位置。
分区算法可以用作更大的图像处理管线的一部分,该管线可以将基于图像的场景数据(例如,场景的LDI表示)处理成分区。每个分区可以包括包含在场景的LDI表示中的完整LDI样本(或点)的集合的子集。对于每个分区,可以确定(计算)分区平面,使得分区平面基本包括属于一个分区的LDI样本(例如,包括其全部、少于全部或其中至少一个)。3D空间中的多边形可以从包括在分区和分区平面中的LDI样本子集来确定(计算)。多边形可以位于(定位或放置于)分区平面中。多边形可以基本包括分区内所有LDI样本(例如,包括其全部、少于全部或其中至少一个)的位置。
然后颜色被添加到(映射到)每个多边形。为了提供颜色,分区中包含的LDI样本被光栅化,以便为每个分区创建纹理映射。因此,可以使用例如RGBA纹理(红色、绿色、蓝色、alpha纹理,其中alpha是不透明度通道)将每个分区转变成纹理映射的多边形。
这里描述的实施方式包括用于根据场景的LDI表示在3D空间中生成无孔洞、抗混叠(anti-alias)、清晰的纹理的有效率的系统和方法。计算系统可以生成针对多边形的纹理映射。该生成可以包括选择包括源相机窗口空间的源相机。源相机可以是生成多个LDI样本以包含在LDI中的相机。在一些实施方式中,可能无法保证相同分区内的LDI样本已经被相同的源相机捕获(或生成,或包括在LDI中)。通常,一个分区的LDI样本可以由多个源相机(例如,多于一个的源相机)捕获。
在其分区平面中的LDI样本可以投影到源相机窗口空间中的一个点。源相机窗口空间可以包括多个像素。该点可以被投影到源相机的图像平面中包括的至少一个像素中。然后,该点可以从源相机窗口空间投影回分区平面。投影可以在分区平面中点的位置处产生表面元素(surfel)。surfel的大小可以由限定在源相机窗口空间中的图像滤波器来确定,该图像滤波器可以被称为源滤波器。基于该点在源相机的图像平面中投影到的像素的颜色,surfel可以具有相关联的颜色。可以选择包括目标相机窗口空间的目标相机。分区平面中的surfel可以投影到目标相机窗口空间中的surfel占据区(footprint)。surfel占据区可以覆盖、重叠或包括目标相机窗口空间的图像平面中包括的一个或多个像素。一个或多个像素可以用与surfel相关联的颜色填充。该一个或多个像素中的每一个可以包括多个像素样本或点。多个像素样本中的每一个可以从目标相机窗口空间投影到分区平面。多个像素样本中的每一个可以从分区平面投影到源相机窗口空间中,从而识别源相机窗口空间中每个像素样本的当前位置。基于源相机窗口空间中每个像素样本的所识别的当前位置,可以将颜色权重应用于每个像素样本。分区平面和纹理映射可以被组合以形成场景模型,用于在虚拟现实空间中以三维(3D)实时渲染。
图9是示出由纹理光栅化器为分区平面904生成纹理映射的框图。分区平面904中的点902可以被投影到源相机窗口空间906中,从而产生投影点908。投影点908可以是源相机窗口空间中的像素的一部分或包括在其中。该像素可以具有相关联的颜色。投影点908可以被投影回到分区平面904中,从而产生具有surfel占据区920的surfel 922。一颜色与surfel 922相关联,该颜色是与包括投影点908的像素相关联的颜色。surfel 922和surfel占据区920可以被投影到目标相机窗口空间936中,从而产生投影的surfel占据区930和投影的surfel 932。被投影surfel占据区930覆盖或重叠的一个或多个像素可以用与surfel922相关联(并且现在与投影surfel 932相关联)的颜色上色或填充。
投影surfel占据区930和投影surfel 932连同由投影surfel占据区930重叠的点一起被投影回分区平面904,然后从分区平面904投影到源相机窗口空间906。滤波器910可以重叠并包括投影surfel 914和点912a-e。点912a-e是为了说明的目的而示出的。在一些实施方式中,滤波器可以重叠多于五个点,如图9的示例所示。滤波器910的滤波函数可以为滤波器910中包括的(例如,被其重叠的)每个点提供或指派该点的颜色的权重。该点的颜色权重可以基于该点距投影surfel 932的距离。
投影的surfel 932和点912a-e被投影回到分区平面904中,在分区平面904中,纹理光栅化器可以使用每个点的指派的颜色和颜色权重来生成分区平面904的纹理映射。例如,这些点可以被称为子像素。
图1A-图D是根据本文描述的实施方式的、可被配置成处理分层深度图像(LDI)的各种类型的虚拟现实(VR)头戴式设备的图。在本文的后面将更详细地描述图1A-图1D。
图2是用于创建三维(3D)虚拟现实(VR)环境并与之交互的示例系统200的框图,该系统包括纹理光栅化器模块240和纹理alpha计算模块222。例如,图2示出了可以被包括在示例计算设备224中的组件,该示例计算设备224与VR头戴式装置228对接和/或被包括在VR头戴式装置228中(容纳在其中,并入其中)。
参考图1A-C,计算设备224可以是移动计算设备104、移动计算设备114和/或移动计算设备124。VR头戴式装置228可以是VR头戴式装置108、VR头戴式装置118和/或VR头戴式装置128。计算设备224可以包括电路和软件(应用),其可以在VR头戴式装置228中包括的显示设备上生成和提供图像数据和信息。在一些实施方式中,如图2所示,当计算设备224被包括在VR头戴式装置228中(是VR头戴式装置228的一部分,被并入在VR头戴式装置228中)时,包括在计算设备224中的显示设备(屏幕226)可以是VR头戴式装置228的显示设备。在一些实施方式中,VR头戴式装置228中包括的屏幕可以是VR头戴式装置228的显示设备。在这些实施方式中,计算设备224可以连接到VR头戴式装置228中包括的屏幕(与之对接)。
图3A-E是示出分区平面中包括的表面元素(surfel)的光栅化的框图。在一些实施方式中,参考图2,在计算系统252中执行的一个或多个应用可以生成从VR头戴式装置(头戴盒)(例如VR头戴式装置228)中的视野内的各个位置的场景的图像。每个场景图像可以包括多个像素样本或点,这些像素样本或点包括相关联的颜色信息、深度信息和表面法向量的值。点可以是3D空间中没有体积、没有大小和/或没有范围的位置。点可以表示从源相机中心穿过像素中心看到的像素位置。图像视图中的像素数可以基于图像的分辨率来确定。
例如,像素在被投影到表面的表示中时,可以被认为是surfel。surfel可用于实时(以交互帧速率)有效率地渲染3D空间中的复杂几何对象。surfel可以包括LDI样本。surfel可以是一个缺少任何特定连通性的基元。因此,surfel可以用于建模动态几何,因为不需要计算拓扑信息,例如邻接信息。surfel的属性可以包括但不限于颜色、3D空间中的位置、半径、不透明度和法向量。
每个场景图像可以被组装成数据结构(例如,LDI),该数据结构可以用于场景的简化版本的表示,以便由VR应用220在VR空间中实时地进行3D渲染(绘制)。例如,多个LDI样本可以被分组到多个分区中。分区可以包括代表3D场景的多个LDI样本的子集。分区多边形可以基本包括分区中的特定位置处的LDI样本(例如,包括其全部、少于全部或其中至少一个)。分区多边形可以位于(处于)3D空间中的平面中的位置处,该平面可以被称为分区平面。在一些实施方式中,四边形剖分(quadrangulation)算法可以创建多边形近似,其可以用于创建一个或多个分区。在一些实施方式中,迭代分区算法可以创建多边形近似,该多边形近似可以用于创建一个或多个分区。Pharr等人于2016年8月24日提交的、同时提交并且共同拥有的美国专利申请序列号15/246,040中描述了四边形剖分算法和迭代分区算法,该申请以全文引用的方式并入到本文中。
可以为每个分区创建(例如,生成)纹理映射。创建多边形的算法可用于针对每个分区使用分区平面和分区内的LDI样本集创建3D多边形。每个分区多边形及其相关联纹理映射可以被组合以形成场景的模型(简化表示),用于由包括在计算设备224中的VR应用220在VR空间中实时渲染(绘制)。VR应用220在渲染场景模型时执行的算法可以基于用于创建分区平面中的每一个的算法。
例如,输入场景可以是包含分布在立方体六个面中的60,000个LDI样本的立方体。分区算法可以找到立方体的六个面,并将每个面中包括的LDI样本分成相应的分区多边形。每个分区可以被认为是一个平面,它可以包括60,000个点中的10,000个点。
参考图3A,包括在分区中的LDI样本被光栅化,以便为分区多边形创建(生成)纹理映射。点302可以是分区平面304中包括的许多LDI样本之一的位置。分区平面中包含的每个LDI样本的颜色被并入到纹理映射中。纹理光栅化算法(例如,作为纹理光栅化器模块240中包括的纹理光栅化器应用的一部分的纹理光栅化算法)可以为包括RGBA纹理的给定分区多边形(例如,包括在分区平面304中)创建(生成)纹理映射。
例如,参考图3A-E,纹理光栅化器可以选择包括源相机窗口空间306的源相机,源相机窗口空间306可以是源相机的图像平面。源相机可以生成并提供LDI的LDI样本。纹理光栅化器可以选择包括目标相机窗口空间336的目标相机,目标相机窗口空间336可以是目标相机的图像平面。纹理光栅化器可以选择LDI样本的源相机和给定分区的目标相机,其中该分区包括来自LDI的样本。一般来说,同一分区内的LDI样本可以由几个源相机生成,而不是由单个源相机生成。在一些实施方式中,目标相机的选择是基于具有分区平面最佳视图的相机。在一些实施方式中,源相机是LDI相机。在一些实施方式中,源相机是提供(生成)正被光栅化的LDI样本的相机。在一些实施方式中,目标相机可以是虚拟相机。
表示LDI样本位置的每个点可以被包括在可以投影到源相机窗口空间的分区中。参考图3A,源相机窗口空间306可以包括多个像素(例如,像素360a-l)。当被投影时,一个点(例如,点302)被投影到源相机(源相机窗口空间306)的图像平面中包括的至少一个像素(例如,像素360f)中,从而产生投影点308。图像处理滤波器可以被称为源滤波器。源滤波器可以是在源相机窗口空间306上限定的标量值滤波函数。滤波函数可以在源相机窗口空间306内的不同位置被评估(应用或居中)。例如,参考图3A,滤波函数以点308为中心。滤波函数在示出为滤波器310的特定大小和形状的区域中可以是非零的。示出为滤波器310的特定大小和形状区域可以被称为位于点308(滤波器310的中心)周围(以点308为中心)的滤波器支持域(support)。滤波器支持域(例如,示为滤波器310)是具有特定的大小和形状的区域(例如,如图3A-3B的示例所示的具有特定半径的圆),并且被包括在源相机窗口空间306中。滤波器支持域(例如,示出为滤波器310)围绕投影点308放置。滤波器支持域(例如,示出为滤波器310)可以限定一形状,该形状可以与源相机窗口空间306中包括的像素完全或部分重叠。在图3A所示的示例中,滤波器支持域(例如,示为滤波器310)完全或部分地与阴影像素(例如,像素360b-c、像素360e-f和像素360h-l)重叠,阴影像素包括含投影点308的像素360f。滤波器支持域的形状(例如,显示为滤波器310)也可以限定投影点302在源相机窗口空间306中的大小。
参考图3A-3B,当投影回到分区平面304中时,投影点308与滤波器支持域(例如,示出为滤波器310)一起产生在分区平面304中点302的位置处示出的LDI样本处的surfel322。例如,多条光线(例如,光线311a-d)可以从包括滤波器支持域(例如,示出为滤波器310)的源相机窗口空间中的矩形引伸到分区平面304。该矩形可以是源相机窗口空间中的、包括(完全包括)滤波器支持域(例如,示出为滤波器310)的最小(最小大小)的矩形。光线与分区平面304的相交可以为surfel 322限定surfel占据区320。这里描述的,并且例如在图3A-E中示出的,是使用投影识别surfel占据区的一个替选过程。在一些实施方式中,可以使用光线跟踪来识别surfel占据区。
圆形滤波器(例如,滤波器支持域(例如,显示为滤波器310))可以限定以源相机的图像平面(例如,源相机窗口空间306)中的点302为中心的surfel(例如,surfel 322)的大小。滤波器支持域(例如,示出为滤波器310)(例如,具有特定半径的圆,如图3A-3B的示例所示)连同投影点308一起可以被投影回分区平面304中。在一些实施方式中,可以识别源相机窗口空间中的矩形(例如,最小矩形、最小大小的矩形),该矩形包括(环绕或包围)滤波器支持域(例如,示出为滤波器310)。对于图3A-C所示的示例,将所识别的矩形的四个顶点中的每一个投影回分区平面304,产生四边形surfel占据区(例如,surfel占据区320)。此外,surfel占据区320提供(限定)以分区平面304中的点302为中心的surfel的大小。surfel占据区320是surfel 322的3D形状。
surfel 322的颜色可以是对应的LDI样本的颜色。与滤波器支持域(例如,示出为滤波器310)相关联的大小可以确定surfel占据区的大小。在一些实施方式中,对于每个surfel占据区,surfel占据区的大小可以大致相同。附加地或替选地,源相机相对于分区平面的位置也可以有助于确定surfel占据区的大小。
当第一源相机的位置比第二源相机的位置更靠近分区平面时,从第一源相机投影到分区平面的像素得到的surfel占据区将比从第二源相机投影到分区平面中的像素所得到的surfel占据区更大。可以为每个surfel选择最佳的源相机。因此,每个surfel可以与不同的源相机相关联。
如上所述,分区平面304可以包括表示场景图像的多个LDI样本的子集。将包括在分区平面304中的多个LDI样本投影到源相机窗口空间306中并且然后投影回到分区平面304中,可以得到包括具有变化的surfel占据区的多个surfel的分区平面304。
分区平面中包括的每个surfel都有相关联的颜色。与surfel相关联的颜色可以是来自源相机的投影像素的颜色。例如,与surfel 322相关联的颜色可以是像素360f的颜色。为包括在分区多边形中的surfel创建纹理映射提供了在VR空间中以3D实时渲染(绘制)场景中的分区多边形所需的颜色。
通常,分区可以被输入到纹理光栅化器。纹理光栅化器可以产生并输出针对分区的纹理映射和矩阵。输出纹理映射可以包括RGBA纹理。该矩阵可以将点从纹理空间投影到LDI眼空间(eye-space)(LDI相机的眼空间)中的分区平面上。
纹理光栅化器可以限定目标相机。在一些实施方式中,目标相机可以与源相机相同。在某些情况下,目标相机可能是与源相机不同的相机。参考图3C,包括在分区平面中的surfel(例如,包括在分区平面304中的surfel 322)可以被投影到目标相机窗口空间(例如,目标相机窗口空间336)中。surfel 322的投影包括将点302(投影点318)投影到像素340e中,并投影surfel占据区320(投影的surfel占据区330)。
参考图3A-E,纹理光栅化器可以将纹理映射(纹理的图像)限定为目标相机窗口空间336中的像素。对于surfel 322,将分区平面304投影到目标相机窗口空间336中得到包括子像素样本312a-e的surfel占据区330。surfel(例如,由surfel占据区330限定的surfel322)中包括的每个子像素样本(例如,子像素样本312a-e)可以从纹理空间(例如,目标相机窗口空间336)投影回分区平面(例如,分区平面304)上。然后,从纹理空间(例如,目标相机窗口空间336)投影回分区平面(例如,分区平面304)的surfel(例如,由surfel占据区330限定的surfel 322)中包括的每个子像素样本(例如,子像素样本312a-e)可以从分区平面(例如,分区平面304)投影到源相机窗口空间(例如,源相机窗口空间306)中。在源相机窗口空间(例如,源相机窗口空间306)中,可以评估surfel的源滤波器(surfel 322的滤波器支持域(例如,示出为滤波器310))以计算每个子像素样本的alpha值。子像素样本的颜色可以是surfel的颜色,其是surfel所来源于的LDI样本的颜色。属于目标相机窗口空间中相同像素的子像素样本的颜色和alpha值可以使用与每个子像素相关联的alpha值作为权重来平均化。然后,计算的平均值可以是该像素的颜色和alpha值,导致相邻surfel的平滑融合。
目标相机窗口空间可以是图像平面。图像平面可以包括像素340a-l。目标相机的图像平面具有基于包括的像素的数量的相关联的分辨率。例如,如图3A-C所示,目标相机的图像平面(目标相机窗口空间336)的分辨率与源相机的图像平面(源相机窗口空间306)的分辨率相同。在一些实施方式中,目标相机的图像平面的分辨率可以不同于源相机的图像平面的分辨率。在一些实施方式中,源相机的分辨率与目标相机的分辨率不相同或不相关。
目标相机窗口空间336可以包括多个像素340a-l。投影surfel占据区330可以包括(覆盖)在目标相机窗口空间336中所包括的像素340a-i。参考图3C,由surfel占据区330包括(覆盖)的像素340a-i示出为阴影。被投影的surfel占据区330覆盖(与其重叠)的像素340a-i可以用与surfel 322相关联的颜色填充(上色)。像素340a-i可以为surfel 322限定纹理(纹理映射)。
投影surfel占据区330可以用投影surfel 332的颜色填充。在一些实施方式中,部分包括在投影surfel占据区330中(被投影surfel占据区330重叠)的一个或多个像素可以用与投影surfel 332相关联的颜色填充。例如,像素340a-d和像素340f-i由投影的surfel占据区330部分覆盖。
九个像素(例如,像素340a-i)被示为包括在投影的surfel占据区330中(与其重叠)。在一些实施方式中,少于9个像素可以包括在投影的surfel占据区330中(与其重叠)。在一些实施方式中,多于九个的像素可以包括在投影的surfel占据区330中(与其重叠)。
参考图3C-D,像素可以包括多个子像素样本。例如,一个像素中可以包括多个子像素样本(例如,八个子像素样本、十六个子像素样本)。为了说明的目的,图3C-D示出了子像素样本312a-i,示出了由投影surfel占据区330覆盖的每个相应像素340a-i的子像素样本。每个像素340a-l可以包括多于单个子像素样本。由投影的surfel占据区330覆盖的子像素样本(例如,子像素样本312a-i)可以被投影回到分区平面304中,从而产生包括投影的子像素样本(例如,分别为投影的子像素样本342a-i)的投影的surfel占据区340。投影包括对点318进行投影,从而在投影surfel 332中产生投影点344。
图3D所示的投影surfel占据区340与图3C所示的surfel占据区320具有相同的大小、相同的形状,并且在3D空间中处于相同的位置。与投影surfel 332相关联的颜色是与surfel 322相关联的颜色。
参考图3C-E,包括在分区平面中的投影surfel占据区中的每个子像素样本可以被投影回源相机窗口空间。投影可以识别源相机窗口空间中子像素样本的当前位置。例如,可以将子像素样本342a-i作为投影的子像素样本362a-i投影回源相机窗口空间306中。例如,投影的子像素样本362a识别投影的子像素样本342a的、在源相机窗口空间306中的位置,投影的子像素样本342a是子像素样本312a从目标相机窗口空间336的投影。例如,子像素样本312a可以作为像素340a中包括的子像素在目标相机窗口空间336中生成。
滤波器支持域(例如,示出为滤波器310)可以具有相关联的函数,该函数为滤波器支持域(例如,示出为滤波器310)中包括的(被其重叠的)每个像素样本或点提供该点颜色的权重。该点的颜色权重可以基于该点离位于滤波器支持域(例如,示为滤波器310)中心的点(例如,投影点354)的距离。当点354和surfel 332投影回源相机窗口空间306时,可以产生以点354为中心的surfel 352。例如,点可以是子像素。
图4A是示出包括在源照相机窗口空间(例如,源照相机窗口空间306)中的滤波器(例如,滤波器支持域(例如,示为滤波器310))的函数的示例曲线图400的图。在图4所示的示例中,函数是钟形曲线。随着点的位置变得离中心点更远,点的颜色权重(例如颜色饱和度)降低。例如,点354的颜色将具有最大的权重(最饱和)。随着点位置与点354距离增加,该点的颜色权重(颜色饱和度)降低。参考图3E,点362a-i已经作为钟形曲线上的点被包括。
钟形曲线的使用导致滤波器支持域(例如,示为滤波器310)中包括的(被滤波器支持域覆盖的)点的颜色饱和度平滑下降。在一些实施方式中,颜色可能下降到几乎透明(完全没有颜色)。
参考图3A-E,分区平面304可以包括多个surfel和相关联的surfel占据区。每个surfel及其相关联的占据区可以被投影回源相机窗口空间306,并且可以应用滤波器支持域(例如,示出为滤波器310)。在某些情况下,一个surfel占据区可能与相邻的surfel占据区重叠。使滤波器支持域(例如,显示为滤波器310)的函数是钟形曲线,确保相邻surfel之间的平滑融合。改善了相邻surfel颜色的融合。
一个分区可以包括多于一个的surfel(例如,两个或更多个surfel)。在一些实施方式中,每个surfel可以与不同的源相机相关联。在一些实施方式中,每个surfel可以与相同的源相机相关联。在一些实施方式中,一些surfel可以与第一源相机相关联,而其他surfel可以与第二源相机相关联。例如,可以为特定的surfel挑选最佳的源相机。
基于包括在滤波器中心的surfel的颜色值(例如,surfel 332的颜色,其为surfel352的颜色),可以确定(计算)包括在surfel占据区(例如,surfel占据区340)中的、被投影回源相机窗口空间(例如,源相机窗口空间306)的并且包括在滤波器(例如,滤波器支持域(例如,示出为滤波器310))中的子像素样本的颜色。方程式1示出了确定目标相机窗口空间336中的子像素样本p1的颜色(Color(p1)的示例计算。
方程式1:
其中p1是子像素样本,n是具有包括(覆盖)子像素样本p1的占据区的surfel的数量,i是n个surfel的索引,colori是surfeli的颜色,weighti是子像素样本p1处的surfeli的权重。
图4B是示出投影到源相机窗口空间中的两个重叠surfel占据区的框图。所述surfel占据区被投影到源相机窗口空间410中(其类似于图3A-E所示的源相机窗口空间306)。投影surfel占据区中包括的像素样本中每一个的颜色由滤波器支持域(例如,示出为滤波器412)和滤波器支持域(例如,示出为滤波器414)的相应滤波函数来确定。例如,滤波器412和滤波器414的滤波函数可以是如图4A所示的钟形曲线。在一些实施方式中,surfel形状的表示可以与滤波器支持域的形状相同(或近似相同)。随着子像素样本离surfel中心(例如,surfel 416中心和surfel418中心)定位更远,颜色的强度(饱和度)降低。surfel中心的颜色权重是最大值。非surfel中心的子像素样本的颜色权重随着surfel中心与子像素样本之间的距离增加而减小。
子像素样本422可以包括在滤波器支持域(例如,示出为滤波器412)和滤波器支持域(例如,示出为滤波器414)中(由其覆盖),如重叠区420所示。子像素样本422可以具有与surfel 416中心相关联的颜色值的第一加权颜色值和与surfel 418中心相关联的颜色值的第二加权颜色值。子像素样本422的第一颜色值的权重可以取决于surfel 416的中心与子像素样本422之间的距离。子像素样本422的第二颜色值的权重可以取决于surfel 418的中心与子像素样本422之间的距离。子像素样本422的颜色可以是surfel 416的中心与surfel 418的中心的颜色融合的色调。重叠区420中包括的子像素样本的融合颜色的色调可以取决于重叠区域中的点的位置。
例如,surfel 416中心的子像素样本408可以是红色的。surfel 416中心可以是饱和红色,并且surfel 416中心的颜色权重可以是最大颜色权重值。例如,surfel 418中心的点406可以是蓝色的。surfel 418中心可以是饱和蓝色,并且surfel 418中心的颜色权重可以是最大颜色权重值。重叠区域420中的滤波器412和滤波器414中包括的(被其覆盖的)子像素样本422可以具有红色加权颜色值和蓝色加权颜色值。子像素样本422的颜色可以是紫色色调。重叠区420中包括的子像素样本的紫色色调可以取决于重叠区域中的点的位置。重叠区中像素样本颜色的融合可以导致surfel之间颜色的平滑融合。
如这里参考图3A-E和4A-B所描述的,可以将surfel光栅化成3D图像的网格平面。用于执行光栅化的算法可以以分区平面作为输入,并产生纹理映射和矩阵作为输出。分区平面可以包括LDI眼空间中的平面和LDI眼空间中的surfel阵列。每个surfel可以与源相机(例如,生成surfel的相机)相关联。纹理或纹理映射可以在目标相机的窗口空间(例如,目标相机窗口空间)中生成。在一些实施方式中,目标相机可以是LDI参考相机。在一些实施方式中,目标相机可以是具有分区平面的更好视图的相机。
可以在源相机的窗口空间(例如,源相机窗口空间)中限定surfel的形状。surfel的形状可以通过在surfel的位置放置滤波器核(例如,通过在源相机窗口空间中放置滤波器)来限定。surfel的3D形状可以通过将滤波器的重构投影回分区平面中来确定,从而在分区平面中的LDI眼空间中产生surfel占据区。然后将surfel占据区投影到目标相机窗口空间中,并光栅化成纹理(例如,生成纹理映射)。
例如,可以使用低偏差样本在多采样帧缓冲器中执行光栅化。surfel占据区中包括的每个像素样本可以从目标相机窗口空间投影回分区平面。在一些实施方式中,可以生成矩阵,该矩阵在将像素样本或点从目标相机窗口空间投影到分区平面(例如,在LDI眼空间)时使用。一旦处于分区平面中,像素样本就可以从分区平面投影到源相机窗口空间。在源相机窗口空间中,可以使用滤波器来计算每个投影像素样本的alpha值(颜色饱和度值)。使用滤波器来计算每个像素样本的alpha值可以确保相邻surfel的平滑融合。
图5是示出包括多个surfel的分区多边形504的框图500。分区多边形504中示出的点或斑点(点506)表示分区多边形504中包括的每个surfel的中心点。例如,分区多边形504可以是如图3A-E所示的分区平面304。如本文所描述,特别是参考图3A-E,可以为分区平面(例如,分区多边形504)创建纹理映射。纹理映射是从包括在分区平面中的surfel(例如,包括在分区多边形504中的surfel)创建的(从其计算的)。点506被光栅化,以便为分区多边形504创建纹理映射。如上所描述,这些点506中的每一个具有相关联的颜色,包括红色(R)、绿色(G)和蓝色(B)颜色值,以及相关联的alpha通道信息,其是不透明度值(A)。分区多边形504可以转变成纹理映射的多边形,该纹理映射的多边形包含并使用RGBA纹理。
在一些实施方式中,为了实现分区之间的平滑过渡,相邻分区可以在它们可能重叠的区域中融合。为分区多边形(例如,分区多边形504)的纹理映射计算alpha通道信息可能涉及满足某些目标或标准,使得从特定分区多边形到邻近特定分区多边形的分区多边形有平滑过渡。
surfel的不透明度值(A)可以是分区多边形的纹理映射中包含的alpha值或分量。不透明度值为1(例如,A=1)导致不透明(完全不透明,最大不透明度)surfel。不透明度值为零(例如,A=0)导致透明的surfel。通常,位于分区多边形内部的surfel将具有等于1的不透明度值(例如,A=1)。位于分区多边形内部且相关联的不透明度值等于1的surfel将是不透明的(不透明)。
分区多边形可以有软边,使得部分遮挡其他对象的对象剪影可以是无混叠的。作为补充或作为替选,分区多边形可以具有软边,以便在三维空间中渲染对象时实现相邻分区多边形之间的平滑过渡。为了在分区多边形边界周围在所有方向上实现软边,随着点与位于分区多边形中心的点的距离增加,点的alpha值可以以相同的速度衰减(或减少相同的量)。纹理映射的alpha值可以在分区多边形边界周围在所有方向上以相同的速度衰减(以相同的量减少)。
在一些情况下,当分区算法在分区阶段期间将场景的LDI表示中包括的LDI像素样本分组为多个分区时,与场景中包括的大对象相关联的信息(例如,RGBA)可以被细分为多于一个的分区多边形(包括在其中)。例如,给定具有大表面空间的对象,可以为单个大表面产生(创建或生成)几个分区多边形。在对象的一个分区多边形与相邻分区多边形相交、邻接或重叠的位置处,为了避免在3D空间中渲染对象时的缝隙或孔洞,来自一个分区多边形的软边应该无缝且均匀地融合到相邻分区多边形的相邻软边中。在这些情况下,生成没有缝隙或孔洞的纹理映射非常重要,这样就不会在3D空间中的大对象渲染中引入伪影,并且因此可以实现跨渲染对象的完全不透明度。对于同一对象,应在相邻分区多边形边界之间和跨相邻分区多边形边界保持完整的纹理覆盖性。
LDI融合算法可以确保分区多边形的纹理映射中包括的每纹理元素(texel)一个surfel的最小密度。最小密度可以针对分区多边形的内部。通常,分区多边形中包括的surfel的密度可以基于一个或多个因素而变化,这些因素可以包括但不限于分区多边形中的点的多个相机视图和透视收缩。可以执行纹理alpha计算以确定分区多边形中及其周围(邻近)点的alpha值的算法可以考虑分区多边形中包括的surfel密度的变化。
例如,参考图5,点506表示分区多边形504中包括的surfel的中心点。点506中每一个可以被认为是在一个surfel的中心。图500示出了每个surfel的对应alpha纹理,通常示为alpha纹理512(分区多边形504的较浅部分)。在图5的示例中,与导致更远分开的surfel(surfel的密度更低)的、位于图像右侧的点的群组(总体示出为点510)相比,位于分区多边形504中包括的图像左侧的点的群组(总体示出为点508)导致更靠拢的surfel(surfel的密度更高)。分区多边形504的边缘514a-d可以在所有方向上保持柔软(非硬化),而与位于分区多边形504内部的surfel密度无关。例如,位于分区多边形504中包括的图像左侧的更高密度surfel(总体示出为点508)没有使分区多边形504的边缘514a-d硬化。
当计算分区多边形(例如,分区多边形504)的纹理映射的alpha通道信息时,第一个目标可以是确定分区多边形中包括的每个surfel的滤波函数或形状。图4A示出了源窗口空间中的之后被投影回分区多边形的一个surfel的滤波函数的示例。分区多边形中包括的每个surfel都具有相关联的滤波函数。在一些实施方式中,相同的滤波函数可以与分区多边形中的每个surfel相关联。在一些实施方式中,分区多边形中的每个surfel可以与独特的滤波函数相关联。在一些实施方式中,分区多边形中包括的surfel可以被置于两个或更多个群组中,其中每个surfel群组与特定的滤波函数相关联。每个滤波函数捕获surfel的颜色和不透明度(RGBA)。最佳滤波函数可以为分区多边形提供两个性质。
第一性质可以针对分区多边形的内部,第二性质可以针对分区多边形的边缘。对于分区多边形内部的第一性质,最佳滤波函数可以提供surfel占据区到分区多边形中的投影,使其在没有任何孔洞或缝隙的情况下完全不透明,而与surfel之间的间距无关(例如,surfel之间的间距可以不均匀或在surfel之间不同)。对于分区多边形的边缘的第二性质,最佳滤波函数可以提供surfel不透明度的、随surfel的中心点离分区多边形内部的距离增加(例如,距离分区多边形内部大约中心处的surfel的点)的下降。最佳滤波函数可以确保分区多边形的内部是完全不透明的,并且随着surfel从分区多边形的内部朝向分区多边形的边缘的距离增加,针对surfel出现不透明度的期望的下降(从不透明到透明)。
surfel滤波器类型和大小的选择可以基于在分区多边形中实现相邻surfel边缘的适当融合。这可以应用于位于分区多边形内部的surfel以及位于分区多边形边缘的surfel。
当计算分区多边形(例如,分区多边形504)的纹理映射的alpha通道信息时,第二个目标可以是在3D空间中准确渲染对象表面,其中渲染没有任何缝隙、孔洞或其他伪影。纹理映射的alpha通道信息的计算可以确保在相邻分区多边形的边缘之间提供平滑过渡,并且从一个分区多边形到另一个相邻分区多边形没有锐边过渡。在一些实施方式中,第一分区多边形的边缘可以接触、抵接相邻的第二分区多边形的边缘或与相邻的第二分区多边形的边缘稍微重叠。例如,可以从对象的完全不透明的表面创建(生成)每个分区多边形。因此,每个分区多边形不包括任何不透明度的缝隙、孔洞或间隙。当对象的渲染发生在3D空间中时,相邻的分区多边形应该产生对象的实心不透明表面,而对象的渲染的表面的不透明度没有任何缝隙、间隙或孔洞。在一些实施方式中,第一分区多边形和第二分区多边形可以在每个分区多边形的相邻边缘上稍微重叠。第一分区多边形和第二分区多边形的纹理映射的alpha通道信息的计算可以确保对象表面的重叠区域的渲染是完全不透明的并且没有缝隙,从而导致分区多边形之间的边缘的不透明,从而导致对象的原始表面的准确渲染。
第一分区多边形和第二分区多边形均可以表示对象的不透明表面,并且可以彼此相邻。可以生成每个分区多边形的边缘的透明度,使得当第一分区多边形的边缘覆盖在第二分区多边形的边缘上时,在对象表面的渲染中不会出现间隙或孔洞。相邻分区多边形的边缘重叠导致对象的渲染表面中没有透明的区域(对象的渲染表面中的区域的分区多边形的两个重叠边缘的总和都是完全不透明的)。为分区多边形的纹理映射计算alpha通道信息将不透明度值(A)和颜色值(RGB)指派给沿着分区多边形的边缘定位的surfel,使得相邻边缘的重叠总和提供从一个分区多边形到另一个分区多边形的平滑融合或过渡。
与分区多边形中包括的相应surfel相关联的滤波函数可以确定由该surfel提供的分区多边形的alpha覆盖性的量。分区多边形中包括的surfel的覆盖性信息可用于确定纹理映射的alpha分量。用于确定alpha覆盖性的量的滤波器可以称为源滤波器。例如,参考图3A-E和4A,示例源滤波器可以是包括在源相机窗口空间306中的滤波器支持域(例如,显示为滤波器310)。
分区多边形的alpha覆盖性可以作为分区多边形中包含的surfel的水平集(levelset)函数来计算。分区多边形的水平集函数可以使用可由重构滤波器使用的相同类型的二维各向同性钟形函数来构造。
两变量的函数f(x,y)的水平集可以在二维xy平面中产生曲线(例如,水平曲线)。三变量的函数f(x,y,z)的水平集可以产生三维空间中的表面(例如,水平表面)。
单个孤立surfel的水平集函数可以是以surfel位置为中心的滤波函数。整个分区的水平集函数可以被限定为与所有surfel的并集相对应的水平集函数。例如,在纹理空间中的每个点处,于所有surfel的并集相对应的水平集函数可以在对该纹理空间点有贡献的所有surfel水平函数上取最大值(例如,基于几何操作的水平集)。与分区多边形中包括的相应surfel相关联的滤波函数可以针对该滤波函数覆盖的像素,从像素样本或像素中包括的点重构纹理映射的颜色值(RGB颜色分量)和不透明度值(A)。用于重构的滤波函数可以被称为目标滤波器。
在一些实施方式中,源滤波器和目标滤波器二者可以使用滤波器的相同解析形式。在一些实施方式中,可以使用高斯钟形滤波器。高斯滤波器的脉冲响应是高斯函数。参考图4A,滤波函数的示例曲线图400可以是高斯钟形滤波器。
在一些实施方式中,可以使用基于Wendland函数的滤波器。基于Wendland函数的滤波器可以提供类似高斯滤波器的钟形滤波器。Wendland函数可以是具有指定平滑度参数的径向基函数。当函数的平滑度参数接近无穷大时,Wendland函数可以一致收敛到高斯函数。如本文所用,Wendland滤波器可以基于Wendland函数。Wendland滤波器可以包含在双重索引的滤波器族中。例如,用作源滤波器的示例Wendland滤波器的双索引可以是(3,1)的索引。Wendland滤波器可以包括|半径|(|radius|)参数。Wendland滤波器可以包括对抗混叠有用的性质。例如,Wendland滤波器可以是径向对称的。可以有限地支持Wendland滤波器(例如,对于距离原点比|半径|更远的点为零)。Wendland滤波器在位置r=0处可以是C2连续的。Wendland滤波器在位置r=|半径|处可以是C2连续的。Wendland滤波器在所有其他位置都可以是无穷大。Wendland滤波器可以在每个位置都有正的傅立叶变换,类似于非截断高斯滤波器。B样条基滤波器,虽然是有限支持且在每个位置都是非负的,但是可以具有带负波瓣的傅立叶变换。Wendland滤波器比Mitchell滤波器(Mitchell-Netravali)或三次B样条滤波器更容易计算。Mitchell滤波器和三次B样条滤波器可以是重构滤波器,用于光栅图像的抗混叠和缩放。
在一些实施方式中,Wendland滤波器既可以用作源滤波器,也可以用作目标滤波器。例如,在一个实施方式中,当用作计算分区多边形的覆盖性(alpha分量)的源滤波器时,|半径|的值可以等于2.5。例如,在一个实施方式中,当用作计算分区多边形的覆盖性(alpha分量)的目标滤波器时,|半径|的值可以等于1.36。在这些实施方式中,Wendland滤波器的使用可以非常接近Mitchell滤波器(相对误差小于0.03)。
纹理光栅化器(例如,参考图2,纹理光栅化器模块240中包括的纹理光栅化器应用)可以在生成分区多边形的纹理映射时使用多样本帧缓冲器。一个像素可以包括多个像素样本或点。对于每个像素,多样本帧缓冲器包括一定数目的(s个)像素样本或点。
对于位于位置(x,y)处的像素,像素样本或点的覆盖性值α(x,y,s)可以被计算为对像素样本或点位置有贡献的所有surfel的最大值,如方程式2所示。
方程式2:α(x,y,s)=maxσ∈surfels(W(σ,x,y,s))
其中,W(σ,x,y,s)是用作像素(x,y)内的采样位置s处的surfelσ的水平集函数的滤波函数值。
光栅化的surfel可以使用PLUS合成运算符进行合成。像素样本或点的alpha预乘颜色αC(x,y,s)可以通过对覆盖像素样本或点的所有surfel进行加权平均来获得,如方程式3所示。
方程式3:
其中Cσ是surfelσ的颜色。
相邻分区多边形之间的缝隙或孔洞能够表示alpha覆盖性值较低。低的alpha覆盖性值能够是由于没有加入相邻surfel的贡献。为了解决这个问题,在获得分区算法的结果之后,可以构建或生成针对surfel的最近邻搜索数据结构,包括以下形式的条目:(partition_index、surfel_index)。与给定分区多边形相邻的surfel集合可以使用最近邻搜索来获得或构建,该最近邻搜索具有从光栅化器提供的LDI眼空间中的surfel的直径获得的搜索半径。属于该分区的surfel以及相邻surfel可以被光栅化。
图6是可用于生成分区平面的纹理映射的方法600的示例的流程图。在一些实施方式中,本文描述的系统、方法、算法和过程可以实施方法600。例如,方法600可以参考图1A-D、图2、图3A-E、图4A-B和图5来描述。特别地,参考图2,方法600可以由纹理光栅化模块240来执行(运行、实行)。
由计算系统生成分区平面的纹理映射(框602)。该生成可以包括:选择包括源相机窗口空间的源相机(框604)。源相机可以是生成多个点以包括在分层深度图像(LDI)中的相机。包括在LDI中的多个点可以被包括在分区平面中。例如,参考图3A-E,源相机可以包括源相机窗口空间306。该生成可以包括:将分区平面中的点投影到源相机窗口空间中的点(框606)。源相机窗口空间可以包括多个像素。该点可以被投影到源相机的图像平面中包括的至少一个像素中。例如,点302可以被投影到源相机的图像平面(源相机窗口空间306)中所包括的像素360f中。
该生成可以包括:将源相机窗口空间中的点与源窗口空间中包围以该点为中心的滤波器支持域的矩形(例如,最小矩形)一起投影回分区平面中(框608)。当矩形的四个顶点投影回分区平面时,限定了surfel占据区。该投影可以在分区平面中点的位置产生表面元素(surfel)。surfel可以有相关联的颜色。例如,投影点308可以被投影回分区平面304中,从而产生在分区平面304中点302的位置处示出的LDI样本位置处的surfel 322。与surfel322相关联的颜色可以基于像素360f的颜色。
该生成可以包括:选择包括目标相机窗口空间的目标相机(框610)。例如,参考图3A-E,目标相机可以包括目标相机窗口空间336。该生成可以包括:将分区平面中的surfel占据区投影到目标相机窗口空间中的surfel占据区(框612)。surfel占据区可以覆盖在目标相机窗口空间的图像平面中包括的一个或多个像素。该一个或多个像素可以用与surfel相关联的颜色填充。该一个或多个像素中的每一个可以包括多个子像素样本。例如,包括目标相机窗口空间336的目标相机的图像平面具有基于目标相机的图像平面中包括的像素数量的相关联分辨率。投影的surfel占据区330可以覆盖包括在目标相机窗口空间336中的像素340a-i。在一些实施方式中,投影的surfel占据区330可以部分覆盖(不完全覆盖)包括在目标相机窗口空间336中的像素340a-i。在一些实施方式中,投影的surfel占据区330可以完整地或完全地覆盖包括在目标相机窗口空间336中的像素340a-i。子像素样本312a-i示出了由投影surfel占据区330覆盖的每个相应像素340a-i的相应子像素样本。
该生成可以包括:将多个像素样本中的每一个从目标相机窗口空间投影到分区平面(框614)。例如,子像素样本312a-i可以被投影回分区平面304,从而产生分别包括投影的子像素342a-i的投影的surfel占据区340。
该生成可以包括:将多个像素样本中的每一个从分区平面投影到源相机窗口空间中(框616)。该投影可以识别每个像素样本在源相机窗口空间中的当前位置。例如,子像素样本342a-i可以作为投影点362a-i投影到源相机窗口空间306中。例如,投影的子像素样本362a可以识别投影的子像素样本342a在源相机窗口空间306中的位置,该投影的子像素样本342a是子像素样本312a从目标相机窗口空间336的投影。子像素样本312a可以作为像素340a中包括的点在目标相机窗口空间336中生成。
该生成可以包括:基于源相机窗口空间中每个像素样本的识别的当前位置来将颜色权重应用于每个像素样本(框618)。例如,滤波器支持域(例如,示出为滤波器310)可以具有相关联的函数,该函数为被滤波器支持域(例如,示出为滤波器310)重叠的每个像素样本提供像素样本颜色的权重。子像素样本的颜色权重可以基于子像素样本与位于滤波器支持域(例如,示出为滤波器310)中心的子像素样本的距离。
可以由计算系统组合分区多边形和纹理映射(框620)。分区多边形和所有分区的纹理映射的组合可以形成场景模型,用于在虚拟现实空间中以三维(3D)实时渲染。
图7是用于为分区平面的纹理映射计算alpha通道信息的方法700的示例的流程图。在一些实施方式中,这里描述的系统、方法、算法和过程可以实施方法700。例如,方法700可以参考图1A-D、图2、图3A-E、图4A-B和图5来描述。特别地,参考图2,方法700可以由纹理alpha计算模块222执行(运行、实行)。
计算系统向分区平面中包括的每个surfel指派颜色和不透明度(框702)。该指派可以取决于surfel在分区平面中的位置。例如,点506中的每一个具有相关联的颜色以及相关联的alpha通道信息,相关联的颜色包括红色(R)、绿色(G)和蓝色(B)颜色值,相关联的alpha通道信息是不透明度值(A)。每个点可以是相应surfel的中心。
该指派可以包括:将相应的源滤波函数与分区平面中所包括的每个surfel相关联(框704)。源滤波函数可以确定由相应surfel提供的分区平面的alpha覆盖性的量。
该指派可以包括:将目标滤波函数与分区平面相关联(框706)。目标滤波函数可以提供surfel占据区到将完全不透明的分区平面的投影。目标滤波函数可以提供surfel的指派不透明度的、随着surfel的中心点离分区平面内部的距离增加的下降。
可以计算分区平面的alpha覆盖性来作为在分区平面中所包括的surfel的水平集函数以及作为分区平面的水平集函数(框708)。surfel的水平集函数可以是以surfel位置为中心的相关联的相应源滤波函数。分区平面的水平集函数可以是相关联的目标滤波函数。例如,分区多边形504可以转变成纹理映射分区,该纹理映射分区包含并使用RGBA纹理。
图1A是示出使用电缆102连接到VR头戴式装置108(与之对接)的移动计算设备104的图。移动计算设备104可以使用一个或多个高速通信协议(例如,USB 2.0、USB 3.0和USB3.1)连接到VR头戴式装置108(与之通信)。在一些情况下,移动计算设备104可以使用音频/视频接口——例如高清多媒体接口(HDMI)——连接到VR头戴式装置108(与之通信)。在一些情况下,移动计算设备104可以使用用于USB类型-C标准接口的DisplayPort Alternate(显示端口替代)模式连接到VR头戴式装置108(与之通信)。DisplayPort Alternate模式可以包括高速USB通信接口和DisplayPort(显示端口)功能。
电缆102可以在任一端包括适当的连接器,用于插入VR头戴式装置108和移动计算设备104。例如,电缆两端可以包括通用串行总线(USB)连接器。USB连接器可以是相同的USB类型的连接器,或者每个USB连接器可以是不同类型的USB连接器。各种类型的USB连接器可以包括但不限于USB A型连接器、USB B型连接器、微型USB A型连接器、微型USB B型连接器、微型USB AB型连接器、USB五引脚微型B型连接器、USB四引脚微型B型连接器、USB 3.0A型连接器、USB 3.0B型连接器和USB C型连接器。
图1B是示出了在无需电缆(例如,图1A所示的电缆102)的情况下使用无线连接112连接到VR头戴式装置118(与之对接)的移动计算设备114的图。移动计算设备114可以通过实施一个或多个高速通信协议——例如WiFi、蓝牙或蓝牙低能量(LE)——使用无线连接112连接到VR头戴式装置118(与之通信)。
图1C是示出包括(并入、容纳)移动计算设备124的VR头戴式装置128的图。在一些实施方式中,VR头戴式装置128可以包括可移除计算设备(例如,移动计算设备124)。例如,当用户希望沉浸在VR空间中时,用户的移动计算设备(例如,移动计算设备124)可以被放置在VR头戴式装置128的内(内部)。在一些情况下,移动计算设备124也可以从VR头戴式装置128移除,例如,当用户已经完成将自己沉浸在VR实空间中时。
在一些实施方式中,移动计算设备(例如,移动计算设备124)可以永久地包括在(并入、容纳在)VR头戴式装置(例如,VR头戴式装置128)中。移动计算设备124可以被并入在VR头戴式装置128的壳体或框架内(容纳在其中,是其一部分)。在一些实施方式中,包括在移动计算设备124中的显示设备126可以是VR头戴式装置128的显示设备。移动计算设备124可以提供显示器或屏幕(例如,显示设备126),以供用户在与计算机生成的3D环境(VR空间)交互时查看。在一些实施方式中,VR头戴式装置128可以包括单独的显示设备。在这些实施方式中,移动计算设备124可以与作为VR头戴式装置128的一部分的单独显示设备对接。
图1D是示出用户130佩戴VR头戴式装置138的图。VR头戴式装置138可以是VR头戴式装置108、VR头戴式装置118或VR头戴式装置128,分别如图1A-图C中所示。例如,参考图1A-C,连接到VR头戴式装置138和/或包括在VR头戴式装置138中的移动计算设备可以执行一个或多个应用,以在用户佩戴VR头戴式装置138时向用户130提供计算机生成的3D环境(VR空间或体验)。
参考图1A-D,在一些实施方式中,每个移动计算设备(例如,移动计算设备104、移动计算设备114和移动计算设备124)可以运行能够向用户提供VR体验的一个或多个应用。
回头参考图2,计算设备224包括通信模块204。通信模块204可以包括但不限于,USB通信模块206、WiFi通信模块208、蓝牙通信模块210、收发器212和以太网(例如,IEEE802.3)通信模块214。通信模块204可用于在计算设备224与一个或多个外部网络(例如,网络250)、系统(例如,计算系统252)和/或设备之间建立连接和通信。
附加地或替选地,计算设备224可以使用通信模块204中的一个或多个来建立与VR头戴式装置的通信(连接)。在一些实施方式中,计算设备224上包括的一个或多个连接器可以连接到VR头戴式装置中包括的连接器(与之对接)。例如,将计算设备224连接到VR头戴式装置(与VR头戴式装置对接)可以允许计算设备224提供图像数据和信息以在VR头戴式装置中包括的显示设备上显示,其中显示设备不包括在计算设备224上。
计算设备224可以包括中央处理单元(CPU)216和图形处理单元(GPU)218。CPU 216可以包括一个或多个处理器,这些处理器可以为计算设备224执行通用计算操作。例如,CPU216可以在计算设备224上执行(运行)一个或多个应用(例如VR应用220)。一个或多个应用可以包括在(存储在)存储器(例如,存储器236)中。例如,VR应用220可以渲染(创建)计算机生成的3D环境(VR空间)。计算设备224,特别是CPU 216,可以执行操作系统(O/S)230。
GPU 218可以包括一个或多个处理器,这些处理器可以在计算设备224上执行特定于图形的操作,例如图像绘制、缩放和旋转。例如,GPU 218可以在计算设备224上执行(运行)一个或多个应用。GPU 218可以准备图像数据和信息以输入到显示接口238,用于随后在显示设备(例如,屏幕226)上显示。
显示接口238可以准备表示3D图像的数据以显示在显示设备上。如本文所述,在屏幕226是VR头戴式装置的显示设备的实施方式中,显示接口238可以向屏幕226提供表示3D图像的数据。在VR头戴式装置的显示设备不包括在计算设备224中的实施方式中,显示接口238可以将表示3D图像的数据提供给包括在VR头戴式装置中但在计算设备224外部的屏幕或显示设备。
帧缓冲器232可以是一个或多个存储器设备,其可以存储最终渲染图像以在显示设备(例如,屏幕226)上显示。显示接口238可以访问帧缓冲器232并与之对接,以便向显示设备(例如,屏幕226)提供表示3D图像的数据。
GPU缓冲器234可以是一个或多个存储器设备,其可以存储从不同视点或视角的预先计算的场景的多个LDI表示(多个LDI),多个LDI中的每一个是针对场景的不同部分。GPU218可以访问GPU缓冲器234以取得图像的LDI表示。GPU 218可以将图像的LDI表示作为3DVR空间中的图像渲染给显示接口238以供在屏幕226上显示。在一些实施方式中,GPU 218可以包括GPU缓冲器234。在一些实施方式中,GPU缓冲器234可以由GPU 218访问并与之对接。
系统200包括计算机系统252,其可以包括一个或多个计算设备(例如,服务器254)和一个或多个计算机可读存储设备(例如,储存库或数据库256)。服务器254可以包括一个或多个处理器(例如,服务器CPU242)和一个或多个存储设备(例如,服务器存储器244)。计算设备224可以使用网络250与计算机系统252通信(并且计算机系统252可以与计算设备224通信)。服务器254可以执行服务器O/S246和一个或多个服务器应用,包括纹理光栅化器模块240中包括的纹理光栅化器应用和纹理alpha计算模块222中包括的alpha计算应用。模块可以包括软件、固件和/或硬件,其可以被配置为实施用于在VR空间中以3D呈现图像数据的算法、方法或过程。例如,纹理光栅化算法可以是纹理光栅化模块240中包括的纹理光栅化应用的一部分。纹理光栅化算法可以为包括RGBA纹理的给定分区多边形生成纹理映射。例如,纹理alpha计算模块222中包括的纹理alpha计算应用可以计算(生成)对于被确定为位于分区内部的点等于1的alpha值,以及随着移动远离分区内部点而衰减的alpha值(从1到0递减的值)。应用、模块和算法将在本文后面更详细地描述。
在一些实施方式中,服务器254可以是工作站。在一些实施方式中,计算机系统252可以包括在数据中心中。在一些实施方式中,纹理光栅化器应用(纹理光栅化器模块240)和alpha计算应用(纹理alpha计算模块222)可以包括在计算设备224中。
图8示出了可以与这里描述的技术一起使用的通用计算机设备800和通用移动计算机设备850的示例。计算设备800旨在表示各种形式的数字计算机,例如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他合适的计算机。计算设备850旨在表示各种形式的移动设备,例如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。这里示出的组件、它们的连接和关系以及它们的功能仅仅是示例性的,并不意味着限制本文档中描述和/或要求保护的发明的实施方式。
计算设备800包括处理器802、存储器804、存储设备806、连接到存储器804和高速扩展端口810的高速接口808、以及连接到低速总线814和存储设备806的低速接口812。组件802、804、806、808、810和812中的每一个都使用各种总线互连,并且可以安装在公共主板上或者视情况以其他方式安装。处理器802可以处理用于在计算设备800内执行的指令,包括存储在存储器804或存储设备806上的指令,以在外部输入/输出设备(例如耦合到高速接口808的显示器816)上显示图形用户界面的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备800,每个设备提供必要操作的部分(例如,作为服务器库、刀片服务器组或多处理器系统)。
存储器804在计算设备800内存储信息。在一个实施方式中,存储器804是一个或多个易失性存储单元。在另一实施方式中,存储器804是一个或多个非易失性存储单元。存储器804也可以是另一种形式的计算机可读介质,例如磁盘或光盘。
存储设备806能够为计算设备800提供大容量存储。在一个实施方式中,存储设备806可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备,或设备阵列,包括存储区域网络或其他配置中的设备。计算机程序产品可以有形地包含在信息载体中。计算机程序产品还可以包含指令,这些指令在被执行时实现一种或多种方法,例如上述方法。信息载体是计算机或机器可读介质,例如存储器804、存储设备806或处理器802上的存储器。
高速控制器808管理计算设备800的带宽密集型操作,而低速控制器812管理较低带宽密集型操作。这种功能分配仅是示例性的。在一个实施方式中,高速控制器808耦合到存储器804、显示器816(例如,通过图形处理器或加速器),以及可以接受各种扩展卡(未示出)的高速扩展端口810。在实施方式中,低速控制器812耦合到存储设备806和低速扩展端口814。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或多个输入/输出设备,例如键盘、指示设备、扫描仪或网络设备,例如交换机或路由器。
如图所示,计算设备800可以以多种不同的形式实施。例如,它可以实施为标准服务器820,或者在一组这样的服务器中多次实施。它也可以被实施为机架式服务器系统824的一部分。此外,它可以在诸如膝上型计算机822的个人计算机中实施。替选地,来自计算设备800的组件可以与移动设备(未示出)——例如设备850——中的其他组件相组合。这样的设备中的每一个可以包含计算设备800、850中的一个或多个,并且整个系统可以由彼此通信的多个计算设备800、850组成。
计算设备850包括处理器852、存储器864、诸如显示器854的输入/输出设备、通信接口866和收发器868以及其他组件。设备850还可以配备存储设备,例如微驱动器或其他设备,以提供额外的存储。组件850、852、864、854、866和868中的每一个都使用各种总线互连,并且这些组件中的若干组件可以安装在公共主板上或者视情况以其他方式安装。
处理器852可以执行计算设备850内的指令,包括存储在存储器864中的指令。处理器可以实施为芯片的芯片组,芯片的芯片组包括单独的和多个模拟和数字处理器。处理器可以提供例如设备850的其他组件的协调,例如对设备850运行的用户界面、应用以及设备850的无线通信的控制。
处理器852可以通过耦合到显示器854的控制接口858和显示接口856与用户通信。显示器854可以是例如TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器,或其他合适的显示技术。显示接口856可以包括用于驱动显示器854向用户呈现图形和其他信息的适当电路。控制接口858可以从用户接收命令,并转换它们以提交给处理器852。此外,可以提供与处理器852通信的外部接口862,以使得设备850能够与其他设备进行近区通信。外部接口862可以例如在一些实施方式中提供有线通信,或者在其他实施方式中提供无线通信,并且也可以使用多个接口。
存储器864在计算设备850内存储信息。存储器864可以实施为一个或多个计算机可读介质、一个或多个易失性存储器单元或一个或多个非易失性存储器单元中的一个或多个。还可以提供扩展存储器874,并通过扩展接口872连接到设备850,扩展接口872可以包括例如SIMM(单线存储器模块)卡接口。这种扩展存储器874可以为设备850提供额外的存储空间,或者也可以为设备850存储应用或其他信息。具体地,扩展存储器874可以包括执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器874可以被提供作为设备850的安全模块,并且可以用允许安全使用设备850的指令来编程。此外,可以经由SIMM卡提供安全应用,以及附加信息,例如以不可破解的方式在SIMM卡上放置识别信息。
如下文所讨论,存储器可以包括例如闪存和/或NVRAM存储器。在一个实施方式中,计算机程序产品有形地包含在信息载体中。计算机程序产品包含当被执行时实现一种或多种方法例如上述方法的指令。信息载体是计算机或机器可读介质,例如存储器864、扩展存储器874或处理器852上的存储器,其可以例如通过收发器868或外部接口862接收。
设备850可以通过通信接口866无线通信,通信接口866在必要时可以包括数字信号处理电路。通信接口866可以提供各种模式或协议下的通信,例如GSM语音呼叫、SMS、EMS或MMS消息、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。这种通信可以例如通过射频收发器868发生。此外,可以发生短程通信,例如使用蓝牙、WiFi或其他这样的收发器(未示出)。此外,GPS(全球定位系统)接收器模块870可以向设备850提供附加的导航和位置相关无线数据,这些数据可以被运行在设备850上的应用适当地使用。
设备850还可以使用音频编解码器860进行可听通信,音频编解码器860可以从用户接收口头信息,并将其转换成可用的数字信息。音频编解码器860同样可以为用户生成可听声音,例如通过例如在设备850的手机中的扬声器。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等)并且还可以包括由在设备850上操作的应用产生的声音。
如图所示,计算设备850可以以多种不同的形式实施。例如,它可以被实施为蜂窝电话880。它也可以被实施为智能电话882、个人数字助理或其他类似移动设备的一部分。
这里描述的系统和技术的各种实施方式可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些不同的实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器、至少一个输入设备和至少一个输出设备,该可编程处理器可以是专用的或通用的,其耦合以从存储系统接收数据和指令,以及向存储系统传输数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实现。如这里所使用的,术语“机器可读介质”、“计算机可读介质”指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,这里描述的系统和技术可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备(例如CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以用来向计算机提供输入的键盘和指示设备(例如鼠标或轨迹球)。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。
这里描述的系统和技术可以在计算系统中实施,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或web浏览器的客户端计算机,用户可以通过其与这里描述的系统和技术的实施方式进行交互),或者这种后端、中间件或前端组件的任意组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过在相应的计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序产生的。
在一些实施方式中,图8中描绘的计算设备可以包括与虚拟现实(HMD设备890)对接的传感器。例如,包括在图8所示的计算设备850或其他计算设备上的一个或多个传感器可以向HMD设备890提供输入,或者通常向VR环境提供输入。传感器可以包括但不限于触摸屏、加速度计、陀螺仪、压力传感器、生物传感器、温度传感器、湿度传感器和环境光传感器。计算设备850可以使用传感器来确定计算设备在VR环境中的绝对位置和/或检测到的旋转,然后可以将其用作VR环境的输入。例如,计算设备850可以作为虚拟对象(例如控制器、激光指示器、键盘、武器等)并入VR环境。当被并入到VR环境中时,用户对计算设备或虚拟对象的定位可以允许用户定位计算设备以在VR环境中以特定方式查看虚拟对象。例如,如果虚拟对象代表激光指示器,则用户可以像操纵实际的激光指示器一样操纵计算设备。用户可以左右、上下、以圆圈状等方式移动计算设备,并以类似于使用激光指示器的方式使用该设备。
在一些实施方式中,包括在计算设备850上或连接到计算设备850的一个或多个输入设备可以用作VR环境的输入。输入设备可以包括但不限于触摸屏、键盘、一个或多个按钮、触控板、触摸板、指示设备、鼠标、轨迹球、操纵杆、相机、麦克风、具有输入功能的耳机或耳塞、游戏控制器或其他可连接的输入设备。当计算设备被并入到VR环境中时,与计算设备850上包括的输入设备交互的用户可以导致特定动作出现在VR环境中。
在一些实施方式中,计算设备850的触摸屏可以在VR环境中渲染为触摸板。用户可以与计算设备850的触摸屏交互。例如,在HMD设备890中,交互被渲染为VR环境中渲染触摸板上的移动。渲染的移动可以控制VR环境中的对象。
在一些实施方式中,计算设备850上包括的一个或多个输出设备可以在VR环境中向HMD设备890的用户提供输出和/或反馈。输出和反馈可以是视觉的、触觉的或听觉的。输出和/或反馈可以包括但不限于振动、接通和关断或明灭和/或闪烁一个或多个灯或闪光灯、发出警报、播放蜂鸣声、播放歌曲和播放音频文件。输出设备可以包括但不限于振动马达、振动线圈、压电设备、静电设备、发光二极管(LED)、闪光灯和扬声器。
在一些实施方式中,计算设备850可以作为计算机生成的3D环境中的另一个对象出现。用户与计算设备850的交互(例如,旋转、摇动、触摸一触摸屏、跨触摸屏滑动手指)可以被解释为与VR环境中的对象的交互。在VR环境中的激光指示器的示例中,计算设备850在计算机生成的3D环境中表现为虚拟激光指示器。当用户操纵计算设备850时,VR环境中的用户看到激光指示器的移动。用户从在计算设备850或HMD设备890上的VR环境中与计算设备850的交互接收反馈。
在一些实施方式中,计算设备850可以包括触摸屏。例如,用户可以以特定的方式与触摸屏交互,该方式可以用VR环境中发生的情况模拟触摸屏上发生的情况。例如,用户可以使用捏放式运动来缩放触摸屏上显示的内容。触摸屏上的这种捏放式运动会导致VR环境中提供的信息被缩放。在另一示例中,计算设备可以在计算机生成的3D环境中渲染为虚拟书本。在VR环境中,书本的页面可以在VR环境中显示,并且用户手指跨触摸屏的滑动可以被解释为翻动(翻转)虚拟书本的页面。当每一页被翻页(翻转)时,除了看到页面内容改变之外,还可以向用户提供音频反馈,例如书本中翻页的声音。
在一些实施方式中,除了计算设备(例如,鼠标、键盘)之外,一个或多个输入设备可以在计算机生成的3D环境中渲染。渲染的输入设备(例如,渲染的鼠标、渲染的键盘)可以被用作VR环境中的渲染,以控制VR环境中的对象。
已经描述了许多实施例。然而,应当理解,在不脱离本发明的精神和范围的情况下,可以进行各种修改。
此外,图中描绘的逻辑流程不需要所示的特定次序或顺序来实现期望的结果。此外,可以从所描述的流程中提供其他步骤,或者可以从所描述的流程中删除步骤,并且可以向所描述的系统添加其他组件或从所描述的系统中移除其他组件。因此,其他实施例在所附权利要求书的范围内。
在一个总的方面,一种方法可以包括:组合分区多边形和生成的纹理映射,以形成用于在VR空间中进行三维渲染的场景的模型。纹理映射的生成可以包括:将分区多边形中的分层深度图像样本投影到源相机窗口空间中的点,将该点投影回分区多边形中来作为表面像素(surfel),将surfel投影到目标相机窗口空间中的surfel占据区,将surfel占据区覆盖的像素中包括的子像素样本从目标相机窗口空间投影到分区多边形,将子像素样本从分区多边形投影到源相机窗口空间中,并基于样本在源相机窗口空间中的位置来对每个子像素样本应用颜色权重。
根据其他方面,本公开包括以下实施例:
实施例1:一种计算机实施的方法,包括:
由计算系统生成分区多边形的纹理映射,包括:
将分区多边形中的分层深度图像(LDI)样本投影到源相机窗口空间中的点;
将所述源相机窗口空间中的所述点投影回所述分区多边形中来作为表面元素(surfel),所述surfel具有在所述分区多边形中的所述LDI样本的位置处的相关联的颜色;
将所述分区多边形中的所述surfel投影到目标相机窗口空间中的surfel占据区,所述surfel占据区覆盖所述目标相机窗口空间的图像平面中包括的至少一个像素;
将所述至少一个像素中所包括的多个子像素样本中的每一个从所述目标相机窗口空间投影到所述分区多边形;
将所述多个子像素样本中的每一个从所述分区多边形投影到所述源相机窗口空间中,所述投影确定所述多个子像素样本中的每一个在所述源相机窗口空间中的位置;以及
基于每个子像素样本在所述源相机窗口空间中的位置,将颜色权重应用于每个子像素样本;以及
由所述计算系统组合所述分区多边形和所述纹理映射,所述组合形成用于在虚拟现实空间中实时三维(3D)渲染的场景的模型。
实施例2:根据权利要求1所述的方法,其中,所述LDI样本是所述分区多边形中所包括的分层深度图像(LDI)中所包括的多个LDI样本之一。
实施例3:根据实施例2所述的方法,其中,将所述分区多边形中的所述LDI样本投影到所述源相机窗口空间中的所述点是针对包括在所述分区多边形中的所述多个LDI样本中包括的每个LDI样本来执行的。
实施例4:根据实施例1至3中任一项所述的方法,其中,所述至少一个像素是用与所述surfel相关联的颜色填充的。
实施例5:根据实施例1至4中任一项所述的方法,其中,所述源相机窗口空间中的所述点被放置在在所述源相机窗口空间中所包括的滤波器支持域的中心处。
实施例6:根据实施例5所述的方法,其中,将所述源相机窗口空间中的所述点投影回所述分区多边形中包括:将所述点与包括所述滤波器支持域的最小大小矩形的顶点一起投影。
实施例7:根据实施例6所述的方法,其中,将所述源相机窗口空间中的所述点投影回所述分区多边形中包括:
将所述滤波器支持域投影到所述分区多边形中;以及
将由所述源相机窗口空间中的所述滤波器支持域限定的像素投影到所述分区多边形中。
实施例8:实施例7的方法,其中,与所述surfel相关联的颜色是基于所述像素的颜色。
实施例9:根据实施例5至8中任一项所述的方法,其中,所述滤波器支持域是具有特定半径并且以所述源相机窗口空间中的所述点为中心的圆。
实施例10:根据实施例5至8中任一项所述的方法,其中,所述滤波器支持域限定了与所述源相机窗口空间中所包括的像素重叠的形状。
实施例11:根据实施例10所述的方法,其中,所述滤波器的形状限定了从所述源相机窗口空间投影回所述分区多边形的、得到所述surfel的所述点的大小。
实施例12:根据实施例1至11中任一项所述的方法,其中,将所述分区多边形中的所述surfel投影到所述目标相机窗口空间中的所述surfel占据区是针对所述分区多边形中所包括的每个surfel执行的。
实施例13:根据实施例1至12中任一项所述的方法,
其中,所述目标相机窗口空间是包括多个像素的图像平面,
其中,所述多个像素识别所述图像平面的分辨率,
其中,所述投影surfel的投影surfel占据区覆盖所述图像平面中的所述像素中的一个或多个像素,以及
其中,所述像素中的所述一个或多个像素是与所述surfel相关联的颜色。
实施例14:根据实施例1至13中任一项所述的方法,其中,所述颜色权重是基于子像素距滤波器支持域的中心点的距离,所述子像素被包括在所述滤波器支持域中。
实施例15:一种计算机实施的方法,包括:
由计算系统针对分区多边形中所包括的每个surfel,向surfel指派颜色和不透明度,所述指派包括:
将相应的源滤波函数与所述分区多边形中所包括的每个surfel相关联,所述源滤波函数确定由相应的surfel提供的所述分区多边形的alpha覆盖性的量;
将目标滤波函数与所述分区多边形相关联,所述目标滤波函数提供surfel占据区到将完全不透明的分区多边形的投影,并且提供surfel的所指派的不透明度的、随着surfel的中心点距所述分区多边形内部的距离增加的下降;以及
计算分区多边形的alpha覆盖性来作为所述分区多边形中所包括的surfel的水平集函数以及作为所述分区多边形的水平集函数。
实施例16:根据实施例15所述的方法,其中,所述指派取决于所述分区多边形中的所述surfel的位置。
实施例17:根据实施例15或实施例16所述的方法,其中,所述surfel的水平集函数是以所述surfel的位置为中心的相关联的相应的源滤波函数。
实施例18:根据实施例15至17中任一项所述的方法,其中,所述分区多边形的水平集函数是相关联的目标滤波函数。
实施例19:实施例15至18中任一项的方法,其中,相关联的目标滤波函数对应于所述分区多边形中所包括的surfel的并集。
实施例20:根据实施例19所述的方法,其中,与所述分区多边形中所包括的surfel的并集相对应的相关联的目标滤波函数在纹理空间中的每个点处,取对所述纹理空间点有贡献的surfel源滤波函数的最大值。
实施例21:根据实施例19或实施例20所述的方法,其中,滤波器的相同的解析形式能够用于所述源滤波函数和所述目标滤波函数二者。
实施例22:根据实施例19至21中任一项所述的方法,其中,相同的滤波函数能够与所述分区多边形中所包括的每个surfel相关联。
实施例23:根据实施例19至22中任一项所述的方法,其中,所述分区多边形中所包括的surfel被置于两个或更多个群组中,其中surfel的每个群组与特定的滤波函数相关联。

Claims (22)

1.一种计算机实施的方法,包括:
由计算系统生成分区多边形的纹理映射,包括:
将分区多边形中的分层深度图像LDI样本投影到源相机窗口空间中的点;
将所述源相机窗口空间中的所述点投影回所述分区多边形中来作为表面元素surfel,所述surfel具有在所述分区多边形中的所述LDI样本的位置处的相关联的颜色;
将所述分区多边形中的所述surfel投影到目标相机窗口空间中的surfel占据区,所述surfel占据区覆盖所述目标相机窗口空间的图像平面中所包括的至少一个像素;
将所述至少一个像素中所包括的多个子像素样本中的每个子像素样本从所述目标相机窗口空间投影到所述分区多边形;以及
将所述多个子像素样本中的每个子像素样本从所述分区多边形投影到所述源相机窗口空间中,所述投影确定所述多个子像素样本中的每个子像素样本在所述源相机窗口空间中的位置;以及
由所述计算系统组合所述分区多边形和所述纹理映射,所述组合形成用于在虚拟现实空间中实时三维3D渲染的场景的模型。
2.根据权利要求1所述的方法,其中,所述LDI样本是所述分区多边形中所包括的分层深度图像LDI中所包括的多个LDI样本之一。
3.根据权利要求2所述的方法,其中,将所述分区多边形中的所述LDI样本投影到所述源相机窗口空间中的所述点是针对包括在所述分区多边形中的所述多个LDI样本中包括的每个LDI样本来执行的。
4.根据权利要求1所述的方法,其中,所述至少一个像素是用与所述surfel相关联的颜色填充的。
5.根据权利要求1所述的方法,其中,所述源相机窗口空间中的所述点被放置在在所述源相机窗口空间中所包括的滤波器支持域的中心处。
6.根据权利要求5所述的方法,其中,将所述源相机窗口空间中的所述点投影回所述分区多边形中包括:将所述点与包括所述滤波器支持域的最小大小矩形的顶点一起投影。
7.根据权利要求6所述的方法,其中,将所述源相机窗口空间中的所述点投影回所述分区多边形中包括:
将所述滤波器支持域投影到所述分区多边形中;以及
将由所述源相机窗口空间中的所述滤波器支持域限定的像素投影到所述分区多边形中。
8.根据权利要求7所述的方法,其中,与所述surfel相关联的颜色是基于所述像素的颜色。
9.根据权利要求5所述的方法,其中,所述滤波器支持域是具有特定半径并且以所述源相机窗口空间中的所述点为中心的圆。
10.根据权利要求5所述的方法,其中,所述滤波器支持域限定了与所述源相机窗口空间中所包括的像素重叠的形状。
11.根据权利要求10所述的方法,其中,所述滤波器的形状限定了从所述源相机窗口空间投影回所述分区多边形中的、得到所述surfel的所述点的大小。
12.根据权利要求1所述的方法,其中,将所述分区多边形中的所述surfel投影到所述目标相机窗口空间中的所述surfel占据区是针对所述分区多边形中所包括的每个surfel执行的。
13.根据权利要求1所述的方法,
其中,所述目标相机窗口空间是包括多个像素的图像平面,
其中,所述多个像素识别所述图像平面的分辨率,
其中,投影surfel的投影surfel占据区覆盖所述图像平面中的所述像素中的一个或多个像素,以及
其中,所述像素中的所述一个或多个像素是与所述surfel相关联的颜色。
14.一种计算机实施的方法,包括:
由计算系统针对分区多边形中所包括的每个表面元素surfel,向surfel指派颜色和不透明度,其中,分区多边形中的分层深度图像LDI样本被投影到源相机窗口空间中的点,并且所述源相机窗口空间中的所述点被投影回所述分区多边形中来作为所述surfel,所述指派包括:
将相应的源滤波函数与所述分区多边形中所包括的每个surfel相关联,所述源滤波函数确定由相应的surfel提供的所述分区多边形的alpha覆盖性的量;
将目标滤波函数与所述分区多边形相关联,所述目标滤波函数提供surfel占据区到分区多边形的投影以使所述分区多边形成为完全不透明的,并且提供随着surfel的中心点距所述分区多边形内部的距离增加而下降的surfel的所指派的不透明度,所述surfel占据区覆盖目标相机窗口空间的图像平面中所包括的至少一个像素;以及
计算分区多边形的alpha覆盖性来作为所述分区多边形中所包括的surfel的水平集函数以及作为所述分区多边形的水平集函数。
15.根据权利要求14所述的方法,其中,所述指派取决于所述分区多边形中的所述surfel的位置。
16.根据权利要求14所述的方法,其中,所述surfel的水平集函数是以所述surfel的位置为中心的相关联的相应的源滤波函数。
17.根据权利要求14所述的方法,其中,所述分区多边形的水平集函数是相关联的目标滤波函数。
18.根据权利要求14所述的方法,其中,相关联的目标滤波函数与所述分区多边形中所包括的surfel的并集相对应。
19.根据权利要求18所述的方法,其中,与所述分区多边形中所包括的surfel的并集相对应的相关联的目标滤波函数在纹理空间中的每个点处,取对该纹理空间点有贡献的surfel源滤波函数的最大值。
20.根据权利要求18所述的方法,其中,滤波器的相同的解析形式能够用于所述源滤波函数和所述目标滤波函数二者。
21.根据权利要求18所述的方法,其中,相同的滤波函数能够与所述分区多边形中所包括的每个surfel相关联。
22.根据权利要求18所述的方法,其中,所述分区多边形中所包括的surfel被置于两个或更多个群组中,其中surfel的每个群组与特定的滤波函数相关联。
CN201880036412.7A 2017-11-01 2018-08-31 高品质分层深度图像纹理光栅化方法 Active CN110709893B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/800,343 2017-11-01
US15/800,343 US10089796B1 (en) 2017-11-01 2017-11-01 High quality layered depth image texture rasterization
PCT/US2018/049174 WO2019089121A1 (en) 2017-11-01 2018-08-31 High quality layered depth image texture rasterization

Publications (2)

Publication Number Publication Date
CN110709893A CN110709893A (zh) 2020-01-17
CN110709893B true CN110709893B (zh) 2024-03-15

Family

ID=63638625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880036412.7A Active CN110709893B (zh) 2017-11-01 2018-08-31 高品质分层深度图像纹理光栅化方法

Country Status (4)

Country Link
US (1) US10089796B1 (zh)
EP (1) EP3610461A1 (zh)
CN (1) CN110709893B (zh)
WO (1) WO2019089121A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111435548B (zh) * 2019-01-13 2023-10-03 北京魔门塔科技有限公司 一种地图的渲染方法和装置
US11252392B2 (en) 2019-02-22 2022-02-15 Avalon Holographies Inc. Layered scene decomposition CODEC with layered depth imaging
US20210150799A1 (en) * 2019-11-15 2021-05-20 Waymo Llc Generating Environmental Data
US11783537B2 (en) * 2020-12-14 2023-10-10 Holochip Corporation Distributed rendering and display system
CN117557710B (zh) * 2024-01-12 2024-05-03 深圳市其域创新科技有限公司 一种纹理渲染方法、装置、终端设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466207B1 (en) * 1998-03-18 2002-10-15 Microsoft Corporation Real-time image rendering with layered depth images
US6509902B1 (en) * 2000-02-28 2003-01-21 Mitsubishi Electric Research Laboratories, Inc. Texture filtering for surface elements
US6583787B1 (en) * 2000-02-28 2003-06-24 Mitsubishi Electric Research Laboratories, Inc. Rendering pipeline for surface elements
CN1430183A (zh) * 2001-11-27 2003-07-16 三星电子株式会社 用深度图像表示三维物体的节点结构
CN102592275A (zh) * 2011-12-16 2012-07-18 天津大学 虚拟视点绘制方法
CN107784683A (zh) * 2016-08-24 2018-03-09 谷歌公司 四边形化的分层深度图像

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11195132A (ja) * 1997-10-31 1999-07-21 Hewlett Packard Co <Hp> テクスチャマッピング用バッファ、3次元グラフィクス処理装置、3次元グラフィクス処理システム、3次元グラフィクス処理方法および処理プログラムが記憶された記憶媒体
US6473082B1 (en) * 1999-05-18 2002-10-29 S3 Graphics Co., Ltd. System and method for implementing a two-layer z-range buffer
DE19922975A1 (de) * 1999-05-19 2000-11-23 Star Division Corp Verfahren und Vorrichtung zur Erzeugung einer 3D-Darstellung aus einem 2D-Bild
US6760024B1 (en) * 2000-07-19 2004-07-06 Pixar Method and apparatus for rendering shadows
RU2216781C2 (ru) * 2001-06-29 2003-11-20 Самсунг Электроникс Ко., Лтд Основанные на изображениях способ представления и визуализации трехмерного объекта и способ представления и визуализации анимированного объекта
RU2215326C2 (ru) * 2001-06-29 2003-10-27 Самсунг Электроникс Ко., Лтд. Иерархическое основанное на изображениях представление неподвижного и анимированного трехмерного объекта, способ и устройство для использования этого представления для визуализации объекта
US6791542B2 (en) * 2002-06-17 2004-09-14 Mitsubishi Electric Research Laboratories, Inc. Modeling 3D objects with opacity hulls
AU2006217569A1 (en) * 2005-02-23 2006-08-31 Craig Summers Automatic scene modeling for the 3D camera and 3D video
US7639250B2 (en) * 2005-11-01 2009-12-29 Microsoft Corporation Sketching reality
US7855786B2 (en) 2006-01-09 2010-12-21 Bae Systems Spectral Solutions Llc Single camera multi-spectral imager
US7773086B2 (en) * 2006-04-07 2010-08-10 Siemens Medical Solutions Usa, Inc. Range-peeling for punching masks in volume rendering
JP5243612B2 (ja) 2008-10-02 2013-07-24 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 中間画像合成およびマルチビューデータ信号抽出
WO2012012943A1 (en) * 2010-07-28 2012-02-02 Shenzhen Institute Of Advanced Technology Chinese Academy Of Sciences Method for reconstruction of urban scenes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466207B1 (en) * 1998-03-18 2002-10-15 Microsoft Corporation Real-time image rendering with layered depth images
US6509902B1 (en) * 2000-02-28 2003-01-21 Mitsubishi Electric Research Laboratories, Inc. Texture filtering for surface elements
US6583787B1 (en) * 2000-02-28 2003-06-24 Mitsubishi Electric Research Laboratories, Inc. Rendering pipeline for surface elements
CN1430183A (zh) * 2001-11-27 2003-07-16 三星电子株式会社 用深度图像表示三维物体的节点结构
CN102592275A (zh) * 2011-12-16 2012-07-18 天津大学 虚拟视点绘制方法
CN107784683A (zh) * 2016-08-24 2018-03-09 谷歌公司 四边形化的分层深度图像

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Surfels: surface elements as rendering primitives;Hanspeter Pfister et al.;《SIGGRAPH "00: Proceedings of the 27th annual conference on Computer graphics and interactive techniques》;20001231;全文 *
硬件加速的渐进式多边形模型布尔运算;赵汉理等;《计算机辅助设计与图形学学报》;20150731;第27卷(第7期);全文 *

Also Published As

Publication number Publication date
WO2019089121A1 (en) 2019-05-09
EP3610461A1 (en) 2020-02-19
CN110709893A (zh) 2020-01-17
US10089796B1 (en) 2018-10-02

Similar Documents

Publication Publication Date Title
CN110709893B (zh) 高品质分层深度图像纹理光栅化方法
US11069124B2 (en) Systems and methods for reducing rendering latency
US11138782B2 (en) Systems and methods for rendering optical distortion effects
CN107784683B (zh) 四边形化的分层深度图像
EP3959688B1 (en) Generative latent textured proxies for object category modeling
US20080246760A1 (en) Method and apparatus for mapping texture onto 3-dimensional object model
CN110546951B (zh) 合成立体视觉图像内容捕获
CN108564527A (zh) 基于神经网络的全景图内容补全和修复的方法及装置
EP3533218B1 (en) Simulating depth of field
US8803880B2 (en) Image-based lighting simulation for objects
US10553012B2 (en) Systems and methods for rendering foveated effects
US8072456B2 (en) System and method for image-based rendering with object proxies
JP2020537201A (ja) 挿入される画像コンテンツについての影生成
US20180190006A1 (en) Systems and methods for lightfield reconstruction utilizing contribution regions
US20190318528A1 (en) Computer-Graphics Based on Hierarchical Ray Casting
US8854392B2 (en) Circular scratch shader
CN111696190B (zh) 来自发光的插入内容的照明效果
US9401044B1 (en) Method for conformal visualization
WO2021236173A1 (en) Method and apparatus for combining an augmented reality object in a real-world image
WO2022013342A1 (en) Direct volume rendering apparatus
CN115035231A (zh) 阴影烘焙方法、装置、电子设备和存储介质
Thatte et al. Real-World Virtual Reality With Head-Motion Parallax
JP2013084155A (ja) 画像処理方法、画像処理プログラム、画像処理装置及び画像処理システム

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