IP Library Granted Patent US 12,235,925
Granted Patent B2
US 12,235,925 · App. 18/587,799 · Granted Feb 25, 2025

Interactive path tracing on the web

Inventors: Francisco Avila (San Francisco, CA); Lucas Crane (San Francisco, CA); Abhishek Tripathi (San Francisco, CA)
Assignee: Hover Inc.
G06F16/9577G06T1/20G06T15/005G06T15/04G06T15/08G06T15/205G06T15/50G06T15/80G06T17/10G06T17/205H04L67/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,235,925
App. No.
18/587,799
Granted
Feb 25, 2025
Kind
B2
Abstract

A method renders photorealistic images in a web browser. The method is performed at a computing device having a general purpose processor and a graphics processing unit (GPU). The method includes obtaining an environment map and images of an input scene. The method also includes computing textures for the input scene including by encoding an acceleration structure of the input scene. The method further includes transmitting the textures to shaders executing on a GPU. The method includes generating samples of the input scene, by performing at least one path tracing algorithm on the GPU, according to the textures. The method also includes lighting or illuminating a sample of the input scene using the environment map, to obtain a lighted scene, and tone mapping the lighted scene. The method includes drawing output on a canvas, in the web browser, based on the tone-mapped scene to render the input scene.

Claims (56)

1. A computer system for rendering images using path tracing, comprising:

one or more processors, including a general purpose processor and a graphics processing unit (GPU);

a display; and

memory;

wherein the memory stores one or more programs configured for execution by the one or more processors, and the one or more programs comprising instructions for:

obtaining an input image having a current pose;

rendering a current frame of the input image with a path-traced sample per pixel;

obtaining a prior frame corresponding to a prior pose, wherein the current frame and the prior frame have at least one overlapping pixel and each of the current frame and prior frame image data includes an alpha channel set to luminance contribution, for each pixel;

re-projecting samples from the prior frame into the current frame based on the alpha channel corresponding to each overlapping pixel with the current frame, including (i) blending diffuse light of the current frame with diffuse light of at least the prior frame using a long temporal filter, and (ii) blending specular light of the current frame with specular light of at least the prior frame using a short temporal filter; and

modifying the current frame with the re-projected samples, including storing a number of samples rendered in the alpha channel for each pixel.

2. The computer system of claim 1 , wherein obtaining the prior frame corresponding to the prior pose comprises determining if a first mesh identifier for the at least one overlapping pixel in the prior frame matches a second mesh identifier for the overlapping pixel in the current frame.

3. The computer system of claim 1 , wherein modifying the current frame with the re-projected samples comprises averaging a color channel value for the pixel in the current frame with corresponding values from the re-projected samples.

4. The computer system of claim 3 , wherein averaging a color channel comprises:

summing the color channel value for the pixel of the prior frame to the color channel value of the current frame; and

modifying the summed color channel value by the current frame's alpha channel value for that pixel.

5. The computer system of claim 1 , wherein re-projecting samples from the prior frame into the current frame comprises:

determining if a surface corresponding to a pixel of the current frame is visible in the prior frame; and

in accordance with a determination that the surface is visible in the prior frame, averaging color channels for the pixel with corresponding values from the re-projected samples.

6. The computer system of claim 1 , wherein the one or more programs further comprise instructions for:

detecting if a camera used to obtain the input image has moved; and

in response to detecting that the camera has moved, blending the current frame with the re-projected samples from the prior frame using an exponential average.

7. The computer system of claim 1 , wherein the one or more programs further comprise instructions for:

detecting if a camera used to obtain the input image is still; and

in response to detecting that the camera is still, linearly blending the current frame with the re-projected samples from the prior frame.

8. The computer system of claim 1 , wherein the one or more programs further comprise instructions for:

detecting if a camera used to obtain the input image is moving; and

in response to detecting that the camera is moving, blurring at least a portion of the current frame.

9. The computer system of claim 1 , wherein the one or more programs further comprise instructions for:

repeating obtaining a new input scene, rendering a current frame, and blending the current frame reusing samples.

10. The computer system of claim 1 , wherein (i) blending the diffuse light of the current frame with diffuse light of at least the prior frame using a long temporal filter, and (ii) blending the specular light of the current frame with specular light of at least the prior frame using a short temporal filter, is based on separate buffers for the specular light and the diffuse light.

11. A method of rendering images using path tracing, the method comprising:

obtaining an input image having a current pose;

rendering a current frame of the input image with a path-traced sample per pixel;

obtaining a prior frame corresponding to a prior pose, wherein the current frame and the prior frame have at least one overlapping pixel and each of the current frame and prior frame image data includes an alpha channel set to luminance contribution, for each pixel;

re-projecting samples from the prior frame into the current frame based on the alpha channel corresponding to each overlapping pixel with the current frame, including (i) blending diffuse light of the current frame with diffuse light of at least the prior frame using a long temporal filter, and (ii) blending specular light of the current frame with specular light of at least the prior frame using a short temporal filter; and

