IP Library Granted Patent US 11,676,328
Granted Patent B1
US 11,676,328 · App. 18/048,973 · Granted Jun 13, 2023

Systems and methods for prioritized rendering and streaming based on risk maps that predict change in a three-dimensional environment

Inventors: DonEliezer Baize (Los Angeles, CA); David Paul Watson (Montgomery, TX)
Assignee: Illuscio, Inc.
G06T15/06G06T2200/04
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 11,676,328
App. No.
18/048,973
Granted
Jun 13, 2023
Kind
B1
Abstract

A system prioritizes the rendering and streaming of image data based on risk maps that predict change in a three-dimensional (“3D”) environment. The system receives primitives that are distributed across a 3D space to represent the 3D environment. The system generates a first image based on primitives that fall within a first view frustum, and generates a risk map with a risk value for each particular pixel of the first image. Each risk value quantifies a probability that a pixel of the first image associated with that risk value changes as a result of changing the first view frustum to a second view frustum. The system then performs an out-of-order rendering of primitives that fall within the second view frustum based on the risk value for each first image pixel that is replaced in a second image with a rendered primitive from the second view frustum.

Claims (79)

1. A method comprising:

receiving a three-dimensional (“3D”) environment comprising a plurality of primitives distributed across a 3D space;

generating a first image based on a first set of the plurality of primitives that fall within a first view frustum, wherein the first image comprises a first set of pixels;

generating a risk map comprising a risk value for each particular pixel of the first set of pixels, wherein the risk value quantifies a probability of that particular pixel changing as a result of changing the first view frustum to a second view frustum that includes a second set of the plurality of primitives;

tracking a change of the first view frustum to the second view frustum;

mapping each risk value from the risk map that was generated from the first set of pixels of the first image to a different primitive of the second set of primitives in the second view frustum based on each primitive of the second set of primitives being at a position in the second view frustum that aligns with a position of a pixel from the first set of pixels and the pixel being associated with a particular risk value; and

performing an out-of-order rendering of the second set of primitives based on the mapping of each risk value, wherein performing the out-of-order rendering comprises generating a second image by rendering primitives from the second set of primitives in an order starting with primitives from the second set of primitives that are mapped to a largest risk value of the risk map and ending with primitives from the second set of primitives mapped to a smallest risk value of the risk map.

2. The method of claim 1 , wherein performing the out-of-order rendering further comprises:

determining a first pixel of the first set of pixels that is associated with a first risk value and that is created in the second image by a first primitive of the second set of primitives;

determining a second pixel of the first set of pixels that is associated with a second risk value and that is created in the second image by a second primitive of the second set of primitives, wherein the first pixel is separated from the second pixel by at least one other pixel in the first set of pixels; and

rendering the second primitive before the first primitive in response to the second risk value being greater than the first risk value.

3. The method of claim 2 further comprising:

streaming a first result produced from rendering the second primitive before a second result produced from rendering the first primitive to a display device.

4. The method of claim 1 ,

wherein mapping each risk value comprises:

positioning the risk map over the second view frustum;

projecting a ray through each pixel of the first set of pixels that is represented in the risk map;

detecting a first ray passing through a pixel represented in the risk map that is associated with a first risk value, and intersecting a first primitive of the second set of primitives; and

detecting a second ray passing through a pixel represented in the risk map that is associated with a second risk value, and intersecting a second primitive of the second set of primitives; and

wherein performing the out-of-order rendering further comprises:

rendering the second primitive before the first primitive in response to the second risk value being greater than the first risk value.

5. The method of claim 1 further comprising:

generating a linear gradient based on an amount of change surrounding each primitive of the first set of primitives; and

wherein generating the risk map comprises deriving the risk value for each particular pixel of the first set of pixels based on the linear gradient that is generated for a primitive of the first set of primitives that was rendered to produce that particular pixel.

6. The method of claim 1 further comprising:

performing an out-of-order streaming of a second set of pixels that are generated for the second image based on the out-of-order rendering of the second set of primitives.

7. The method of claim 1 , wherein generating the risk map comprises:

positioning the first set of pixels relative to the first view frustum;

projecting a ray through a first pixel of the first set of pixels that intersects a particular primitive of the first set of primitives in the 3D environment; and

computing the risk value for the first pixel based on an amount of change around the particular primitive.

8. The method of claim 7 , wherein computing the risk value for the first pixel comprises:

determining an angle of difference between the ray intersecting the particular primitive and a surface normal of the particular primitive; and

defining the risk value for the first pixel based on the angle of difference.

9. The method of claim 7 , wherein computing the risk value for the first pixel comprises:

generating a plane based on one or more of a surface normal of the particular primitive or a positioning of primitives that are adjacent to the particular primitive;

determining the amount of change across the plane; and

defining the risk value for the first pixel based on the amount of change across the plane.

10. The method of claim 7 , wherein computing the risk value for the first pixel comprises:

reflecting the ray off the particular primitive based on a surface normal of the particular primitive;

determining a number of other primitives from the plurality of primitives that the ray intersects and reflects off after reflecting the ray off the particular primitive; and

