Geometry-aware augmented reality effects with real-time depth map

US12236541B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12236541-B2
Application numberUS-202017998736-A
CountryUS
Kind codeB2
Filing dateMay 29, 2020
Priority dateMay 29, 2020
Publication dateFeb 25, 2025
Grant dateFeb 25, 2025

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques of introducing virtual objects into a physical environment of AR system include displacing vertices of a mesh representing the physical environment based on a live depth map. For example, an AR system generates a mesh template, i.e., an initial mesh with vertices that represents a physical environment and a depth map that indicates a geometry of real objects within the physical environment. The AR system is configured to represent the real objects in the physical environment by displacing the vertices of the mesh based on depth values of the depth map and parameter values of a pinhole camera model. The depth values may be taken from the perspective of an illumination source in the physical environment.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: generating a triangular mesh representing a physical environment and a depth map of the physical environment, the triangular mesh including a plurality of vertices, the depth map including a plurality of depth values; performing a displacement operation on the plurality of vertices of the triangular mesh including removing a vertex of the plurality of vertices of the triangular mesh in response to the depth map satisfying a criterion to produce a plurality of displaced vertices representing a geometry of at least one real object within the physical environment; receiving virtual object data representing a virtual object configured to be displayed with the at least one real object in the physical environment; and displaying the virtual object in the physical environment on a display to produce a displayed virtual object, the displayed virtual object having a difference from the virtual object according to the plurality of displaced vertices. 2. The method as in claim 1 , wherein performing the displacement operation includes: displacing each of the plurality of vertices of the triangular mesh according to a pinhole camera model. 3. The method as in claim 1 , wherein the criterion includes a difference being greater than a threshold, the difference being between the depth value of the depth map corresponding to the vertex and an average of the depth value of the depth map corresponding to the vertex and the depth values corresponding to a set of neighboring vertices of the plurality of vertices. 4. The method as in claim 1 , wherein the triangular mesh further includes a plurality of indices indicating a connectivity of the triangular mesh, each of the plurality of indices corresponding to a respective vertex of the plurality of vertices of the triangular mesh, the connectivity of the triangular mesh being constant over time. 5. The method as in claim 4 , wherein the plurality of indices are arranged in a plurality of triplets of indices, each of the plurality of triplets of indices representing a triangle of the triangular mesh and being arranged in an order representing a specified winding order. 6. The method as in claim 4 , wherein generating the triangular mesh includes: storing the plurality of vertices and the plurality of indices of the triangular mesh in a first buffer in a memory in a central processing unit (CPU); and copying the plurality of vertices and the plurality of indices to a second buffer in a memory of a graphics processing unit (GPU). 7. The method as in claim 1 , wherein generating the depth map includes: generating the depth values of the depth map along a ray emanating from a light source in a vicinity of the physical environment. 8. The method as in claim 1 , further comprising, prior to receiving the virtual object data: rendering the triangular mesh having the plurality of displaced vertices as a transparent mesh to the display; and rendering first shadows on the transparent mesh based on the depth map. 9. The method as in claim 8 , wherein displaying the virtual object in the physical environment on the display includes: rendering second shadows on the triangular mesh based on the displayed virtual object. 10. The method as in claim 1 , further comprising: generating a mesh collider based on the triangular mesh, the mesh collider being configured to detect collisions between the at least one real object and the virtual object, the mesh collider including a set of vertices. 11. The method as in claim 10 , further comprising: determining a field of view (FOV) of a camera within which the virtual object in the physical environment is displayed; extending a boundary of the mesh collider in response to the virtual object moving out of the FOV of the camera. 12. The method as in claim 10 , wherein generating the mesh collider includes: computing, as a normal to the mesh collider in a vicinity of a vertex of the set of vertices, a cross product of orthogonal vectors formed by neighboring vertices of the set of vertices. 13. A computer program product comprising a nontransitive storage medium, the computer program product including code that, when executed by processing circuitry of a server computing device, causes the processing circuitry to perform a method, the method comprising: generating a triangular mesh representing a physical environment and a depth map of the physical environment, the triangular mesh including a plurality of vertices, the depth map including a plurality of depth values; performing a displacement operation on the plurality of vertices of the triangular mesh including removing a vertex of the plurality of vertices of the triangular mesh in response to the depth map satisfying a criterion to produce a plurality of displaced vertices representing a geometry of at least one real object within the physical environment; receiving virtual object data representing a virtual object configured to be displayed with the at least one real object in the physical environment; and displaying the virtual object in the physical environment on a display to produce a displayed virtual object, the displayed virtual object having a difference from the virtual object according to the plurality of displaced vertices. 14. The computer program product as in claim 13 , wherein the criterion includes a difference being greater than a threshold, the difference being between the depth value of the depth map corresponding to the vertex and an average of the depth value of the depth map corresponding to the vertex and the depth values corresponding to a set of neighboring vertices of the plurality of vertices. 15. The computer program product as in claim 13 , wherein the triangular mesh further includes a plurality of indices indicating a connectivity of the triangular mesh, each of the plurality of indices corresponding to a respective vertex of the plurality of vertices of the triangular mesh, the connectivity of the triangular mesh being constant over time. 16. The computer program product as in claim 13 , wherein generating the depth map includes: generating the depth values of the depth map along a ray emanating from a light source in a vicinity of the physical environment. 17. The computer program product as in claim 13 , further comprising: generating a mesh collider based on the triangular mesh, the mesh collider being configured to detect collisions between the at least one real object and the virtual object, the mesh collider including a set of vertices. 18. An electronic apparatus, the electronic apparatus comprising: memory; and controlling circuitry coupled to the memory, the controlling circuitry being configured to: generate a triangular mesh representing a physical environment and a depth map of the physical environment, the triangular mesh including a plurality of vertices, the depth map including a plurality of depth values; perform a displacement operation on the plurality of vertices of the triangular mesh including removing a vertex of the plurality of vertices of the triangular mesh in response to the depth map satisfying a criterion to produce a plurality of displaced vertices representing a geometry of at least one real object within the physical environment; receive virtual object data representing a virtual object configured to be displayed with the at least one real object in the physical environment; and display the virtual object in the physical environment on a display to produce a displayed virtual object, the displayed virtual object

Assignees

Inventors

Classifications

  • Using real world measurements to influence rendering · CPC title

  • Shadow map, environment map · CPC title

  • Collision detection, intersection · CPC title

  • Range image; Depth image; 3D point clouds · CPC title

  • involving image processing hardware · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12236541B2 cover?
Techniques of introducing virtual objects into a physical environment of AR system include displacing vertices of a mesh representing the physical environment based on a live depth map. For example, an AR system generates a mesh template, i.e., an initial mesh with vertices that represents a physical environment and a depth map that indicates a geometry of real objects within the physical envir…
Who is the assignee on this patent?
Google Llc
What technology area does this patent fall under?
Primary CPC classification G06T17/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 25 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 11 related publications on this page (citations in our corpus or others sharing the same primary CPC).