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

虚拟3D对象的立体渲染制造技术

技术编号:21434866 阅读:35 留言:0更新日期:2019-06-22 12:44
本发明专利技术涉及虚拟3D对象的立体渲染。在一个具体实施中,一种方法涉及通过识别具有3D位置的顶点来将3D对象的表面网格化。该方法将3D位置变换为用于左眼视点的第一基于球体的投影的位置,以及用于右眼视点的第二基于球体的投影的位置。变换顶点的3D位置涉及基于用户取向(即,相机位置)以及左眼视点和右眼视点的差异(例如,基于轴间距离和会聚角)来变换顶点。该方法还基于用于左眼视点的第一基于球体的投影和用于右眼视点的第二基于球体的投影来渲染3D对象的立体360°渲染。例如,可以将第一基于球体的投影的等量矩形表示与第二基于球体的投影的等量矩形表示组合,以提供定义立体360°图像的文件。

【技术实现步骤摘要】
虚拟3D对象的立体渲染
本公开总体涉及用于创建和使用立体渲染的系统、方法和设备,并且具体地讲,涉及考虑到轴间和会聚角视点差异的立体360°渲染。
技术介绍
360°虚拟现实(VR)视频通常使用等量矩形投影以2:1纵横比矩形格式化并存储为视频文件。该文件对于该视频的每一帧包含一个等量矩形投影。立体360°VR视频对于每一帧包含两个等量矩形投影。它对于每只眼睛的视角/视点包括一个投影。由于立体视觉(立体深度感知)基于场景中的点的水平视差移位而起作用,因此左视图和右视图提供稍微不同的视点是重要的。通过简单地在相机的局部x轴上将两个虚拟相机彼此分开,这很容易在直线计算机成像(CGI)场景的立体渲染中实现。这种间隔被称为轴间距离,并且轴间距离越大,场景中的表观立体深度越大。如果两个虚拟相机略微朝向中间中心线倾斜,则它们在一定距离处“会聚”,并且所选的角度可用于感知地定位场景中的处于不同立体深度的对象。渲染完整的360°立体CGI场景要困难得多,因为场景中心的虚拟“相机”不能简单地在单个轴上复制和分离。另外,与将两个虚拟相机链接到头戴式耳机佩戴者的眼睛位置并渲染当前位置/取向的视口的实时VR渲染不同,360°立体视频文件需要在所有视频帧上包含整个CGI场景的完整渲染。此外,最高点和最低点不应包含立体视差。如果包含立体视差,那么当佩戴头戴式耳机的用户向正上方或向正下方看然后旋转她的头部(Y轴旋转)时,立体视差将产生眼睛的垂直差异并且不可避免地导致眼睛疲劳、疼痛或潜在的恶心。一种360°立体渲染技术涉及将六个90°×90°视图拼接在一起,然后偏移赤道上的四个视图(+X,+Z,-X,-Z)及其相应局部轴,以创建人工轴间间隔。对于左眼和右眼渲染,+Y和-Y视图相同。这些分离的视图使用拼接线附近的扭曲或叠加混合拼接在一起。该技术所获得的结果并不是无缝的,并且六个单独的渲染加拼接阶段也需要大量处理器。另一种方法是“狭缝扫描”方法,其中渲染180°高×1°(或更小)的视图,并且为左眼和右眼虚拟相机的每个1°(或更小)的Y轴旋转重复,偏移相机局部x轴的场景中心。(360×2)狭缝渲染被组合以产生两个完整的等量矩形视图,每只眼睛一个。由于需要重复渲染,这种方法非常慢而且需要大量存储器。该方法也不能避免极点附近的立体视差。期望通过例如为左眼和右眼视点中的每一个创建等量矩形投影来有效地立体渲染3D对象以用于等量矩形视频。还期望能够为场景中的每个可能的视图取向快速渲染立体“相机对”,同时平滑地将最高点和最低点转变为单视场(即,零视差)。
技术实现思路
本文公开的各种具体实施包括用于三维(3D)对象的立体360°渲染的设备、系统和方法。一种示例性方法涉及将场景的任何对象网格化以识别对象的顶点。对于每个顶点,该方法使用顶点的原始球体坐标以及定义的轴间和会聚参数来确定(每个眼睛视点的)新位置。轴间和会聚参数可以预先确定、自动确定或由用户指定。该方法可以涉及仅渲染场景的一个或多个对象所需的顶点,并且可以针对每只眼睛在一遍扫描中执行(或者两遍扫描,一遍用于前半部分,一遍用于后半部分),而无需额外的拼接。由于这些和其他原因,本文所公开的技术可以比现有技术更快和/或使用更少的存储器/系统资源。本文所公开的各种具体实施包括用于通过变换顶点的球体位置(其可以被映射到等量矩形投影)来立体360°渲染三维(3D)对象的设备、系统和方法。在一个这样的具体实施中,一种示例性方法涉及通过识别具有3D位置的顶点来将3D对象的表面网格化。顶点定义了多边形,每个多边形近似3D对象的表面的相应部分。该方法将顶点的3D位置变换为用于左眼视点的第一基于球体的投影的位置,以及用于右眼视点的第二基于球体的投影的位置。变换顶点的3D位置涉及基于用户取向/相机位置以及左眼视点和右眼视点之间的差异来变换顶点。变换顶点的3D位置可以涉及基于左眼视点和右眼视点之间的轴间距离来平移顶点。变换顶点的3D位置可以涉及基于左眼视点和右眼视点的会聚角度来旋转顶点。该方法还基于用于左眼视点的第一基于球体的投影和用于右眼视点的第二基于球体的投影来渲染3D对象的立体360°渲染。在一个示例中,结果是分别用于左眼视点和右眼视点的两个等量矩形表示。根据一些具体实施,一种设备包括一个或多个处理器、非暂态存储器以及一个或多个程序;这一个或多个程序被存储在非暂态存储器中并且被配置为由所述一个或多个处理器执行,并且这一个或多个程序包括用于执行或导致执行任何本文所述的方法的操作的指令。根据一些具体实施,一种非暂态计算机可读存储介质中存储有指令,当由设备的一个或多个处理器执行时,这些指令使得该设备执行或导致执行本文所述的方法中的任一个的操作。根据一些具体实施,一种设备包括:一个或多个处理器、非暂态存储器,以及用于执行或导致执行本文所述的方法中的任一种方法的装置。附图说明因此,本公开可由本领域的普通技术人员理解,更详细的描述可参考一些示例性具体实施的方面,其中一些具体实施在附图中示出。图1是根据一些具体实施的示例性操作环境的框图。图2是根据一些具体实施的三维(3D)对象的立体360°渲染方法的流程图表示。图3是根据一些具体实施的使用前半部渲染和后半部渲染的3D对象的立体360°渲染方法的流程图表示。图4是根据一些具体实施的图3的阶段1(组装资源)的示例性步骤的流程图表示。图5是根据一些具体实施的图3的阶段2(渲染球体的前半部的内容)的示例性步骤的流程图表示。图6是根据一些具体实施的图3的阶段3(渲染球体的后半部的内容)的示例性步骤的流程图表示。图7是根据一些具体实施的图3的阶段4(其组合从阶段2和阶段3生成的图像以形成最终图像)的示例性步骤的流程图表示。图8示出了根据一些具体实施的3D空间中的对象的单视场渲染。图9示出了根据一些具体实施的3D空间中的对象的立体渲染。图10示出了根据一些具体实施的基于轴间距离来平移两个顶点的位置。图11示出了根据一些具体实施的基于轴间距离来平移顶点的位置,该距离随着纬度从赤道增加或者随着接近度更接近极点中的一个而减小。图12是示出根据一些具体实施的设备的示例性部件的系统图。根据通常的做法,附图中示出的各种特征部可能未按比例绘制。因此,为了清楚起见,可以任意地扩展或减小各种特征部的尺寸。另外,一些附图可能未描绘给定的系统、方法或设备的所有部件。最后,在整个说明书和附图中,类似的附图标号可用于表示类似的特征部。具体实施方式描述了许多细节以便提供对附图中所示的示例性具体实施的透彻理解。然而,附图仅示出了本公开的一些示例方面,因此不应被视为限制。本领域的普通技术人员将理解,其他有效方面和/或变体不包括本文所述的所有具体细节。此外,没有详尽地描述公知的系统、方法、部件、设备和电路,以免模糊本文所述的示例性具体实施的更多相关方面。各种具体实施包括用于三维(3D)对象的立体360°渲染的设备、系统和方法。一种示例性方法涉及将场景的对象网格化以识别对象的顶点。对于每个顶点,该方法使用顶点的原始球体坐标以及轴间和会聚参数来确定(每个眼睛视点的)新位置。轴间和会聚参数可以预先确定、自动确定或由用户指定。该方法可以涉及仅渲染场景的一个或多个对象所需的顶点,并且可以针对每只眼睛在一遍扫描中执行,而无需额外本文档来自技高网
...

