立体场景的交错分块渲染的制作方法

文档序号:9650901阅读:795来源:国知局
立体场景的交错分块渲染的制作方法
【专利说明】立体场景的交错分块渲染
[0001]背景
[0002]在立体渲染中,场景的图像对于用户左眼和右眼被分开呈现,其中左眼图像的视角和右眼图像的视角与真实世界场景的左眼视图和右眼视图相类似地偏移。左眼图像和右眼图像间的偏移允许所呈现的场景向观看者显示为单个三维场景。
[0003]概述
[0004]公开了涉及使用分块渲染器来渲染立体场景的各实施例。例如,一个所公开的实施例提供了一种方法,包括渲染第一图像的第一分块,以及在渲染该第一图像的第一分块之后,渲染第二图像的第一分块。在渲染第二图像的第一分块之后,渲染第一图像的第二分块。在渲染第一图像的第二分块之后,渲染第二图像的第二分块。该方法还包括将第一图像发送至第一眼部显示器、以及将第二图像发送至第二眼部显示器。
[0005]提供该概述以便以简化形式介绍概念的选集,所述概念在以下详细描述中被进一步描述。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。而且,所要求保护的主题不限于解决该公开的任一部分中所注的任何或全部缺点的实现方式。
[0006]附图简述
[0007]图1示意性地示出用头戴式显示设备观看立体渲染的场景的示例。
[0008]图2示意性地示出图1的立体场景的左图像和右图像的分块。
[0009]图3示出按照本公开的存储器层级的实施例的框图。
[0010]图4示出描述用于以交错方式渲染立体场景的图像的分块的方法的实施例的流程图。
[0011]图5A示意性地示出立体场景的图像的各分块按照非交错方式渲染的次序。
[0012]图5B示出按照图5A的渲染次序的连续分块对之间的误差的图表。
[0013]图6A示意性地示出立体场景的图像的各分块按照交错方式被渲染的次序。
[0014]图6B示出按照图6A的渲染次序的连续分块对之间的误差的图表。
[0015]图7示出按照本公开的计算设备的实施例的框图。
[0016]详细描述
[0017]在一些用于渲染三维图形的方法中,分块渲染用于解决与用于执行这种渲染的硬件相关联的潜在问题,诸如有限的存储器带宽。分块渲染将要被渲染的图像细分为多个子图像,连续渲染这些子图像,直到已经渲染了整个图像用于显示为止。
[0018]在立体渲染中,场景的左图像和右图像从不同的视角被分开地渲染。当同时观看时(或者以足够高的帧速率连续观看时),左图像和右图像看上去以三维方式再现了场景。由于渲染了两个图像,因此立体渲染显著地增加了(例如,双倍)渲染三维场景所使用的资源,包括存储器带宽、时间和功耗。
[0019]相应地,此处公开了涉及减少用于渲染立体图像的分块的资源的各实施例。简言之,所公开的实施例涉及在渲染第一图像的第一分块之后并且在渲染第一图像的第二分块之前,渲染第二图像的第一分块。由于左眼图像和右眼图像的相应分块可能有许多类似特征,因此以此方式交错的渲染可以通过使用与第一图像的第一分块相关联的至少一部分数据来渲染第二图像的第一分块,减少存储器存取惩罚。
[0020]图1示意性地示出立体渲染的场景100的示例,该场景100包括正在被用户104观看的立体对象102。立体场景100和立体对象102在该示例中由用户104佩戴的头戴式显示器(HMD) 106渲染和显示。这里,立体对象102的两个图像分别为用户104的左眼和右眼渲染。图像可以分别从第一视角和第二视角被渲染,该第一视角和第二视角适当地偏移以造成三维印象。
[0021]在图示实施例中,立体图像被HMD 106观看。HMD 106可以表示具有实质上占据了用户104的视野的显示器的虚拟现实设备,以使用户104感知这一 HMD所显示的内容,而不是周围物理环境的元素。在另一示例中,HMD 106可以表示包括透视显示器的增强型现实设备,用该透视显示器可以将图像显示在背景物理环境上。
[0022]可以理解,HMD 106仅被提供作为说明性示例,而不意图是限制性的。在其他实施例中,立体场景100和立体对象102可经由未安装至用户104头部的显示设备来表示。例如,显示设备可以表示立体对象102的图像,该图像然后通过用户104所佩戴的镜架中的偏振透镜被分成单独的左图像和右图像。或者,显示设备可以以相对较高的速度(例如,每秒120帧)交替地显示立体对象102的左图像和右图像。左图像和右图像可以被选择性地阻止并且经由与显示器输出的帧速率同步的快门眼镜被传送至用户104,以使在一给定瞬间仅观察到左图像和右图像之一。
[0023]图2示出立体图像对的左图像202和右图像204的示例。左图像202和右图像204分别从用户104的左眼和右眼的视角示出立体场景100和立体对象102。在该示例中,第一视角和第二视角在角度上彼此偏移了一个偏移角,以使立体对象102的较大左部在左图像202中可见,而对象102的较大右部在右图像204中可见。
[0024]图2还示意性地图示了左图像202和右图像204的分块渲染。如上所述,分块渲染器可有助于缓解在一些设备中可能存在的硬件限制。例如,向其写入来自渲染器的输出的缓冲器(例如,帧缓冲器)可能太小,以至于不能存储场景的给定图像的渲染输出的全部。因此,可以使用分块渲染器来将场景的图像细分为被渲染为各分块,以使单个分块的渲染输出在任一给定时间占据缓冲器。一旦被写入到缓冲器,分块的渲染输出就可以在渲染另一分块之前被发送至显示设备。或者,给定分块的渲染输出可以在渲染另一分块之前被写入到存储器中的另一位置(例如,另一缓冲器)。在一些实现方式中,分块渲染器的使用可促进渲染并行性,因为每个分块可以被独立渲染。
[0025]在图示示例中,分块渲染器已将左图像202和右图像204细分为四个相等的矩形分块。然而,将会理解,左图像202和右图像204可以被细分为实质上具有任何合适形状的任何数量的分块。
[0026]左图像202包括在顺时针方向连续指定的四个分块七丄丄和L4。同样,右图像包括在顺时针方向连续指定的四个分块%、1?2、1?3和R4。如图所示,对于一相应图像的每一组四个分块(例如,对于左图像202的。、匕丄和L4)包括立体场景100和立体对象102的实质上不同的元素。相反,左图像202和右图像204之间的空间上对应的分块对(例如,Li和札丄2和R 2丄3和R 3、以及LjP R 4)包括立体场景100和立体对象102的实质上类似的元素,因为它们对应于场景和对象的实质上类似区域、但具有一角度偏移,如上所述。这种分块对可被认为是实质上空间相干的。这种分块对的空间相干性可被利用以减少与渲染左图像202和右图像204相关联的时间、功率和存储器存取,如以下参照图4、6A和6B进一步详述。
[0027]图3示出示例存储器层级300,该示例存储器层级300可以在基于分块的渲染流水线中用来渲染左图像202和右图像204。层级300包括主存储器302。主存储器302具有最高容量,但也是最高的等待时间,其中“等待时间”是指在对存储器中的数据作出请求之后该数据可用的时间。在执行渲染左图像202和右图像204所用的渲染流水线之前、或在此期间,渲染立体场景100和立体对象102所使用的数据可以被写入到主存储器302。这种场景数据可以包括例如渲染引擎以及其他应用代码、图元数据、纹理、等等。
[0028]存储器层级300还包括经由总线(在图3中由虚线所示)在操作上耦合至主存储器302的命令缓冲器304。在该示例中,命令缓冲器304占据较小的、单独的存储器区域,并且具有与主存储器302的等待时间相比减少的等待时间。因此,对命令缓冲器304中数据的请求可以以较短时间来满足。用于左图像202和右图像204之一(或者在一些实施例中为两者)的数据可以从主存储器302被写入到命令缓冲器304,以使数据可以加速方式由渲染流水线存取。该数据可以包括命令程序、相关参数以及渲染图像所需的任何其他资源,包括但不限于:着色器、常数、纹理、顶点缓冲器、索引缓冲器、以及视图变换矩阵或者与渲染图像(例如左图像202)的视角有关的其他数据结构编码信息。
[0029]存储器层级300还包括分块缓冲器306,该分块缓冲器306经由虚线所表示的总线在操作上耦合至命令缓冲器304。分块缓冲器306可以占据较小的、单独的存储器区域,并且可具有与命令缓冲器304的等待时间相比减少的等待时间。用于特定分块(例如,Li)的数据可以从命令缓冲器304被写入到分块缓冲器306,以使对特定分块的数据可由分块流水线和分块渲染器以进一步加快的方式。分块缓冲器306可以被配置成对于给定分块和给定分块尺寸存储分块数据的全部。
[0030]在一些实施例中,命令缓冲器304和分块缓冲器306占据分别被分配给缓冲器的第一高速缓存和第二高速缓存的区域。第一高速缓存可具有第一等待时
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1