IP Library › Granted Patent US 11,711,494
Granted Patent B1
US 11,711,494 · App. 17/875,597 · Granted Jul 25, 2023

Automatic instancing for efficient rendering of three-dimensional virtual environment

Inventors: Gerard Cornelis Krol (Leiden, NL); Petr Polyakov (Tampa, FL)
Assignee: Katmai Tech Inc.
H04N7/157G06T15/005
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,711,494
App. No.
17/875,597
Granted
Jul 25, 2023
Kind
B1
Abstract

Disclosed herein is a web-based videoconference system that allows for video avatars to navigate within a virtual environment. Various methods for efficient modeling, rendering, and shading are disclosed herein.

Claims (44)

1. A computer-implemented method for efficient rendering in a three-dimensional virtual environment including a plurality of objects, each object representing a three-dimensional model, comprising:

determining that the plurality of objects includes a group of repeating, identical three-dimensional models in the three-dimensional virtual environment;

generating a single instruction specifying a rendering engine to render the repeating, identical three-dimensional models in the three-dimensional virtual environment, wherein the single instruction instructs the rendering engine to rasterize the plurality of objects, and wherein the single instruction is a draw call to the rendering engine in a cross-browser JavaScript library to allow for creation of graphical processing unit (GPU)-accelerated three-dimensional animation in a web browser; and

inputting the single instruction into the rendering engine for execution.

2. The method of claim 1 , wherein the draw call is to a graphics card.

3. The method of claim 1 , further comprising:

marking the plurality of objects so that when the plurality of objects is sent to the rendering engine the plurality of objects is not rendered.

4. The method of claim 3 , wherein the marking comprises marking a scene graph.

5. The method of claim 3 , wherein the marking comprises marking the objects in a scene graph, and wherein the generating the single instruction comprises adding the single instruction to the scene graph.

6. The method of claim 1 , further comprising:

de-duplicating, from the plurality of objects, textures having a same image and properties.

7. The method of claim 1 , further comprising:

de-duplicating, from the plurality of objects, materials having the same properties defining how the respective material reacts to light.

8. The method of claim 1 , further comprising:

identifying, from the plurality of objects, a plurality of materials having similar, but not identical properties defining how the respective material reacts to light; and

identifying a material resembling the plurality of materials; and

replacing the plurality of materials with the identified material.

9. The method of claim 8 , further comprising de-duplicating the plurality of materials.

10. A computer-readable non-transitory storage medium comprising instructions which, when executed by a computer, cause the computer to carry out operations for efficient rendering of a three-dimensional virtual environment, the operations comprising:

determining that a plurality of objects includes a group of repeating, identical three-dimensional models in the three-dimensional virtual environment;

generating a single instruction specifying a rendering engine to render the repeating, identical three-dimensional models in the three-dimensional virtual environment, wherein the single instruction instructs the rendering engine to rasterize the plurality of objects, and wherein the single instruction is a draw call to the rendering engine in a cross-browser JavaScript library to allow for creation of graphical processing unit (GPU)-accelerated three-dimensional animation in a web browser; and

inputting the single instruction into the rendering engine for execution.

11. The computer-readable non-transitory storage medium of claim 10 , wherein the draw call is to a graphics card.

12. The computer-readable non-transitory storage medium of claim 10 , the operations further comprising:

marking the plurality of objects so that when the plurality of objects are sent to the rendering engine they are not rendered.

13. The computer-readable non-transitory storage medium of claim 12 , wherein the marking comprises marking objects in a scene graph.

14. The computer-readable non-transitory storage medium of claim 12 , wherein the marking comprises marking the objects in a scene graph, and wherein the generating the single instruction comprises adding the single instruction to the scene graph.

15. The computer-readable non-transitory storage medium of claim 10 , the operations further comprising:

de-duplicating, from the plurality of objects, textures having a same image and properties.

16. The computer-readable non-transitory storage medium of claim 10 , the operations further comprising:

identifying, from the plurality of objects, a plurality of materials having similar, but not identical properties defining how the respective material reacts to light; and

identifying a material resembling the plurality of materials; and

replacing the plurality of materials with the identified material.

17. The computer-readable non-transitory storage medium of claim 16 , the operations further comprising de-duplicating the plurality of materials.

18. The computer-readable non-transitory storage medium of claim 17 , wherein the three-dimensional virtual environment includes a representation of a second participant to the conference, the representation being navigable within the three-dimensional virtual environment by the second participant and having mapped thereto video captured of the second participant.

19. The computer-readable non-transitory storage medium of claim 10 , further comprising presenting a rendered image of the three-dimensional virtual environment from the rendering engine to a first participant to a conference, wherein a virtual camera used by the rendering engine to generate the rendered image is navigable within the three-dimensional virtual environment by the first participant.

20. A system for efficient rendering in a three-dimensional virtual environment including a plurality of objects, each object representing a three-dimensional model, comprising:

a memory;

a processor coupled to the memory;

a rendering engine executable by the processor; and

a model optimizer executable by the processor and configured to:

(i) determine that the plurality of objects includes a group of repeating, identical three-dimensional models in the three-dimensional virtual environment,

(ii) generate a single instruction specifying the rendering engine to render the repeating, identical three-dimensional models in the three-dimensional virtual environment, and

(iii) input the single instruction into the rendering engine for execution.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2022
From: KROL, GERARD CORNELIS; POLYAKOV, PETR
To: KATMAI TECH INC.
Reel/Frame 061337/0534 →
Cited By (1)
US 12,368,821