defining the risk value for the first pixel based on the number of other primitives that the ray intersects and reflects off.

11. A rendering system comprising:

one or more hardware processors configured to:

receive a three-dimensional (“3D”) environment comprising a plurality of primitives distributed across a 3D space;

generate a first image based on a first set of the plurality of primitives that fall within a first view frustum, wherein the first image comprises a first set of pixels;

generate a risk map comprising a risk value for each particular pixel of the first set of pixels, wherein the risk value quantifies a probability of that particular pixel changing as a result of changing the first view frustum to a second view frustum that includes a second set of the plurality of primitives;

track a change of the first view frustum to the second view frustum;

map each risk value from the risk map that was generated from the first set of pixels of the first image to a different primitive of the second set of primitives in the second view frustum based on each primitive of the second set of primitives being at a position in the second view frustum that aligns with a position of a pixel from the first set of pixels and the pixel being associated with a particular risk value; and

perform an out-of-order rendering of the second set of primitives based on the mapping of each risk value, wherein performing the out-of-order rendering comprises generating a second image by rendering primitives from the second set of primitives in an order starting with primitives from the second set of primitives that are mapped to a largest risk value of the risk map and ending with primitives from the second set of primitives mapped to a smallest risk value of the risk map.

12. The rendering system of claim 11 , wherein performing the out-of-order rendering further comprises:

determining a first pixel of the first set of pixels that is associated with a first risk value and that is created in the second image by a first primitive of the second set of primitives;

determining a second pixel of the first set of pixels that is associated with a second risk value and that is created in the second image by a second primitive of the second set of primitives, wherein the first pixel is separated from the second pixel by at least one other pixel in the first set of pixels; and

rendering the second primitive before the first primitive in response to the second risk value being greater than the first risk value.

13. The rendering system of claim 12 , wherein the one or more hardware processors are further configured to:

stream a first result produced from rendering the second primitive before a second result produced from rendering the first primitive to a display device.

14. The rendering system of claim 11 ,

wherein mapping each risk value comprises:

positioning the risk map over the second view frustum;

projecting a ray through each pixel of the first set of pixels that is represented in the risk map;

detecting a first ray passing through a pixel represented in the risk map that is associated with a first risk value, and intersecting a first primitive of the second set of primitives; and

detecting a second ray passing through a pixel represented in the risk map that is associated with a second risk value, and intersecting a second primitive of the second set of primitives; and

wherein performing the out-of-order rendering further comprises:

rendering the second primitive before the first primitive in response to the second risk value being greater than the first risk value.

15. The rendering system of claim 11 , wherein the one or more hardware processors are further configured to:

generate a linear gradient based on an amount of change surrounding each primitive of the first set of primitives; and

wherein generating the risk map comprises deriving the risk value for each particular pixel of the first set of pixels based on the linear gradient that is generated for a primitive of the first set of primitives that was rendered to produce that particular pixel.

16. The rendering system of claim 11 , wherein the one or more hardware processors are further configured to:

perform an out-of-order streaming of a second set of pixels that are generated for the second image based on the out-of-order rendering of the second set of primitives.

17. The rendering system of claim 11 , wherein generating the risk map comprises:

positioning the first set of pixels relative to the first view frustum;

projecting a ray through a first pixel of the first set of pixels that intersects a particular primitive of the first set of primitives in the 3D environment; and

computing the risk value for the first pixel based on an amount of change around the particular primitive.

18. A non-transitory computer-readable medium storing program instructions that, when executed by one or more hardware processors of a rendering system, cause the rendering system to perform operations comprising:

receive a three-dimensional (“3D”) environment comprising a plurality of primitives distributed across a 3D space;

generate a first image based on a first set of the plurality of primitives that fall within a first view frustum, wherein the first image comprises a first set of pixels;

generate a risk map comprising a risk value for each particular pixel of the first set of pixels, wherein the risk value quantifies a probability of that particular pixel changing as a result of changing the first view frustum to a second view frustum that includes a second set of the plurality of primitives;

track a change of the first view frustum to the second view frustum;

map each risk value from the risk map that was generated from the first set of pixels of the first image to a different primitive of the second set of primitives in the second view frustum based on each primitive of the second set of primitives being at a position in the second view frustum that aligns with a position of a pixel from the first set of pixels and the pixel being associated with a particular risk value; and

perform an out-of-order rendering of the second set of primitives based on the mapping of each risk value, wherein performing the out-of-order rendering comprises generating for each particular pixel of the first set of pixels a second image by rendering primitives from the second set of primitives in an order starting with primitives from the second set of primitives that are mapped to a largest risk value of the risk map and ending with primitives from the second set of primitives mapped to a smallest risk value of the risk map.

Assignments (2)
CHANGE OF NAME Recorded Sep 18, 2025
From: ILLUSCIO, INC.
To: MIRIS, INC.
Reel/Frame 072896/0406 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2022
From: BAIZE, DONELIEZER; WATSON, DAVID PAUL
To: ILLUSCIO, INC.
Reel/Frame 061513/0485 →
Cited By (1)
US 12,536,734