IP Library Granted Patent US 11,508,111
Granted Patent B1
US 11,508,111 · App. 17/234,532 · Granted Nov 22, 2022

Augmented reality shader programs

Inventor: Ognjen Dragoljevic (London, GB)
Assignee: Meta Platforms Technologies, LLC
G06T15/005G06T19/006
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,508,111
App. No.
17/234,532
Granted
Nov 22, 2022
Kind
B1
Abstract

A computer-implemented method, including receiving, through an editor for designing augmented-reality effects, a plurality of shader programs each for an augmented-reality to be rendered for an augmented-reality effect; compiling each of the shader programs of augmented-reality object separately into corresponding shader modules; generate a merged shader module based on the shader modules; analyzing, according to one or more criteria, the merged shader module to identify fragment-shader instructions and vertex-shader instructions; splitting the merged shader module into a single fragment-shader module comprising the identified fragment-shader instructions and a single vertex-shader module comprising the identified vertex-shader instructions; and providing the single fragment-shader module and the single vertex-shader module to a graphics processing unit (GPU) to render the augmented-reality objects.

Claims (39)

1. A computer-implemented method, comprising:

receiving, through an editor for designing augmented-reality effects, a plurality of shader programs each for an augmented-reality object to be rendered for an augmented-reality effect;

compiling each of the shader programs of the augmented-reality object separately into corresponding shader modules;

generating a merged shader module based on the shader modules;

analyzing, according to one or more criteria, the merged shader module to identify fragment-shader instructions and vertex-shader instructions;

splitting the merged shader module into a single fragment-shader module comprising the identified fragment-shader instructions and a single vertex-shader module comprising the identified vertex-shader instructions; and

providing the single fragment-shader module and the single vertex-shader module to a graphics processing unit (GPU) to render the augmented-reality objects.

2. The computer-implemented method of claim 1 , wherein compiling each of the shader programs further comprises compiling each of the shader programs separately into corresponding unlinked shader modules.

3. The computer-implemented method of claim 2 , wherein each of the unlinked shader modules includes unlinked bytecode.

4. The computer-implemented method of claim 2 , wherein generating the merged shader module further comprises linking each of the unlinked shader modules to form the merged shader module.

5. The computer-implemented method of claim 4 , wherein the merged shader module is a linked shader module.

6. The computer-implemented method of claim 1 , wherein analyzing the merged shader module further includes identifying a parameter of each of the shader modules that indicates the fragment-shader instructions of the respective shader module.

7. The computer-implemented method of claim 1 , wherein analyzing the merged shader module further includes identifying instructions of each of the shader modules that are nested within fragment-shader instructions of the respective shader module.

8. The computer-implemented method of claim 1 , wherein analyzing the merged shader module further includes identifying instructions of each of the shader modules that are dependent from fragment-shader instructions of the respective shader module.

9. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

receive, through an editor for designing augmented-reality effects, a plurality of shader programs each for an augmented-reality object to be rendered for an augmented-reality effect;

compile each of the shader programs of the augmented-reality object separately into corresponding shader modules;

generate a merged shader module based on the shader modules;

analyze, according to one or more criteria, the merged shader module to identify fragment-shader instructions and vertex-shader instructions;

split the merged shader module into a single fragment-shader module comprising the identified fragment-shader instructions and a single vertex-shader module comprising the identified vertex-shader instructions; and

provide the single fragment-shader module and the single vertex-shader module to a graphics processing unit (GPU) to render the augmented-reality objects.

10. The computer-readable non-transitory storage media of claim 9 , wherein compiling each of the shader programs further comprises compiling each of the shader programs separately into corresponding unlinked shader modules.

11. The computer-readable non-transitory storage media of claim 10 , wherein each of the unlinked shader modules includes unlinked bytecode.

12. The computer-readable non-transitory storage media of claim 10 , wherein generating the merged shader module further comprises linking each of the unlinked shader modules to form the merged shader module.

13. The computer-readable non-transitory storage media of claim 12 , wherein the merged shader module is a linked shader module.

14. The computer-readable non-transitory storage media of claim 9 , wherein analyzing the merged shader module further includes identifying a parameter of each of the shader modules that indicates the fragment-shader instructions of the respective shader module.

15. The computer-readable non-transitory storage media of claim 9 , wherein analyzing the merged shader module further includes identifying instructions of each of the shader modules that are nested within fragment-shader instructions of the respective shader module.

16. The computer-readable non-transitory storage media of claim 9 , wherein analyzing the merged shader module further includes identifying instructions of each of the shader modules that are dependent from fragment-shader instructions of the respective shader module.

17. A system comprising:

one or more processors; and a memory coupled to the processors comprising instructions executable by the processors, the processors being operable when executing the instructions to:

receive, through an editor for designing augmented-reality effects, a plurality of shader programs each for an augmented-reality object of a plurality of augmented-reality objects to be rendered for an augmented-reality effect;

compile each of the shader programs of augmented-reality object separately into corresponding shader modules;

generate a merged shader module based on the shader modules;

analyze, according to one or more criteria, the merged shader module to identify fragment-shader instructions and vertex-shader instructions;

split the merged shader module into a single fragment-shader module comprising the identified fragment-shader instructions and a single vertex-shader module comprising the identified vertex-shader instructions; and

provide the single fragment-shader module and the single vertex-shader module to a graphics processing unit (GPU) to render the augmented-reality objects.

18. The system of claim 17 , wherein compiling each of the shader programs further comprises compiling each of the shader programs separately into corresponding unlinked shader modules.

19. The system of claim 18 , wherein each of the unlinked shader modules includes unlinked bytecode.

20. The system of claim 18 , wherein generating the merged shader module further comprises linking each of the unlinked shader modules to form the merged shader module.

Assignments (2)
CHANGE OF NAME Recorded Jul 6, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060591/0848 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2021
From: DRAGOLJEVIC, OGNJEN
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 056172/0978 →