CN112912823A - 生成和修改增强现实或虚拟现实场景中对象的表示 - Google Patents
生成和修改增强现实或虚拟现实场景中对象的表示 Download PDFInfo
- Publication number
- CN112912823A CN112912823A CN201980069868.8A CN201980069868A CN112912823A CN 112912823 A CN112912823 A CN 112912823A CN 201980069868 A CN201980069868 A CN 201980069868A CN 112912823 A CN112912823 A CN 112912823A
- Authority
- CN
- China
- Prior art keywords
- frame
- viewpoint
- rendered
- frames
- rendering
- 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.)
- Pending
Links
- 230000003190 augmentative effect Effects 0.000 title description 5
- 238000000034 method Methods 0.000 claims abstract description 52
- 230000000007 visual effect Effects 0.000 claims abstract description 39
- 238000009877 rendering Methods 0.000 claims description 50
- 238000005266 casting Methods 0.000 claims description 31
- 238000005070 sampling Methods 0.000 claims description 8
- 230000015654 memory Effects 0.000 description 31
- 230000008859 change Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 16
- 238000012952 Resampling Methods 0.000 description 13
- 230000004886 head movement Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 210000003128 head Anatomy 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 230000004075 alteration Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 206010040026 Sensory disturbance Diseases 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000014616 translation Effects 0.000 description 2
- 208000020764 Sensation disease Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 208000035475 disorder Diseases 0.000 description 1
- 208000002173 dizziness Diseases 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/653—Three-dimensional objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/08—Bandwidth reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Processing Or Creating Images (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
Abstract
在一个实施例中,用于生成子帧的方法可以包括访问从用户的第一视点描绘虚拟场景的渲染帧。渲染帧可以基于虚拟场景中的对象的至少一个3D模型来生成。计算***可以基于渲染帧生成多个表面。每个表面可以位于3D空间内,并且包括视觉信息。该***可以确定用户在3D空间中的第二视点,并确定多个表面从第二视点的可见性。该***然后可以基于视觉信息和多个表面的确定的可见性,渲染从第二视点描绘虚拟场景的子帧。
Description
技术领域
本公开一般涉及增强现实、虚拟现实、混合现实或混杂现实环境。
背景
人工现实是在呈现给用户之前以某种方式被调整的现实的形式,其可以包括例如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混杂现实或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈、或其某种组合,且其中任何一个都可以在单个通道中或在多个通道中被呈现(例如向观众产生三维效果的立体视频)。人工现实可以与应用、产品、附件、服务或其某种组合相关联,这些应用、产品、附件、服务或其某种组合例如用于在人工现实中创建内容和/或在人工现实中使用(例如,在人工现实中执行活动)。可以在各种平台(包括连接到主计算机***的头戴式显示器(HMD)、独立的HMD、移动设备或计算***、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台)上实现提供人工现实内容的人工现实***。
特定实施例的描述
自其存在以来,人工现实(例如,AR、VR、MR)技术一直受到响应于用户对AR/VR/MR场景的视角的突然变化而渲染AR/VR/MR对象的延迟问题的困扰。为了创建沉浸式环境,用户可能需要能够在观看场景时四处移动他们的头部,并且环境可能需要通过调整呈现给用户的视图来立即做出响应。每次头部移动都会稍微改变用户对场景的视角。这些头部移动可能很小,但偶尔发生,很难(如果不是不可能的话)预测。要解决的一个问题是头部移动可能快速发生,这要求场景的视图被快速修改以解决随着头部移动发生的视角变化。如果做得不够快,由此产生的延迟可能会导致用户体验到感觉失调,从而导致虚拟现实眩晕或不适,或者至少会中断沉浸式体验。考虑到视角的这些变化,完整地重新渲染视图可能是资源密集型的,并且可能只能以相对低的帧速率(例如,60Hz,或者每1/60秒一次)来完成。结果,通过以防止用户感知延迟并从而避免或充分减少感觉失调的足够快的速度(例如,200赫兹,每1/200秒一次)重新渲染整个场景以考虑视角的变化来修改场景可能是不可行的。
一种解决方案涉及生成和处理表示场景中的对象的“表面”,其中表面对应于一个或更多个对象,这些对象由于视角的改变而作为一个单元一起移动/平移、倾斜、缩放、扭曲或以其他方式改变外观。代替重新渲染整个视图,计算***可以简单地从改变的视角对这些表面进行重采样,以近似对应的对象从改变的视角看将会是什么样子。这种方法本质上可以是一种有效的快捷方式,可以显著减少所需的处理,从而确保视图更新足够快,以充分减少延迟。与重新渲染整个视图不同,对表面进行重采样可能足够有效,从而可以用于在规定的时间内(例如,1/200秒内)用HMD的计算***(例如,分离的膝上型电脑或可穿戴设备)相对有限的处理能力来修改视图。这一修改所涉及的时间尺度很小,以至于不可能有一个与HMD分离的更强大的***来执行修改,因为HMD必须传送关于HMD当前定位和取向的信息,等待分离的***渲染新的视图,然后从分离的***接收新的视图。通过简单地对表面进行重采样,修改可以完全在HMD上进行,从而加快了过程。虽然本公开使用特定的时间周期(1/60秒,1/200秒)和相应的特定帧速率(60Hz,200Hz),但是这些时间周期和帧速率仅用作示例来说明本发明,并且本公开考虑了任何其他合适的时间周期和帧速率。
在特定实施例中,图形应用(例如,游戏、地图、内容提供应用等)可以构建场景图,该场景图与给定的视图位置和时间点一起用于生成图元以在GPU上渲染。场景图可以定义场景中对象之间的逻辑和/或空间关系。在特定实施例中,显示引擎还可以生成并存储场景图,该场景图是完整应用场景图的简化形式。简化的场景图可用于指定表面之间的逻辑和/或空间关系(例如,由显示引擎渲染的图元,诸如在3D空间中定义的四边形或轮廓,其具有基于由应用渲染的主帧生成的相应纹理)。存储场景图允许显示引擎将场景渲染到多个显示帧,针对当前视点(例如,头部定位)、当前对象定位(例如,它们可能相对于彼此移动)和每个显示帧改变的其他因素来调整场景图中的每个元素。此外,基于场景图,显示引擎还可以针对显示子***引入的几何和颜色失真进行调整,然后将对象合成在一起以生成帧。存储场景图允许显示引擎以期望的高帧速率近似完成完整渲染的结果,而实际上以明显更低的速率运行GPU。
本发明的实施例可以包括人工现实***或结合人工现实***来被实现。在特定实施例中,渲染场景以及生成和修改其表面所涉及的处理任务可以在两个或更多个计算***之间进行划分。作为示例而非限制,场景的视图最初可以由第一计算***(例如,膝上型电脑、手机、台式机、可穿戴设备)来渲染。渲染结果可用于为视图生成一个或更多个表面。除了颜色和透明度信息之外,表面可以包括关于它们在场景中的位置的信息。这些表面可以被传递到第二计算***(例如,头戴式显示器(HMD)上的机载计算***)。HMD可以基于与表面相关联的信息并基于穿戴HMD的用户的当前视角(例如,由HMD的定位和取向确定),来渲染与视图内的表面相对应的对象。视角的任何变化(例如,发生在百分之一秒量级上的用户的轻微头部运动)可以由HMD上的传感器跟踪,并由HMD通过从调整后的视点对视图中的表面进行重采样来解决。由于视点的调整,表面在被重采样时可能会平移/移动、倾斜、缩放、扭曲或以其他方式改变外观。由于场景不是从零开始(例如,从多边形)重新渲染的,而是仅通过调整表面来重新渲染的,因此可以相对快速地(例如,以200Hz)修改场景。在特定实施例中,当与第二计算***相比时,第一计算***可能相对强大,因为第二计算***(例如,HMD)可能具有有限的***资源,该***资源可能不会明显增加,而不会导致对用户舒适而言太大的重量、尺寸和/或热量。
根据所附权利要求中的至少一项,本发明解决了上述问题。
根据本发明的一些实施方式,提供了一种方法,其中该方法包括由一个或更多个计算***访问从用户的第一视点描绘虚拟场景的渲染帧,其中所述渲染帧是基于所述虚拟场景中的对象的至少一个3D模型生成的;基于所述渲染帧生成多个表面,其中每个所述表面位于3D空间内并且包括视觉信息;确定用户在所述3D空间中的第二视点;确定所述多个表面从所述第二视点的可见性;以及基于所述视觉信息和所述多个表面的确定的可见性,渲染从所述第二视点描绘所述虚拟场景的子帧。
根据本发明的一种可能的实施方式,所述多个表面中的每一个的所述视觉信息是纹理;所述多个表面的所述确定的可见性识别从所述第二视点可见的所述多个表面上的点;并且所述子帧的所述渲染包括根据所述多个表面上的所述点对所述多个表面中的每一个的所述纹理进行采样。
根据本发明的一种可能的实施方式,所述对象的所述3D模型包括多边形;并且所述渲染帧是基于所述多边形中的一个或更多个和从所述第一视点投射的光线之间的计算的交点而生成的。
根据本发明的一个可能的实施方式,所述渲染帧是至少基于所述对象的所述3D模型生成的多个帧之一;所述渲染子帧是基于所述多个表面生成的多个子帧之一;并且所述多个子帧是在所述渲染帧之后并且在所述多个帧的后续帧之前生成的。
根据本发明的一种可能的实施方式,所述多个帧以第一帧速率生成;并且所述多个子帧以高于所述第一帧速率的第二帧速率生成。
根据本发明的一种可能的实施方式,使用光线投射来确定所述多个表面的所述可见性。
根据本发明的一种可能的实施方式,所述渲染帧是使用光线跟踪生成的。
根据本发明的一种可能的实施方式,所述第一视点和所述第二视点在不同的时间被确定。
根据本发明的一个可能的实施方式,所述渲染帧是基于所述虚拟场景中的所述对象的所述3D模型和第二对象的第二3D模型生成的;并且所述多个表面中的至少一个包括描绘所述对象和所述第二对象的视觉信息。
根据本发明的一种可能的实施方式,所述多个表面中的每一个都是平坦的。
根据本发明的一种可能的实现方式,所述渲染帧和所述子帧是不同的。
根据本发明的一种可能的实现方式,所述渲染帧和所述渲染子帧由不同的计算***渲染。
根据本发明的一些实施方式,提供了一个或更多个包含软件的计算机可读非暂时性存储介质,该软件在被执行时可操作来:访问从用户的第一视点描绘虚拟场景的渲染帧,其中所述渲染帧是基于所述虚拟场景中的对象的至少一个3D模型生成的;基于所述渲染帧生成多个表面,其中每个所述表面位于3D空间内并且包括视觉信息;确定用户在所述3D空间中的第二视点;确定所述多个表面从所述第二视点的可见性;以及基于所述视觉信息和所述多个表面的确定的可见性,渲染从所述第二视点描绘所述虚拟场景的子帧。
根据本发明的一种可能的实施方式,所述多个表面中的每一个的所述视觉信息是纹理;所述多个表面的所述确定的可见性识别从所述第二视点可见的所述多个表面上的点;并且所述子帧的所述渲染包括根据所述多个表面上的所述点对所述多个表面中的每一个的所述纹理进行采样。
根据本发明的一种可能的实施方式,所述对象的所述3D模型包括多边形;并且所述渲染帧是基于所述多边形中的一个或更多个和从所述第一视点投射的光线之间的计算的交点而生成的。
根据本发明的一个可能的实施方式,所述渲染帧是至少基于所述对象的3D模型生成的多个帧之一;所述渲染子帧是基于所述多个表面生成的多个子帧之一;并且所述多个子帧是在所述渲染帧之后并且在所述多个帧的后续帧之前生成的。
根据本发明的一些实施方式,提供了一种***,包括:一个或更多个处理器;和一个或更多个计算机可读非暂时性存储介质,其耦合到所述处理器中的一个或更多个并且包括指令,所述指令当由所述处理器中的一个或更多个执行时可操作来使所述***:访问从用户的第一视点描绘虚拟场景的渲染帧,其中所述渲染帧是基于所述虚拟场景中的对象的至少一个3D模型生成的;基于所述渲染帧生成多个表面,其中每个所述表面位于3D空间内并且包括视觉信息;确定用户在所述3D空间中的第二视点;确定所述多个表面从所述第二视点的可见性;以及基于所述视觉信息和所述多个表面的确定的可见性,渲染从所述第二视点描绘所述虚拟场景的子帧。
根据本发明的一种可能的实施方式,所述多个表面中的每一个的所述视觉信息是纹理;所述多个表面的确定的可见性识别从所述第二视点可见的所述多个表面上的点;并且所述子帧的所述渲染包括根据所述多个表面上的所述点对所述多个表面中的每一个的所述纹理进行采样。
根据本发明的一种可能的实施方式,所述对象的所述3D模型包括多边形;并且所述渲染帧是基于所述多边形中的一个或更多个和从所述第一视点投射的光线之间的计算的交点而生成的。
根据本发明的一个可能的实施方式,所述渲染帧是至少基于所述对象的所述3D模型生成的多个帧之一;所述渲染子帧是基于所述多个表面生成的多个子帧之一;并且所述多个子帧是在所述渲染帧之后并且在所述多个帧的后续帧之前生成的。
本文公开的实施例仅仅是示例,并且本公开的范围不限于它们。特定实施例可以包括本文公开的实施例的组件、要素、特征、功能、操作或步骤中的全部、一些,或不包括这些组件、要素、特征、功能、操作或步骤。根据本发明的实施例在所附权利要求中具体公开,涉及方法、存储介质、***和计算机程序产品,其中在一个权利要求类别(例如方法)中提到的任何特征,也可以在另一个权利要求类别(例如***)中要求保护。在所附权利要求中的从属性或往回引用仅为了形式原因而被选择。然而,也可以要求保护由对任何先前权利要求的有意往回引用(特别是多个从属关系)而产生的任何主题,从而权利要求及其特征的任何组合被公开了并且可以被要求保护,而不管所附权利要求中选择的从属关系如何。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。
附图简述
图1A-1I示出了包括可以由表面表示的对象的场景的例子。
图2示出了用于确定要在场景视图中显示的对象的视觉信息和位置信息的第一“光线投射”过程。
图3示出了将对象的2D表示转换成表面的概念。
图4示出了第二光线投射过程的示例概念化,该第二光线投射过程用于基于与相应表面相关联的信息,从场景的视点渲染用于显示的对象。
图5示出了识别对应于交点的视觉信息的概念化。
图6A和6B示出了基于表面生成子帧的示例方法。
图7示出了显示引擎的示例高级架构。
图8示出了示例计算机***。
示例实施例的描述
自其存在以来,人工现实(例如,AR、VR、MR)技术一直受到响应于用户对AR/VR/MR场景的视角的突然变化而渲染AR/VR/MR对象的延迟问题的困扰。为了创建沉浸式环境,用户可能需要能够在观看场景时移动他们的头部,并且环境可能需要通过调整呈现给用户的视图来立即做出响应。每次头部移动都会稍微改变用户对场景的视角。这些头部移动可能很小,但偶尔发生,很难(如果不是不可能的话)预测。要解决的一个问题是头部移动可能快速发生,这要求场景的视图被快速修改以解决随着头部移动发生的视角变化。如果做得不够快,由此产生的延迟可能会导致用户体验到感觉失调,从而导致虚拟现实眩晕或不适,或者至少会中断沉浸式体验。考虑到视角的这些变化,完整地重新渲染视图可能是资源密集型的,并且可能只能以相对低的帧速率(例如,60Hz,或者每1/60秒一次)来完成。结果,通过以防止用户感知延迟并从而避免或充分减少感觉失调的足够快的速度(例如,200赫兹,每1/200秒一次)重新渲染整个场景以考虑视角的变化来修改场景可能是不可行的。一种解决方案涉及生成和处理表示场景内对象的特定视图的“表面”,其中表面对应于一个或更多个对象,这些对象由于视角的改变而作为一个单元一起移动/平移、倾斜、缩放、扭曲或以其他方式改变外观。代替重新渲染整个视图,计算***可以简单地从改变的视角对这些表面进行重采样,以近似对应的对象从改变的视角看将会是什么样子。这种方法本质上可以是一种有效的快捷方式,可以显著减少所需的处理,从而确保视图更新足够快,以充分减少延迟。与重新渲染整个视图不同,对表面进行重采样可能足够有效,从而可以用于在规定的时间内(例如,在1/200秒内)利用HMD计算***相对有限的处理能力来修改视图。这种修改所涉及的时间尺度非常小,以至于可能无法让与HMD物理分离的更强大的***(例如,分离的膝上型电脑或可穿戴设备)执行修改,因为HMD将不得不传输关于HMD的当前定位和取向的信息,等待分离的***渲染新视图,然后从分离的***接收新视图。通过简单地对表面进行重采样,修改可以完全在HMD上进行,从而加快了过程。
本发明的实施例可以包括人工现实***或结合人工现实***来被实现。在特定实施例中,渲染场景以及生成和修改其表面所涉及的处理任务可以在两个或更多个计算***之间进行划分。作为示例而非限制,场景的视图最初可以由第一计算***(例如,膝上型电脑、手机、台式机、可穿戴设备)来渲染。渲染结果可用于为视图生成一个或更多个表面。除了颜色和透明度信息之外,表面可以包括关于它们在场景中的位置的信息。这些表面可以被传递到第二计算***(例如,头戴式显示器(HMD)上的机载计算***)。HMD可以基于与表面相关联的信息并基于穿戴HMD的用户的当前视角(例如,由HMD的定位和取向确定),在视图内扭曲表面。视角的任何变化(例如,发生在百分之一秒量级上的用户的轻微头部运动)可以由HMD上的传感器跟踪,并由HMD通过从调整后的视点对视图中的表面进行重采样来解决。由于视点的调整,表面在被重采样时可能会平移/移动、倾斜、缩放、扭曲或以其他方式改变外观。由于场景不是从零开始(例如,从多边形)重新渲染的,而是仅通过调整表面来重新渲染的,因此可以相对快速地(例如,以200赫兹)修改场景。在特定实施例中,当与第二计算***相比时,第一计算***可能相对强大,因为第二计算***(例如,HMD)可能具有有限的***资源,该***资源可能不会明显增加,而不会导致对用户舒适而言太大的重量、尺寸和/或热量。
在特定实施例中,计算***可以渲染场景的初始视图以显示给用户。作为示例而非限制,该初始视图可以是包括一组AR对象的AR场景的视图(或者,如本文别处所讨论的,具有VR对象的VR场景)。在特定实施例中,显示器可以在HMD上。HMD可能具有有限的***资源和有限的电源,并且这些限制可能不会明显减少,而不会导致对用户舒适性来说太大的重量、尺寸和/或热量。因此,HMD单方面处理渲染视图所涉及的所有处理任务可能是不可行的。在特定实施例中,可以使用相对强大的计算***(例如,膝上型电脑、手机、台式机、可穿戴设备)来渲染初始视图。在特定实施例中,该计算***可以是与HMD上的计算***通信的设备,但是也可以在物理上与HMD分离。作为示例而非限制,计算***可以是有线连接到HMD或与HMD无线通信的膝上型设备。作为另一示例而非限制,计算***可以是有线连接到HMD或与HMD无线通信的可穿戴设备(例如,绑在手腕上的设备)、手持设备(例如,电话)或一些其他合适的设备(例如,膝上型电脑、平板电脑、台式机)。计算***可以将该初始场景发送到HMD进行显示。尽管本公开集中于在HMD上向用户显示场景,但是它设想在任何其他合适的设备上向用户显示场景。
渲染视图是一项资源密集型任务,可能需要对对象的每个多边形执行大量的“可见性测试”。在渲染场景视图的传统模型中,场景中的每个对象可以由数百/数千个多边形来表示。渲染视图的计算***将需要从每个像素针对每个多边形执行可见性测试,以确定与每个可见多边形相关联的视觉信息(例如,颜色和透明度信息)。可见性测试可以概念化为从特定视点投射一条或多条假想光线穿过场景中的每个像素,并确定光线是否与对象的多边形相交。如果存在相交,则可以基于与被光线相交的多边形相关联的视觉信息,使像素显示阴影(例如,颜色、透明度)。在所谓的“光线投射”或“光线跟踪”过程中,对每个像素重复这一过程,最终可以在屏幕上渲染整个视图。这种渲染需要时间。作为示例而非限制,即使对于膝上型电脑/台式机,帧也只能以这种方式以60Hz渲染,这意味着在1/60秒内发生的任何视角变化(例如,由于快速的头部移动)都不会被渲染/显示的内容捕获。
为了解决这个问题,在特定实施例中,计算***可以为场景生成一个或更多个“表面”,以快速有效地处理渲染视图,这将在下面进一步解释。每个表面可以是场景内的一个或更多个对象的表示,由于用户对场景的视角的改变(例如,由于用户头部上的HMD移动到不同的定位和/或取向),这些对象被预期作为一个单元一起移动/平移、倾斜、缩放、扭曲或以其他方式改变外观。作为示例而非限制,如果确定人和帽子将作为一个单元一起移动/平移、倾斜、缩放、扭曲或以其他方式改变外观,则人的化身和化身所戴的帽子可以对应于一个表面。在特定实施例中,当用户对场景的视角改变时,表面可以对应于预期作为单个单元移动/平移、倾斜、缩放、扭曲或以其他方式改变外观的多组点(例如,组成对象的点)。在特定实施例中,表面可以是矩形“纹理”,其可以是包括定义场景中一个或更多个对象的视觉信息(例如,颜色、透明度)的虚拟概念。该表面还可以包括变换矩阵,以指定其在场景中的位置。表面的纹理数据可以由一个或更多个子部分组成,这里称为“纹理元素(texel)”。这些纹理元素可以是聚集在一起以创建构成表面的纹理元素阵列的块(例如,矩形块)。作为示例而非限制,它们可以是构成表面的连续块。出于说明的目的,表面的纹理元素可以被概念化为类似于图像的像素。表面可以由任何合适的设备产生。作为示例而非限制,生成初始场景的可穿戴或手持设备的CPU或GPU也可以生成场景的一个或更多个表面。作为另一个示例而非限制,HMD的机载计算***可以在从分离的计算***(例如,从可穿戴的、手持的或膝上型设备的CPU或GPU)接收初始场景之后生成一个或更多个表面。在特定实施例中,出于效率目的,可以为视图生成预定最大数量的表面(例如,16个表面)。
图1A-1I示出了包括可以由表面表示的对象的场景的例子。在特定实施例中,可以有三种类型的表面:图像表面、标签表面和掩模表面(mask surface)。图像表面可用于渲染阴影图像,例如视频帧、静态图像或由GPU渲染的场景。作为示例而非限制,参考图1A,静态图像110(例如,基于观看它的用户而改变的虚拟定制广告牌)可以由图像表面来表示。作为另一个示例而非限制,参考图1B,动态视频120(例如,“附着”到物理对象并适当扭曲的AR电视)的每一帧可以由图像表面来表示。作为另一示例而非限制,参考图1C,诸如化身130(例如,位于场景中的现实化身)的几个化身可以由图像表面来表示。作为另一示例而非限制,参考图1D,同时向多个观看者显示以促进协作的动态对象140(例如,建筑物的动态3D模型)可以由图像表面来表示。在特定实施例中,图像表面可以存储其一个或更多个纹理元素的RGB(红-绿-蓝)分量。在特定实施例中,图像表面可以存储其一个或更多个纹理元素的RGBA(红-绿-蓝-α)分量。α分量可以是指定要与纹理元素一致的透明度级别的值。作为示例而非限制,α值0可以指示纹理元素是完全透明的,α值1可以指示纹理元素是不透明的,并且其间的α值可以指示其间的透明度级别(确切的透明度级别由该值确定)。图像表面可以支持任何合适的图像格式。作为示例而非限制,图像表面可以支持16位和32位像素格式,具有4位至10位RGB分量大小。在特定实施例中,每个图像格式可以具有至少一个位用于存储α值(例如,以允许透明区域)。
在特定实施例中,标签表面可以存储带符号的距离和颜色索引,并且可以用于渲染包括纯色区域的对象,例如文本、字形和图标。作为示例而非限制,参考图1E,AR书籍150可以包括可以由一个或更多个标签表面表示的文本。在特定实施例中,表面可以固定到场景中的对象(例如,静态或移动的对象),可以固定在空间中,或者可以相对于用户的头部固定(例如,使得它不固定到场景中的任何特定对象,而是随着用户的头部移动)。在图1E所示的示例中,文本标签表面可以相对于AR书籍150或任何其他合适的对象固定。作为另一个示例而非限制,参考图1F,展示文本和多色组合的元素的周期表可以由一个或更多个标签表面表示。在这个例子中,周期表可以相对于用户的头部显示(例如,使得它不固定到场景中的任何特定对象,而是随着用户的头部移动)。作为另一个示例而非限制,参考图1G,出于导航目的,与不同公共汽车路线相关的不同颜色的线和相关联的文本可以由一个或更多个标签表面表示,这些标签表面可以固定在空间中或相对于对象固定。作为另一示例而非限制,参考图1H,包括关于公共汽车的增强信息(例如,容量、到达时间、关于下一个公共汽车站的信息)的文本可以由一个或更多个标签表面表示,这些标签表面可以相对于对象(例如,图1H中的公共汽车)固定。标签表面可以是任何合适的形式。作为示例而非限制,标签表面可以为每个纹理元素存储8位,包括例如6位距离字段值和2位索引。作为另一个示例而非限制,双标签表面可以为每个标签纹理元素存储16位(例如,第一6位距离字段和第一2位索引,以及第二6位距离字段和第二2位索引),以允许指定两个带符号的距离函数。在特定实施例中,这些示例中的索引可用于查找要使用的RGBA颜色,这取决于内插距离的高阶位。
在特定实施例中,掩模表面可以存储α值(例如,值1),该α值可以用于遮挡其后面的表面。作为示例而非限制,参考图1I,当用户的(现实世界)手170经过AR对象160的前方时,掩模表面可以遮挡表示AR对象160的表面的一部分。
图2示出了用于确定要在场景视图中显示的对象的视觉信息和位置信息的第一“光线投射”过程。虽然在此示例中使用了光线投射,但是也可以使用其他渲染技术,例如光线跟踪。在特定实施例中,第一计算***(例如,膝上型电脑、手机、台式机、可穿戴设备)可以执行该第一光线投射过程来渲染场景的视图。场景的“视图”可以指场景的用户视角,其可以例如基于HMD的当前定位和取向来确定。为了理解对象如何在视图中显示,将从视点(例如,可以表示在HMD上观看场景的用户的视点的“虚拟相机”)发出的许多假想光线想象成屏幕上的像素(例如,对应于单只眼睛在HMD上的显示)是有帮助的。作为示例而非限制,参考图2,假想光线230可以从视点220发出并与屏幕210(例如,其可以对应于HMD的两个目镜之一的显示器)的像素215相交。作为另一个示例而非限制,假想光线260可以与像素270相交。可以对屏幕的所有像素(或至少一个子集)使用本文中可称为“光线投射过程”的方法来重复投射假想光线,以确定每个像素应该显示什么(例如,像素的颜色和透明度)。在特定实施例中,图2所示的第一光线投射过程可以由与最终将向用户显示视图的HMD分离的计算***(例如,可穿戴设备、手持设备、膝上型电脑)来执行。计算***可以执行光线投射过程,并确定每个假想光线是否与(例如,由多边形组成的3D模型定义的)对象相交,并且可以进一步确定假想光线在对象上的何处相交(如果相交)。作为示例而非限制,假想光线230可以在交点255处与对象250(例如,AR时钟)相交。在该示例中,计算***可以确定像素215与交点255相关联,因为光线230也在像素215处与屏幕210相交。作为另一个例子,但不是作为限制,假想光线260(在经过方向修正以考虑失真/像差之后)可以不与对象250相交。在该示例中,计算***可以确定像素215不应该与对象250相关联。光线投射过程的这种使用在本文中可被称为“可见性测试”,因为它可用于确定在给定视图中可见的对象(或其部分)。光线投射过程最终可以用于将屏幕的像素与对于场景视图可见的任何对象上的交点相关联。
图3示出了将对象(例如,对象250)的2D表示转换成表面的概念。在特定实施例中,第一光线投射过程可用于生成将在场景视图中显示的对象的2D表示。该视图可以例如基于安装在用户头部的HMD的当前定位和取向来确定。对象的2D表示可以表示该对象在视图中应该出现的样子,并且同样地,可以考虑用户从视图中对该对象的视角。作为示例而非限制,参考图2和3,2D表示310可以从站在对象250左侧的用户的视角反映对象250的视图(例如,使视点220在对象250的左侧)。在这个例子中,为了从这个视角确定对象250看起来像什么,可以从视点220执行第一光线投射过程。该第一光线投射过程的结果可以产生歪斜的图像(例如,如2D表示310所示),作为来自光线投射过程的假想光线在第一光线投射过程中如何与对象250相交的结果,反映了对象250从视点220看起来如何。在特定实施例中,如本文别处所讨论的,计算***(例如,与HMD分离的计算***、HMD的机载计算***或任何其他合适的计算***)可以将2D表示转换成表面。作为示例而非限制,参考图3,2D表示310可以被转换成表面320,表面320可以是对视觉信息(RGBA)(例如,作为纹理)和位置信息进行编码的图像表面,位置信息描述了表面在场景的3D空间内的位置(例如,在观看者的视图坐标中指定)。
图4示出了第二光线投射过程的示例概念化,该第二光线投射过程用于从场景的视点对用于显示的表面进行后扭曲或重采样。在特定实施例中,HMD的机载计算***(或一些其他合适的第二计算***)可以基于与表面相关联的信息来确定应该如何显示表面。在特定实施例中,一个或更多个表面可以包括将它们放置在与场景相关联的3D空间内的指定位置的位置信息。作为示例而非限制,参考图4,表面450可以基于相关联的位置信息被放置在其所示位置。在该示例中,尽管表面可以表现为描绘相对于观看者具有不同深度的3D时钟(例如,9点钟区域可以表现为比3点钟区域离观看者更远),但是在特定实施例中,表面可以是面向观看者的平坦表面(例如,至少最初在视点改变之前,其法向矢量指向观看者)。对象的任何视觉表示都可以作为表面纹理数据的一部分来存储。
在特定实施例中,表面的每个纹理元素可以具有指定其将位于何处的相关联的位置信息。在特定实施例中,类似于第一光线投射过程,第二光线投射过程可以由HMD的计算***执行以渲染视图。该第二光线投射过程可用于执行可见性测试,以确定什么表面在视图中可见,以及表面在视图中的位置。作为示例而非限制,参考图4,假想光线430可以从视点420发出并与屏幕410的像素415(例如,HMD的两个目镜之一的显示器)相交。作为另一个示例而非限制,假想光线460可以与像素470相交。在特定实施例中,HMD的计算***可以考虑由HMD的光学结构(例如,HMD的透镜)引入的失真和/或其他像差(例如,色差)。失真/像差可以通过数学方法进行校正。如图4所示,这种校正可以在概念上表示为一个过程,其中假想光线穿过失真网格440,失真网格440对假想光线(例如,假想光线430、假想光线460)数学地进行方向修正,以解决失真/像差。基于表面450的位置信息,计算***可以确定每个假想光线是否与表面450(或任何其他表面)相交,并且可以确定假想光线在表面450上的哪里相交(如果相交的话)。作为示例而非限制,假想光线430(在经过方向修正以考虑失真/像差之后)可以在交点455处与表面450相交。作为另一个例子,但不是作为限制,假想光线460(在经过方向修正以解决失真/像差之后)可以不与表面450或任何其他表面相交。
为了说明的目的,现在将使用图2-5所示的时钟示例来描述一个示例用例。图2中的第一光线投射/跟踪过程可以对于第一视角渲染具有特定时间(例如,时间12:42:22)的时钟图像。这可能是由膝上型电脑或另一个合适的第一计算***(例如与HMD分离的位于身体上的可穿戴设备)生成帧的时间。从那时起直到由膝上型电脑生成下一帧(为了说明的目的,可以以每秒1帧的速度生成),用户的视角可以改变到第二视角。考虑到这种变化,场景可能需要调整。然而,第一主体***可能不能足够快地(例如,以1/200秒)渲染另一个场景。因此,基于由HMD的(例如,可基于HMD的惯性测量单元确定的)最新定位和取向确定的最新视点信息,以及可选地,(例如,由眼睛跟踪确定的)用户的注视,HMD可以被分配任务来扭曲与由膝上型电脑生成的时钟图像(仍显示12:42:22)相对应的表面(例如,图3中的表面320),而不是从头开始渲染整个场景。图4-5所示的光线投射和采样过程说明了这一点。HMD可以以这种方式生成几个子帧,直到由膝上型电脑生成下一帧(例如,如果以每秒1帧的速度渲染,则生成具有显示时间12:42:23的时钟的帧)。
在特定实施例中,第一和/或第二光线投射过程可以针对用户的每只眼睛单独执行,以考虑视点的微小变化(例如,基于眼睛的相对定位)。作为示例而非限制,可以对与左眼相关联的屏幕和与右眼相关联的屏幕执行第一和第二光线投射过程。这些过程可能彼此独立运行,甚至可能彼此不同步运行。
图5示出了识别对应于交点的视觉信息的概念化。在特定实施例中,HMD的计算***可以基于与表面相关联的视觉信息,在屏幕(例如,用于单眼的屏幕)上显示描绘对象(例如,时钟)的扭曲表面。在特定实施例中,HMD的计算***可以通过确定交点在相应纹理元素阵列上的位置来确定与交点相关联的视觉信息(例如,RGBA信息)。作为示例而非限制,参考图5,表面510(例如,其可以是图4中的表面450)可以对应于纹理元素阵列520,其包括表面510的纹理元素信息(例如,RGBA信息)。在这个例子中,纹理元素阵列可以完全在2D空间中,没有表面510的任何3D位置信息,这可能是特别有益的,因为它可以极大地简化确定与像素相关联的假想光线的交点的视觉信息所需的数学计算。因此,确定中涉及的计算任务可能需要更少的资源,并且可以更快更有效地完成。作为示例而非限制,可以由放置表面510的3D视图空间中的三维(x,y,z)坐标表示的交点515可以被转换成纹理元素阵列520中的二维(u,v)坐标。在该示例中,可以确定表面510中的交点515对应于纹理像素阵列520中的像素采样点529。计算***(例如,HMD的机载计算***)可以基于与对应的纹理像素阵列相关联的信息来确定交点的视觉信息。作为示例而非限制,交点515的RGBA信息可以基于与纹理像素阵列520中的相应采样点529相关联的RGBA信息来确定。
在特定实施例中,表面可以仅具有每个纹理元素内离散数量的点的信息(例如,纹理元素525的单个纹理元素中心527)。在这种情况下,HMD的计算***可以执行一个或更多个插值(例如,双线性或三线性插值)或任何其他合适的计算来确定与特定采样点相关联的视觉信息(例如,RGBA信息)。作为示例而非限制,计算***可以使用与纹理元素中心527和其他相邻纹理元素中心(例如,围绕采样点529的其他三个纹理元素中心)相关联的RGBA信息来执行采样点529的双线性插值,以确定采样点529的RGBA信息。HMD可以在相应的像素内显示可以匹配所确定的RGBA信息的颜色和透明度级别。作为示例而非限制,参考图4和5,采样点529可以对应于像素415,在这种情况下,为采样点529确定的RGBA信息可以用于确定要在像素415内显示的颜色和透明度级别。基于该示例而非限制,可以为屏幕410的所有像素投射光线,并显示光线与表面相交的任何其他点(例如,与表面450相交的交点480、可能与不同表面相关联的假想光线460的交点)的视觉信息。
在特定实施例中,HMD的计算***可以连续或半连续地跟踪HMD的定位和取向(例如,使用HMD或跟踪HMD的远程设备上的惯性、光学、深度和/或其他传感器),以确定在任何给定时间穿戴HMD的用户的视角。在特定实施例中,计算***还可以连续地或半连续地跟踪用户的眼睛定位(例如,根据用户的注视来调整由HMD透镜导致的失真)。不幸的是,由于渲染图形计算量大且耗时,因此无法即时生成新帧。如果在更新显示以反映视角的变化时存在显著的延迟,则用户可能能够感知到该延迟,从而产生感觉失调。如本文其他地方进一步解释的,这种感觉失调可能导致用户不愉快的效果,例如虚拟现实眩晕,或者可能以其他方式中断用户体验。为了防止这种失调,向用户显示的内容可能需要以非常快的速度考虑视角的变化。作为示例而非限制,场景的视图可能需要每1/200秒修改一次(例如,因为超过该时间的任何延迟对于用户来说都是不可接受的)。在许多情况下,计算***以如此快的速度(例如,从多边形)重新渲染整个视图来考虑视角的变化可能是不切实际或不可行的。因此,可能需要创造性的快捷方式来快速近似视图的变化。
在特定实施例中,一种用于近似视图变化的这种快捷方式可以包括在视图内“重采样”表面(而不是重新渲染整个视图)。在特定实施例中,重采样可以包括执行进一步的光线投射过程,以确定从调整后的视角看表面可能如何的近似。通过仅关注对视图内有限数量的表面(例如,16个表面)进行重采样,可以快速地修改视图,并且足够快地防止或减少用户对延迟的感知。作为示例而非限制,可以每1/200秒执行进一步的第二光线投射过程,以考虑视角的可能变化(例如,来自HMD的定位或取向的变化)。在特定实施例中,HMD的机载计算***可以通过执行如以上参考图4所概述的光线投射过程来对一个或更多个表面进行重采样,但是这一次视点420被调整(例如,移动到不同的定位和/或取向)以反映用户的最新视角。如果视角自前一个光线投射过程以来已经改变,则假想光线可能相应地与表面的不同点相交。作为示例而非限制,参考图4,如果视点420稍微向右移动(由于轻微的头部移动),则光线430的交点455可以相应地向左移动。以这种方式基于重采样来修改视图可能仅仅是视图应该如何被视角的改变所改变的近似,并且这种近似可能仅适用于视角的相对小的改变。但这可能是所需要的全部,因为目的是考虑在用户的膝上型电脑或移动电话生成完全渲染的帧之间的相对短的时间段(例如,百分之一秒的量级)内发生的变化。本质上,它可以是临时修复,直到视图可以被重新渲染(例如,通过更强大的计算***,例如可穿戴设备)。作为示例而非限制,可以与HMD分离的更强大的计算***(例如,固定到用户的腰带或腰围的可穿戴设备)可以每隔1/60秒从头重新渲染视图,并且可以在渲染时将这些重新渲染的视图发送到HMD设备。在该示例中,在每1/60秒接收重新渲染的视图之间的时间内,HMD设备可以自行修改表面(例如,每1/200秒),以考虑用户视角的快速变化。
在特定实施例中,在重采样过程中可以忽略照明条件的变化,以提高修改的效率和速度。照明变化最多在重采样过程所预期的短时间内是可以忽略不计,并且可以安全地忽略它们。这在AR环境中可能尤其如此,其中已经存在现实世界的照明,并且其中从预期的相对小的视角变化(例如,在百分之一秒的数量级的短时间周期内发生的变化)来看,照明的变化可能不大。
虽然本公开集中于AR环境中的AR对象,但是它也考虑在VR环境中渲染VR对象。作为示例而非限制,在VR的情况下,第一计算***(例如,可穿戴设备、手持设备、膝上型电脑)可以渲染整个VR初始场景以显示给用户。可以由第一计算***为场景内的VR对象生成表面。初始场景和表面可以被发送到VR HMD,其可以包括能够响应于检测到的视角变化(例如,基于HMD的定位和取向检测到的,如本文别处进一步解释的)来修改表面的独立计算***。在一个替代实施例中,VR HMD可以简单地接收初始场景,并且可以自行生成场景的表面,然后对其进行修改。
图6A示出了基于表面生成帧的示例方法600。该方法可以在步骤610开始,其中在第一时间渲染视图的第一视角。在步骤620,为视图中的一个或更多个对象生成表面。在步骤630,在第二时间,执行可见性测试,以确定表面从第二视角的可见性。在步骤640,基于可见性测试生成用于显示的帧。在适当的情况下,特定实施例可以重复图6的方法的一个或更多个步骤。尽管本公开将图6的方法的特定步骤描述和图示为以特定顺序发生,但是本公开设想了以任何适当顺序发生的图6的方法的任何适当步骤。此外,尽管本公开描述并示出了用于基于表面生成帧的示例方法,包括图6的方法的特定步骤,但是本公开设想了用于基于表面生成帧的任何合适的方法,包括任何合适的步骤,在适当的情况下,其可以包括图6的方法的所有、一些步骤或没有这些步骤。此外,尽管本公开描述并示出了执行图6的方法的特定步骤的特定组件、设备或***,但是本公开设想了执行图6的方法的任何适当步骤的任何适当组件、设备或***的任何适当组合。
图6B示出了基于表面生成子帧的示例方法650。该方法可以在步骤660开始,其中一个或更多个计算***可以访问从用户的第一视点描绘虚拟场景的渲染帧。渲染帧可以基于虚拟场景中的对象的至少一个3D模型来生成。在步骤670,一个或更多个计算***可以基于渲染的帧生成一个或更多个表面。每个表面可以位于3D空间内,并且包括视觉信息。在步骤680,一个或更多个计算***可以确定用户在3D空间中的第二当前视点。在步骤685,一个或更多个计算***可以确定一个或更多个表面从第二视点的可见性。在步骤690,一个或更多个计算***可以基于视觉信息和所确定的一个或更多个表面的可见性,渲染从第二视点描绘虚拟场景的子帧。如步骤690所示,基于一个或更多个表面的子帧生成过程可以重复(由返回到步骤680的箭头表示),直到新的帧可用(由返回到步骤660的箭头表示)。
图7示出了显示引擎700的***图。显示引擎700可以包括四种类型的顶层块。如图7所示,这些块可以包括控制块710、变换块720a和720b、像素块730a和730b以及显示块740a和740b。显示引擎700的一个或更多个组件可以被配置成经由一个或更多个高速总线、共享存储器或任何其他合适的方法进行通信。如图7所示,显示引擎700的控制块710可以被配置成与变换块720a和720b以及像素块730a和730b通信。显示块740a和740b可以被配置成与控制块710通信。如这里进一步详细解释的,该通信可以包括数据以及控制信号、中断和其他指令。
在特定实施例中,控制块710可以从主渲染组件接收输入数据流760,并初始化显示引擎700中的流水线以完成渲染供显示。在特定实施例中,输入数据流760可以包括来自主渲染组件的数据和控制分组。数据和控制分组可以包括信息,例如包括纹理数据和位置数据的一个或更多个表面以及附加的渲染指令。控制块710可以根据需要向显示引擎700的一个或更多个其他块分发数据。控制块710可以为要显示的一个或更多个帧启动流水线处理。在特定实施例中,HMD可以包括多个显示引擎700,并且每个显示引擎可以包括其自己的控制块710。
在特定实施例中,变换块720a和720b可以确定要在人工现实场景中显示的表面的初始可见性信息。一般而言,变换块(例如,变换块720a和720b)可以从屏幕上的像素位置投射光线,并产生要发送到像素块730a和730b的滤波命令(例如,基于双线性或其他类型的插值技术的滤波)。变换块720a和720b可以从用户的(例如,使用惯性测量单元、眼睛***和/或任何合适的跟踪/定位算法,例如同时定位和映射(SLAM))到表面被定位的人工场景中,并且可以产生结果以发送到相应的像素块730a和730b而确定的)当前视点执行光线投射。
一般而言,根据特定实施例,变换块720a和720b可以各自包括四级流水线。变换块的级可以如下进行。光线投射器可以发出对应于一个或更多个对准像素的阵列的光线束,该阵列称为瓦片(例如,每个瓦片可以包括16×16对准像素)。根据一个或更多个失真网格,光线束在进入人工现实场景之前可能会扭曲。失真网格可以被配置成校正至少源于HMD的显示器750a和750b的几何失真效果。变换块720a和720b可以通过将每个瓦片的边界框与每个表面的边界框进行比较来确定每个光线束是否与场景中的表面相交。如果光线束与对象不相交,它可能会被丢弃。检测瓦片表面相交,并且相应的瓦片表面对725a和725b被传递到像素块730a和730b。
一般而言,根据特定实施例,像素块730a和730b从瓦片表面对725a和725b确定颜色值,以产生像素颜色值。从由控制块710接收和存储的表面的纹理数据中采样每个像素的颜色值(例如,作为输入数据流760的一部分)。像素块730a和730b分别从变换块720a和720b接收瓦片表面对725a和725b,并调度双线性滤波。对于每个瓦片表面对725a和725b,像素块730a和730b可以使用对应于投影的瓦片与表面相交的位置的颜色值来采样瓦片内的像素的颜色信息。在特定实施例中,像素块730a和730b可以为每个像素分别处理红色、绿色和蓝色分量。像素块730a和730b然后可以分别向显示块740a和740b输出像素颜色值735a和735b。
通常,显示块740a和740b可以从像素块730a和730b接收像素颜色值735a和735b,将数据的格式转换成更适合于显示器的扫描线输出,对像素颜色值735a和735b应用一个或更多个亮度校正,并准备像素颜色值735a和735b以输出到显示器750a和750b。显示块740a和740b可以将像素块730a和730b生成的瓦片顺序像素颜色值735a和735b转换成显示器750a和750b可能需要的扫描线或行顺序数据。亮度校正可以包括任何所需的亮度校正、伽马映射和抖动。显示块740a和740b可以直接向显示器750a和750b提供像素输出745a和745b,例如校正的像素颜色值,或者可以以各种格式向显示引擎700外部的块提供像素输出745a和745b。例如,HMD可以包括额外的硬件或软件,以进一步定制后端颜色处理,以支持显示器的更宽接口,或者优化显示速度或保真度。
图8示出了示例计算机***800。在特定实施例中,一个或更多个计算机***800执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在特定实施例中,一个或更多个计算机***800提供本文描述或示出的功能。在特定实施例中,在一个或更多个计算机***800上运行的软件执行本文描述或示出的一个或更多个方法的一个或更多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或更多个计算机***800的一个或更多个部分。在本文,在适当的情况下,对计算机***的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机***的引用可以包括一个或更多个计算机***。
本公开设想了任何合适数量的计算机***800。本公开设想了计算机***800采取任何合适的物理形式。作为示例而不是作为限制,计算机***800可以是嵌入式计算机***、片上***(SOC)、单板计算机***(SBC)(例如,模块上计算机(COM)或模块上***(SOM))、台式计算机***、膝上型或笔记本计算机***、交互式信息亭、大型机、计算机***网状网、移动电话、个人数字助理(PDA)、服务器、平板计算机***、增强/虚拟现实设备、或者这些***的两个或更多个的组合。在适当的情况下,计算机***800可以包括一个或更多个计算机***800;是整体式的或分布式的;跨越多个位置;跨越多台机器;跨越多个数据中心;或者驻留在云中,云可以包括在一个或更多个网络中的一个或更多个云组件。在适当的情况下,一个或更多个计算机***800可以在没有实质性空间或时间限制的情况下执行本文描述或示出的一个或更多个方法的一个或更多个步骤。作为示例而不是作为限制,一个或更多个计算机***800可以实时地或以批处理模式来执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在适当的情况下,一个或更多个计算机***800可以在不同的时间或在不同的位置处执行本文描述或示出的一个或更多个方法的一个或更多个步骤。
在特定实施例中,计算机***800包括处理器802、存储器804、存储装置806、输入/输出(I/O)接口808、通信接口810和总线812。尽管本公开描述并示出了具有在特定布置中的特定数量的特定组件的特定计算机***,但是本公开设想了具有在任何合适布置中的任何合适数量的任何合适组件的任何合适的计算机***。
在特定实施例中,处理器802包括用于执行指令(例如构成计算机程序的那些指令)的硬件。作为示例而不是作为限制,为了执行指令,处理器802可以从内部寄存器、内部高速缓存、存储器804或存储装置806中检索(或取回)指令;将他们解码并执行它们;以及然后将一个或更多个结果写到内部寄存器、内部高速缓存、存储器804或存储装置806。在特定实施例中,处理器802可以包括用于数据、指令或地址的一个或更多个内部高速缓存。在适当的情况下,本公开设想了处理器802包括任何合适数量的任何合适的内部高速缓存。作为示例而不是作为限制,处理器802可以包括一个或更多个指令高速缓存、一个或更多个数据高速缓存、以及一个或更多个转译后备缓冲器(TLB)。在指令高速缓存中的指令可以是在存储器804或存储装置806中的指令的副本,并且指令高速缓存可以加速处理器802对那些指令的检索。在数据高速缓存中的数据可以是:在存储器804或存储装置806中的数据的副本,用于使在处理器802处执行的指令进行操作;在处理器802处执行的先前指令的结果,用于由在处理器802处执行的后续指令访问或者用于写到存储器804或存储装置806;或其他合适的数据。数据高速缓存可以加速由处理器802进行的读或写操作。TLB可以加速关于处理器802的虚拟地址转译。在特定实施例中,处理器802可以包括用于数据、指令或地址的一个或更多个内部寄存器。在适当的情况下,本公开设想了处理器802包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器802可以包括一个或更多个算术逻辑单元(ALU);是多核处理器;或者包括一个或更多个处理器802。尽管本公开描述并示出了特定的处理器,但是本公开设想了任何合适的处理器。
在特定实施例中,存储器804包括用于存储用于使处理器802执行的指令或用于使处理器802操作的数据的主存储器。作为示例而不是作为限制,计算机***800可以将指令从存储装置806或另一个源(例如,另一个计算机***800)加载到存储器804。处理器802然后可以将指令从存储器804加载到内部寄存器或内部高速缓存。为了执行指令,处理器802可以从内部寄存器或内部高速缓存中检索指令并将它们解码。在指令的执行期间或之后,处理器802可以将一个或更多个结果(其可以是中间结果或最终结果)写到内部寄存器或内部高速缓存。处理器802然后可以将这些结果中的一个或更多个写到存储器804。在特定实施例中,处理器802仅执行在一个或更多个内部寄存器或内部高速缓存中或在存储器804(而不是存储装置806或其他地方)中的指令,并且仅对在一个或更多个内部寄存器或内部高速缓存中或在存储器804(而不是存储装置806或其他地方)中的数据进行操作。一个或更多个存储器总线(其可以各自包括地址总线和数据总线)可以将处理器802耦合到存储器804。如下所述,总线812可以包括一个或更多个存储器总线。在特定实施例中,一个或更多个存储器管理单元(MMU)驻留在处理器802和存储器804之间,并且便于由处理器802请求的对存储器804的访问。在特定实施例中,存储器804包括随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可以是单端口RAM或多端口RAM。本公开设想了任何合适的RAM。在适当的情况下,存储器804可以包括一个或更多个存储器804。尽管本公开描述并示出了特定的存储器,但是本公开设想了任何合适的存储器。
在特定实施例中,存储装置806包括用于数据或指令的大容量存储装置。作为示例而不是作为限制,存储装置806可以包括硬盘驱动器(HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器、或这些中的两个或更多个的组合。在适当的情况下,存储装置806可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置806可以在计算机***800的内部或外部。在特定实施例中,存储装置806是非易失性固态存储器。在特定实施例中,存储装置806包括只读存储器(ROM)。在适当的情况下,该ROM可以是掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可变ROM(EAROM)、或闪存、或这些中的两个或更多个的组合。本公开设想了采用任何合适的物理形式的大容量存储装置806。在适当的情况下,存储装置806可以包括便于在处理器802和存储装置806之间的通信的一个或更多个存储装置控制单元。在适当的情况下,存储装置806可以包括一个或更多个存储装置806。尽管本公开描述并示出了特定的存储装置,但是本公开设想了任何合适的存储装置。
在特定实施例中,I/O接口808包括为在计算机***800和一个或更多个I/O设备之间的通信提供一个或更多个接口的硬件、软件或两者。在适当的情况下,计算机***800可以包括这些I/O设备中的一个或更多个。这些I/O设备中的一个或更多个可以实现在人和计算机***800之间的通信。作为示例而不是作为限制,I/O设备可以包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态摄像机、触笔、平板计算机、触摸屏、跟踪球、视频摄像机、另一个合适的I/O设备、或这些中的两个或更多个的组合。I/O设备可以包括一个或更多个传感器。本公开设想了任何合适的I/O设备以及用于它们的任何合适的I/O接口808。在适当的情况下,I/O接口808可以包括使处理器802能够驱动这些I/O设备中的一个或更多个的一个或更多个设备或软件驱动器。在适当的情况下,I/O接口808可以包括一个或更多个I/O接口808。尽管本公开描述并示出了特定的I/O接口,但是本公开设想了任何合适的I/O接口。
在特定实施例中,通信接口810包括提供用于在计算机***800和一个或更多个其他计算机***800或一个或更多个网络之间的通信(例如,基于包的通信)的一个或更多个接口的硬件、软件或两者。作为示例而不是作为限制,通信接口810可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或用于与无线网络(例如Wi-Fi网络)进行通信的无线NIC(WNIC)或无线适配器。本公开设想了任何合适的网络和用于它的任何合适的通信接口810。作为示例而不是作为限制,计算机***800可以与自组织网络、个域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或互联网的一个或更多个部分、或这些中的两个或更多个的组合进行通信。这些网络中的一个或更多个的一个或更多个部分可以是有线的或无线的。作为示例,计算机***800可以与无线PAN(WPAN)(例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信***(GSM)网络)、或其他合适的无线网络、或这些中的两个或更多个的组合进行通信。在适当的情况下,计算机***800可以包括用于这些网络中的任一个的任何合适的通信接口810。在适当的情况下,通信接口810可以包括一个或更多个通信接口810。尽管本公开描述并示出了特定的通信接口,但是本公开设想了任何合适的通信接口。
在特定实施例中,总线812包括将计算机***800的组件耦合到彼此的硬件、软件或两者。作为示例而不是作为限制,总线812可以包括加速图形端口(AGP)或其他图形总线、扩展工业标准体系结构(EISA)总线、前端总线(FSB)、HYPERTRANSPORT(HT)互连、工业标准体系结构(ISA)总线、INFINIBAND互连、低引脚数(LPC)总线、存储器总线,微通道体系结构(MCA)总线、***部件互连(PCI)总线、PCI-Express(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线、或任何其他合适的总线、或这些中的两个或更多个的组合。在适当的情况下,总线812可以包括一个或更多个总线812。尽管本公开描述并示出了特定总线,但是本公开设想了任何合适的总线或互连。
在本文,在适当的情况下,一个或更多个计算机可读非暂时性存储介质可以包括一个或更多个基于半导体的或其他集成电路(IC)(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字(SECURE DIGITAL)卡或驱动器、任何其他合适的计算机可读非暂时性存储介质、或这些中的两个或更多个的任何合适组合。在适当的情况下,计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。
本文中,除非另有明确指示或通过上下文另有指示,否则“或”是包括一切的而非排他性的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A或B”意指“A、B或两者”。此外,除非另有明确指示或通过上下文另有指示,否则“和”既是联合的又是各自的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A和B”意指“A和B,联合地或各自地”。
本公开的范围包括本领域中的普通技术人员将理解的对本文描述或示出的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文描述或示出的示例实施例。此外,尽管本公开将本文的相应实施例描述并示为包括特定的组件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域中的普通技术人员将理解的在本文任何地方描述或示出的任何组件、元件、特征、功能、操作或步骤的任何组合或置换。此外,在所附权利要求中对适合于、被布置成、能够、被配置成、实现来、可操作来、或操作来执行特定功能的装置或***或装置或***的组件的引用包括该装置、***、组件,无论它或那个特定功能是否被激活、开启或解锁,只要该装置、***或组件是这样被调整、被布置、使能够、被配置、被实现、可操作的、或操作的。此外,尽管本公开将特定实施例描述或示为提供特定优点,但是特定实施例可以提供这些优点中的一些、全部或不提供这些优点。
Claims (15)
1.一种方法,包括由一个或更多个计算***:
访问从用户的第一视点描绘虚拟场景的渲染帧,其中所述渲染帧是基于所述虚拟场景中的对象的至少一个3D模型生成的;
基于所述渲染帧生成多个表面,其中每个所述表面位于3D空间内并且包括视觉信息;
确定用户在所述3D空间中的第二视点;
确定所述多个表面从所述第二视点的可见性;和
基于所述视觉信息和所述多个表面的确定的可见性,渲染从所述第二视点描绘所述虚拟场景的子帧。
2.根据权利要求1所述的方法,其中:
所述多个表面中的每一个的所述视觉信息是纹理;
所述多个表面的所述确定的可见性识别从所述第二视点可见的所述多个表面上的点;和
所述子帧的所述渲染包括根据所述多个表面上的所述点对所述多个表面中的每一个的所述纹理进行采样。
3.根据权利要求1所述的方法,其中:
所述对象的所述3D模型包括多边形;和
所述渲染帧是基于所述多边形中的一个或更多个和从所述第一视点投射的光线之间的计算的交点生成的。
4.根据权利要求1所述的方法,其中:
所述渲染帧是至少基于所述对象的所述3D模型生成的多个帧之一;
所述渲染子帧是基于所述多个表面生成的多个子帧之一;
所述多个子帧是在所述渲染帧之后和所述多个帧的后续帧之前以第一帧速率生成的;和
所述多个子帧以高于所述第一帧速率的第二帧速率生成。
5.根据权利要求1所述的方法,其中所述多个表面的所述可见性是使用光线投射来确定的;和
所述渲染帧是使用光线跟踪生成的。
6.根据权利要求1所述的方法,其中:
所述渲染帧是基于所述虚拟场景中的所述对象的所述3D模型和第二对象的第二3D模型生成的;和
所述多个表面中的至少一个包括描绘所述对象和所述第二对象的视觉信息。
7.根据权利要求1所述的方法,其中所述渲染帧和所述子帧是不同的;和
所述第一视点和所述第二视点是在不同时间确定的。
8.一个或更多个体现软件的计算机可读非暂时性存储介质,所述软件在被执行时能够操作来:
访问从用户的第一视点描绘虚拟场景的渲染帧,其中所述渲染帧是基于所述虚拟场景中的对象的至少一个3D模型生成的;
基于所述渲染帧生成多个表面,其中每个所述表面位于3D空间内并且包括视觉信息;
确定用户在所述3D空间中的第二视点;
确定所述多个表面从所述第二视点的可见性;和
基于所述视觉信息和所述多个表面的确定的可见性,渲染从所述第二视点描绘所述虚拟场景的子帧。
9.根据权利要求8所述的介质,其中:
所述多个表面中的每一个的所述视觉信息是纹理;
所述多个表面的所述确定的可见性识别从所述第二视点可见的所述多个表面上的点;和
所述子帧的所述渲染包括根据所述多个表面上的所述点对所述多个表面中的每一个的所述纹理进行采样。
10.根据权利要求8所述的介质,其中:
所述对象的所述3D模型包括多边形;和
所述渲染帧是基于所述多边形中的一个或更多个和从所述第一视点投射的光线之间的计算的交点生成的。
11.根据权利要求8所述的介质,其中:
所述渲染帧是至少基于所述对象的所述3D模型生成的多个帧之一;
所述渲染子帧是基于所述多个表面生成的多个子帧之一;和
所述多个子帧是在所述渲染帧之后并且在所述多个帧的后续帧之前生成的。
12.一种***,包括:
一个或更多个处理器;和
一个或更多个计算机可读非暂时性存储介质,其耦合到所述处理器中的一个或更多个并且包括指令,所述指令当由所述处理器中的一个或更多个执行时能够操作来使所述***:
访问从用户的第一视点描绘虚拟场景的渲染帧,其中所述渲染帧是基于所述虚拟场景中的对象的至少一个3D模型生成的;
基于所述渲染帧生成多个表面,其中每个所述表面位于3D空间内并且包括视觉信息;
确定用户在所述3D空间中的第二视点;
确定所述多个表面从所述第二视点的可见性;和
基于所述视觉信息和所述多个表面的确定的可见性,渲染从所述第二视点描绘所述虚拟场景的子帧。
13.根据权利要求12所述的***,其中:
所述多个表面中的每一个的所述视觉信息是纹理;
所述多个表面的所述确定的可见性识别从所述第二视点可见的所述多个表面上的点;和
所述子帧的所述渲染包括根据所述多个表面上的所述点对所述多个表面中的每一个的所述纹理进行采样。
14.根据权利要求12所述的***,其中:
所述对象的所述3D模型包括多边形;和
所述渲染帧是基于所述多边形中的一个或更多个和从所述第一视点投射的光线之间的计算的交点生成的。
15.根据权利要求12所述的***,其中:
所述渲染帧是至少基于所述对象的所述3D模型生成的多个帧之一;
所述渲染子帧是基于所述多个表面生成的多个子帧之一;和
所述多个子帧是在所述渲染帧之后并且在所述多个帧的后续帧之前生成的。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862753035P | 2018-10-30 | 2018-10-30 | |
US62/753,035 | 2018-10-30 | ||
US16/586,590 US11170577B2 (en) | 2018-10-30 | 2019-09-27 | Generating and modifying representations of objects in an augmented-reality or virtual-reality scene |
US16/586,590 | 2019-09-27 | ||
PCT/US2019/058267 WO2020092195A1 (en) | 2018-10-30 | 2019-10-28 | Generating and modifying representations of objects in an augmented-reality or virtual-reality scene |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112912823A true CN112912823A (zh) | 2021-06-04 |
Family
ID=70327383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980069868.8A Pending CN112912823A (zh) | 2018-10-30 | 2019-10-28 | 生成和修改增强现实或虚拟现实场景中对象的表示 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11170577B2 (zh) |
EP (1) | EP3874468A1 (zh) |
JP (1) | JP2022511273A (zh) |
KR (1) | KR20210082242A (zh) |
CN (1) | CN112912823A (zh) |
TW (1) | TW202019167A (zh) |
WO (1) | WO2020092195A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11049315B2 (en) * | 2019-07-31 | 2021-06-29 | Verizon Patent And Licensing Inc. | Methods and devices for bifurcating graphics rendering between a media player device and a multi-access edge compute server |
US11468627B1 (en) * | 2019-11-08 | 2022-10-11 | Apple Inc. | View dependent content updated rates |
GB2590422B (en) * | 2019-12-17 | 2024-03-06 | Sony Interactive Entertainment Inc | Content generation system and method |
US11335077B1 (en) * | 2021-03-19 | 2022-05-17 | Facebook Technologies, Llc. | Generating and modifying representations of dynamic objects in an artificial reality environment |
TWI778756B (zh) * | 2021-08-20 | 2022-09-21 | 財團法人資訊工業策進會 | 三維邊界框重建方法、三維邊界框重建系統及非暫態電腦可讀取媒體 |
US11961184B2 (en) * | 2021-09-17 | 2024-04-16 | Samsung Electronics Co., Ltd. | System and method for scene reconstruction with plane and surface reconstruction |
WO2023063937A1 (en) * | 2021-10-13 | 2023-04-20 | Innopeak Technology, Inc. | Methods and systems for detecting planar regions using predicted depth |
US11816231B2 (en) | 2021-11-22 | 2023-11-14 | Bank Of America Corporation | Using machine-learning models to determine graduated levels of access to secured data for remote devices |
US11935203B2 (en) * | 2022-06-30 | 2024-03-19 | Snap Inc. | Rotational navigation system in augmented reality environment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170115488A1 (en) * | 2015-10-26 | 2017-04-27 | Microsoft Technology Licensing, Llc | Remote rendering for virtual images |
US20170374341A1 (en) * | 2016-06-22 | 2017-12-28 | Ashraf Ayman Michail | Depth-aware reprojection |
CN108702454A (zh) * | 2016-02-29 | 2018-10-23 | 微软技术许可有限责任公司 | 选择运载工具捕获的视频的部分以用于显示 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4734640B2 (ja) * | 2006-02-10 | 2011-07-27 | 国立大学法人岐阜大学 | 仮想現実画像表示装置 |
US8570320B2 (en) * | 2011-01-31 | 2013-10-29 | Microsoft Corporation | Using a three-dimensional environment model in gameplay |
US9424685B2 (en) * | 2012-07-31 | 2016-08-23 | Imagination Technologies Limited | Unified rasterization and ray tracing rendering environments |
US10089790B2 (en) * | 2015-06-30 | 2018-10-02 | Ariadne's Thread (Usa), Inc. | Predictive virtual reality display system with post rendering correction |
US9832451B2 (en) * | 2015-11-17 | 2017-11-28 | Survios, Inc. | Methods for reduced-bandwidth wireless 3D video transmission |
US10026212B2 (en) * | 2015-11-20 | 2018-07-17 | Google Llc | Electronic display stabilization using pixel velocities |
US11010956B2 (en) * | 2015-12-09 | 2021-05-18 | Imagination Technologies Limited | Foveated rendering |
US10379611B2 (en) * | 2016-09-16 | 2019-08-13 | Intel Corporation | Virtual reality/augmented reality apparatus and method |
US11127110B2 (en) * | 2017-03-01 | 2021-09-21 | Arm Limited | Data processing systems |
US10713752B2 (en) * | 2017-06-09 | 2020-07-14 | Sony Interactive Entertainment Inc. | Temporal supersampling for foveated rendering systems |
-
2019
- 2019-09-27 US US16/586,590 patent/US11170577B2/en active Active
- 2019-10-28 JP JP2021510189A patent/JP2022511273A/ja active Pending
- 2019-10-28 CN CN201980069868.8A patent/CN112912823A/zh active Pending
- 2019-10-28 KR KR1020217016374A patent/KR20210082242A/ko unknown
- 2019-10-28 WO PCT/US2019/058267 patent/WO2020092195A1/en unknown
- 2019-10-28 EP EP19805032.0A patent/EP3874468A1/en active Pending
- 2019-10-30 TW TW108139249A patent/TW202019167A/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170115488A1 (en) * | 2015-10-26 | 2017-04-27 | Microsoft Technology Licensing, Llc | Remote rendering for virtual images |
CN108702454A (zh) * | 2016-02-29 | 2018-10-23 | 微软技术许可有限责任公司 | 选择运载工具捕获的视频的部分以用于显示 |
US20170374341A1 (en) * | 2016-06-22 | 2017-12-28 | Ashraf Ayman Michail | Depth-aware reprojection |
Non-Patent Citations (2)
Title |
---|
BERNHARD REINERT, ET AL: "Proxy-guided Image-based Rendering for Mobile Devices", COMPUTER GRAPHICS FORUM, vol. 35, no. 7, pages 353, XP055537861, DOI: 10.1111/cgf.13032 * |
T. ISHIKAWA, ET AL: "Real-time generation of novel views of a dynamic scene using morphing and visual hull", IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING 2005, no. 1, pages 1 - 4 * |
Also Published As
Publication number | Publication date |
---|---|
KR20210082242A (ko) | 2021-07-02 |
WO2020092195A1 (en) | 2020-05-07 |
JP2022511273A (ja) | 2022-01-31 |
TW202019167A (zh) | 2020-05-16 |
EP3874468A1 (en) | 2021-09-08 |
US20200134923A1 (en) | 2020-04-30 |
US11170577B2 (en) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11170577B2 (en) | Generating and modifying representations of objects in an augmented-reality or virtual-reality scene | |
US11719933B2 (en) | Hand-locked rendering of virtual objects in artificial reality | |
CN106856009B (zh) | 视网膜凹式渲染 | |
US11640691B2 (en) | Display engine for post-rendering processing | |
US11176901B1 (en) | Pan-warping and modifying sub-frames with an up-sampled frame rate | |
US11954805B2 (en) | Occlusion of virtual objects in augmented reality by physical objects | |
US11862128B2 (en) | Systems and methods for foveated rendering | |
CN113302658A (zh) | 并行纹理采样 | |
US11557049B1 (en) | Interpolation optimizations for a display engine for post-rendering processing | |
US20210090322A1 (en) | Generating and Modifying Representations of Objects in an Augmented-Reality or Virtual-Reality Scene | |
US11011123B1 (en) | Pan-warping and modifying sub-frames with an up-sampled frame rate | |
JP2024502273A (ja) | 時間的中心窩レンダリング | |
WO2022093472A1 (en) | Distortion-corrected rasterization | |
CN115512087A (zh) | 使用在预定距离处的遮挡表面生成和修改人工现实环境 |
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 | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Yuan Platform Technology Co.,Ltd. Address before: California, USA Applicant before: Facebook Technologies, LLC |
|
CB02 | Change of applicant information | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210604 |