IP Library Granted Patent US 12,315,068
Granted Patent B2
US 12,315,068 · App. 18/442,733 · Granted May 27, 2025

Efficient real-time shadow rendering

Inventor: Bo Li (Montreal, CA)
Assignee: Warner Bros. Entertainment Inc.
G06T15/005G06T1/60G06T9/00G06T15/60G06T2210/36G06T2215/12
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,315,068
App. No.
18/442,733
Granted
May 27, 2025
Kind
B2
Abstract

A method for real-time shadow rendering using cached shadow maps and deferred shading by a video processor of a game console or the like includes, for at least each key frame of video output, determining a viewpoint for a current key frame based on user input, filtering a texel of a frame-specific shadow map based on a dynamic mask wherein the texel is filtered, for a shadowed light, from a static shadow map and a dynamic shadow map or from the static shadow map only, based on the dynamic mask value for the texel, and rendering the current key frame based on the frame-specific shadow map and a deferred-shadow rendering algorithm. The method enables efficient rendering of thousands of shadowed lights in large environments by consumer-grade game consoles.

Claims (38)

1. A method for generating a tiled shader thread group for a real-time shadow rendering, the method comprising:

allocating, by at least one processor, one or more discrete shadow maps at different resolutions for each modeled light of a 3-dimensional model, wherein the one or more discrete shadow maps include a resolution different from a different discrete shadow map, and wherein the one or more discrete shadow maps include a plurality of texels;

compressing, by the at least one processor, the one or more discrete shadow maps by quantizing each texel of the plurality of texels;

arranging, by the at least one processor, the one or more compressed discrete shadow maps in a data structure, wherein the data structure is configured to enable a use of the one or more compressed discrete shadow maps in a tiled compute shader thread group; and

displaying, by the at least one processor, the one or more compressed discrete shadow maps stored in the data structure in a runtime rendering.

2. The method of claim 1 , wherein the allocating includes separating the one or more discrete shadow maps into one or more tiles.

3. The method of claim 2 , wherein each of the one or more tiles includes a predetermined dimension smaller than a pixel size of a corresponding shadow map.

4. The method of claim 2 , wherein the compressing includes compressing each of the one or more tiles by utilizing a quantization scheme.

5. The method of claim 4 , wherein the quantization scheme includes compressing the plurality of texels into a plurality of compressed quads.

6. The method of claim 5 , where arranging the one or more compressed discrete shadow maps in the data structure comprises:

sorting, by the at least one processor, the plurality of compressed quads within the one or more tiles in an order by a depth plane; and

encoding, by the at least one processor, the plurality of compressed quads in the order in a sparse record.

7. The method of claim 1 , wherein the allocating is based on executing an algorithm that includes reading a tile size parameter, generating a static shadow map for each light source in a scene, and dividing the static shadow map into a plurality of static shadow map tiles based on the tile size parameter.

8. A computer system for generating a tiled shader thread group for a real-time shadow rendering, the computer system comprising:

a memory having processor-readable instructions stored therein; and

one or more processors configured to access the memory and execute the processor-readable instructions, which when executed by the one or more processors configures the one or more processors to perform a plurality of functions, including functions for:

allocating, by the one or more processors, one or more discrete shadow maps at different resolutions for each modeled light of a 3-dimensional model, wherein the one or more discrete shadow maps include a resolution different from a different discrete shadow map, and wherein the one or more discrete shadow maps include a plurality of texels;

compressing, by the one or more processors, the one or more discrete shadow maps by quantizing each texel of the plurality of texels;

arranging, by the one or more processors, the one or more compressed discrete shadow maps in a data structure, wherein the data structure is configured to enable a use of the one or more compressed discrete shadow maps in a tiled compute shader thread group; and

displaying, by the one or more processors, the one or more compressed discrete shadow maps stored in the data structure in a runtime rendering.

9. The computer system of claim 8 , wherein the allocating includes separating the one or more discrete shadow maps into one or more tiles.

10. The computer system of claim 9 , wherein each of the one or more tiles includes a predetermined dimension smaller than a pixel size of a corresponding shadow map.

11. The computer system of claim 9 , wherein the compressing includes compressing each of the one or more tiles by utilizing a quantization scheme.

12. The computer system of claim 11 , wherein the quantization scheme includes compressing the plurality of texels into a plurality of compressed quads.

13. The computer system of claim 12 , where arranging the one or more compressed discrete shadow maps in the data structure comprises:

sorting, by the one or more processors, the plurality of compressed quads within the one or more tiles in an order by a depth plane; and

encoding, by the one or more processors, the plurality of compressed quads in the order in a sparse record.

14. The computer system of claim 9 , wherein the allocating is based on executing an algorithm that includes reading a tile size parameter, generating a static shadow map for each light source in a scene, and dividing the static shadow map into a plurality of static shadow map tiles based on the tile size parameter.

15. A non-transitory computer-readable medium containing instructions for organic noising of user engagement with an item, the instructions comprising:

allocating one or more discrete shadow maps at different resolutions for each modeled light of a 3-dimensional model, wherein the one or more discrete shadow maps include a resolution different from a different discrete shadow map, and wherein the one or more discrete shadow maps include a plurality of texels;

compressing the one or more discrete shadow maps by quantizing each texel of the plurality of texels;

arranging the one or more compressed discrete shadow maps in a data structure, wherein the data structure is configured to enable a use of the one or more compressed discrete shadow maps in a tiled compute shader thread group; and

displaying the one or more compressed discrete shadow maps stored in the data structure in a runtime rendering.

16. The non-transitory computer-readable medium of claim 15 , wherein the allocating includes separating the one or more discrete shadow maps into one or more tiles.

17. The non-transitory computer-readable medium of claim 16 , wherein each of the one or more tiles includes a predetermined dimension smaller than a pixel size of a corresponding shadow map.

18. The non-transitory computer-readable medium of claim 16 , wherein the compressing includes compressing each of the one or more tiles by utilizing a quantization scheme.

19. The non-transitory computer-readable medium of claim 18 , wherein the quantization scheme includes compressing the plurality of texels into a plurality of compressed quads.

20. The non-transitory computer-readable medium of claim 15 , wherein the allocating is based on executing an algorithm that includes reading a tile size parameter, generating a static shadow map for each light source in a scene, and dividing the static shadow map into a plurality of static shadow map tiles based on the tile size parameter.

Assignments (2)
SECURITY INTEREST Recorded Oct 1, 2025
From: WARNER BROS. DISCOVERY, INC.; WARNER MEDIA, LLC; TURNER BROADCASTING SYSTEM, INC.; HOME BOX OFFICE, INC.; DISCOVERY COMMUNICATIONS, LLC; WARNERMEDIA DIRECT LLC; DISCOVERY.COM LLC; WARNER BROS. ENTERTAINMENT INC.; CNN INTERACTIVE GROUP, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 072995/0858 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2024
From: LI, BO
To: WARNER BROS. ENTERTAINMENT INC.
Reel/Frame 066688/0404 →