【技术保护点】
1.一种立体360°渲染三维(3D)对象的方法,所述方法包括:在具有一个或多个处理器和计算机可读存储介质的设备处:通过识别具有3D位置的顶点来将所述3D对象的表面网格化,其中所述顶点定义多边形,每个所述多边形近似所述3D对象的所述表面的相应部分;将所述顶点的所述3D位置变换为用于左眼视点的第一基于球体的投影的位置以及用于右眼视点的第二基于球体的投影的位置,其中变换所述顶点的所述3D位置包括基于用户取向变换所述顶点并基于所述左眼视点和所述右眼视点之间的轴间距离平移所述顶点;以及基于用于所述左眼视点的所述第一基于球体的投影和用于所述右眼视点的所述第二基于球体的投影来渲染所述3D对象的立体360°渲染。

【技术特征摘要】
2017.12.13 US 62/598,1561.一种立体360°渲染三维(3D)对象的方法,所述方法包括:在具有一个或多个处理器和计算机可读存储介质的设备处:通过识别具有3D位置的顶点来将所述3D对象的表面网格化,其中所述顶点定义多边形,每个所述多边形近似所述3D对象的所述表面的相应部分;将所述顶点的所述3D位置变换为用于左眼视点的第一基于球体的投影的位置以及用于右眼视点的第二基于球体的投影的位置,其中变换所述顶点的所述3D位置包括基于用户取向变换所述顶点并基于所述左眼视点和所述右眼视点之间的轴间距离平移所述顶点;以及基于用于所述左眼视点的所述第一基于球体的投影和用于所述右眼视点的所述第二基于球体的投影来渲染所述3D对象的立体360°渲染。2.根据权利要求1所述的方法,其中变换所述顶点的所述3D位置包括在垂直于从投影球体的中心处的相机位置到所述顶点的经线方向的方向上平移所述顶点的所述3D位置,其中所述相应顶点的平移随着所述相应顶点的纬度增大而减小。3.根据权利要求1至2中任一项所述的方法,其中变换所述顶点的所述3D位置还包括基于所述左眼视点和所述右眼视点的会聚角来旋转所述顶点。4.根据权利要求3所述的方法,其中所述相应顶点的旋转随着所述相应顶点的纬度增大而减小。5.根据权利要求1至4中任一项所述的方法,其中变换所述顶点的所述3D位置还包括:变换所述3D位置以形成表示所述第一基于球体的投影的第一等量矩形投影;以及变换所述3D位置以形成表示所述第二基于球体的投影的第二等量矩形投影,其中所述3D对象的所述立体360°渲染包括所述第一等量矩形投影和所述第二等量矩形投影。6.根据权利要求1至5中任一项所述的方法,其中变换所述3D位置还包括:变换针对所述左眼视点调节的顶点的所述3D位置以形成用于投影球体的前半部分的前半部分等量矩形投影和用于所述投影球体的后半部分的后半部分等量矩形投影,并且将所述前半部分等量矩形投影和所述后半部分等量矩形投影组合以形成表示所述第一基于球体的投影的第一组合等量矩形投影;以及变换针对所述右眼视点调节的顶点的所述3D位置以形成用于所述投影球体的后半部分的前半部分等量矩形投影和用于所述投影球体的所述后半部分的后半部分等量矩形投影,并且将所述前半部分等量矩形投影和所述后半部分等量矩形投影组合以形成表示所述第二基于球体的投影的第二组合等量矩形投影。7.根据权利要求1至6中任一项所述的方法,其中将所述3D对象的所述表面网格化包括将表示所述3D对象的所述表面的网格化对象存储在图形处理单元(GPU)中,其中所述GPU使用所述网格化对象来渲染所述3D对象的所述立体360°渲染。8.根据权利要求7所述的方法,还包括将所述3D对象的纹理数据存储在所述GPU中,其中所述GPU使用所述纹理数据来渲染所述3D对象的所述立体360°渲染。9.根据权利要求1至8中任一项所述的方法,其中将所述3D对象的所述表面网格化包括自适应网格化。10.根据权利要求1至9中任一项所述的方法,还包括在图像或视频创建应用程序的用户界面中显示所述3D对象的所述立体360°渲染,其中所述3D对象的所述360°渲染包括所述第一基于球体的投影和所述第二基于球体的投影的等量矩形表示。11.根据权利要求10所述的方法,还包括:接收改变所述3D对象的位置的输入数据;基于接收到所述输入数据,实时更新所述3D对象的所述渲染以创建所述3D对象的更新的渲染,所述更新的渲染包括所述第一基于球体的投影和所述第二基于球体的投影的更新的等量...

【专利技术属性】
技术研发人员:S·M·波米兰茨T·K·达什伍德
申请(专利权)人:苹果公司
类型:发明
国别省市:美国,US

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

1