modifying the current frame with the re-projected samples, including storing a number of samples rendered in the alpha channel for each pixel.

12. The method claim 11 , wherein obtaining the prior frame corresponding to the prior pose comprises determining if a first mesh identifier for the at least one overlapping pixel in the prior frame matches a second mesh identifier for the overlapping pixel in the current frame.

13. The method of claim 11 , wherein modifying the current frame with the re-projected samples comprises averaging a color channel value for the pixel in the current frame with corresponding values from the re-projected samples.

14. The method of claim 13 , wherein averaging a color channel comprises:

summing the color channel value for the pixel of the prior frame to the color channel value of the current frame; and

modifying the summed color channel value by the current frame's alpha channel value for that pixel.

15. The method of claim 11 , wherein re-projecting samples from the prior frame into the current frame comprises:

determining if a surface corresponding to a pixel of the current frame is visible in the prior frame; and

in accordance with a determination that the surface is visible in the prior frame, averaging color channels for the pixel with corresponding values from the re-projected samples.

16. The method of claim 11 , further comprising:

detecting if a camera used to obtain the input image has moved; and

in response to detecting that the camera has moved, blending the current frame with the re-projected samples from the prior frame using an exponential average.

17. The method of claim 11 , further comprising:

detecting if a camera used to obtain the input image is still; and

in response to detecting that the camera is still, linearly blending the current frame with the re-projected samples from the prior frame.

18. The method of claim 11 , further comprising:

detecting if a camera used to obtain the input image is moving; and

in response to detecting that the camera is moving, blurring at least a portion of the current frame.

19. The method of claim 11 , further comprising:

repeating obtaining a new input scene, rendering a current frame, and blending the current frame reusing samples.

20. The method of claim 11 , wherein (i) blending the diffuse light of the current frame with diffuse light of at least the prior frame using a long temporal filter, and (ii) blending the specular light of the current frame with specular light of at least the prior frame using a short temporal filter, is based on separate buffers for the specular light and the diffuse light.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2026
From: CRANE, LUCAS; AVILA, FRANCISCO; TRIPATHI, ABHISHEK
To: HOVER INC.
Reel/Frame 075369/0563 →
Continuity (5)
Continuation 17879737 · Aug 2, 2022
Continuation 17067512 · Oct 9, 2020
Provisional Application 63067249 · Aug 18, 2020
Provisional Application 62913663 · Oct 10, 2019
Related Publication 20240202270A1 · Jun 20, 2024
References Cited (25)
US 5710876A · Peercy · 1998 [cited by applicant]
US 7427986B2 · Pellacini et al. · 2008 [cited by applicant]
US 7808503B2 · Duluk, Jr. et al. · 2010 [cited by applicant]
US 7844106B2 · Pfister et al. · 2010 [cited by applicant]
US 9142056B1 · Baran et al. · 2015 [cited by applicant]
US 9582247B1 · Milliron et al. · 2017 [cited by applicant]
US 10665011B1 · Sunkavalli et al. · 2020 [cited by applicant]
US 10867214B2 · Tremblay et al. · 2020 [cited by applicant]
US 10893262B2 · Vetter et al. · 2021 [cited by applicant]
US 11158032B2 · Atkins et al. · 2021 [cited by applicant]
US 11429690B2 · Avila · 2022 [cited by examiner]
US 11954169B2 · Avila · 2024 [cited by examiner]
US 20060209067A1 · Pellacini et al. · 2006 [cited by applicant]
US 20070165035A1 · Duluk et al. · 2007 [cited by applicant]
US 20090074238A1 · Pfister et al. · 2009 [cited by applicant]
US 20160241838A1 · Cole et al. · 2016 [cited by applicant]
US 20180176483A1 · Knorr et al. · 2018 [cited by applicant]
US 20190251397A1 · Tremblay et al. · 2019 [cited by applicant]
US 20200013151A1 · Atkins et al. · 2020 [cited by applicant]
US 20220051467A1 · Woop · 2022 [cited by examiner]
US 20240203038A1 · Liu · 2024 [cited by examiner]
Avila, Notice of Allowance, U.S. Appl. No. 17/067,512, Apr. 28, 2022, 10 pgs. [cited by applicant]
Hover Inc., PCT/US2020/055261, International Search Report and Written Opinion, Mar. 30, 2021, 16 pgs. [cited by applicant]
Lesar et al., “Real-Time Interactive Platform-Agnostic Volumetric Path Tracing in WebGL 2.0,” ACM, Jun. 22, 2018, Web3D'18, Jun. 20-22, 2018, Pozman, Poland, retrieved from URL: https.//dl.acm.org/doi/pdf/10.1145/320880… [cited by applicant]
Avila, Notice of Allowance, U.S. Appl. No. 17/879,737, Dec. 4, 2023, 9 pgs. [cited by applicant]