# US 10,872,475 B2 · 3D mobile renderer for user-generated avatar, apparel, and accessories

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,872,475 B2
- Document ID: US10872475B2
- Status: Granted
- Kind: B2
- Application number: 16/204,934
- Filed: 2018-11-29
- Published: 2019-08-29
- Granted: 2020-12-22
- Earliest claimed: 2018-02-27
- Assignees: Soul Vision Creations Private Limited
- Applicants: Soul Vision Creations Private Limited
- Inventors: Sravanth Aluru; Gaurav Baid; Sarbartha Sengupta
- Web page: https://patentgrep.com/patent/US10872475B2

## CPC

- G06T 19/20: Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
- G06F 16/54: Browsing; Visualisation therefor
- G06F 30/20: Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30)
- G06Q 30/0627: {by specifying product or service characteristics, e.g. product dimensions}
- G06T 13/40: of characters, e.g. humans, animals or virtual beings
- G06T 15/005: {General purpose rendering architectures}
- G06T 15/04: Texture mapping
- G06T 17/10: Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
- G06T 17/20: Finite element generation, e.g. wire-frame surface description, {tesselation}
- G06V 40/169: {Holistic features and representations, i.e. based on the facial image taken as a whole}
- G06V 40/171: {Local features and components; Facial parts (eye characteristics G06V40/18); Occluding parts, e.g. glasses; Geometrical relationships}
- G06F 2113/12: Cloth
- G06T 2210/16: Cloth
- G06T 2219/2021: Shape modification
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING

## Abstract

This disclosure describes example techniques for personalized virtual look, fit, and animation of apparel, accessories, and cosmetics on a virtual representation of a user. The disclosure describes dividing an image to be rendered into n containers, wherein the image represents an avatar of a user, determining a respective category of content, from among a plurality of categories of content, for each of the n containers, determining a respective shader program for respective containers of the n containers based on the respective category of the respective container, independently rendering the n containers using the determined respective shader programs to create the avatar, and displaying the avatar.

## Claims

### Claim 1

A method of virtual representation creation, the method comprising:
dividing an image to be rendered into n containers, wherein the image represents an avatar of a user, wherein the avatar is a virtual representation of the user;
determining a respective category of content, from among a plurality of categories of content, for each of the n containers;
determining a respective shader program, from among a plurality of shader programs, for each respective container of the n containers, wherein determining the respective shader program is based on the respective category of the respective container, wherein the respective category includes one of a face category of the avatar, a body category of the avatar, a face-related accessories category of the avatar, and a body-related accessories and other accessories category of the avatar;
independently rendering the n containers using the determined respective shader programs according to a rule-based engine to create the avatar, wherein the rule-based engine renders a container of the n containers based on a user request; and
displaying the avatar.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving an input from the user that requests a change to a first container of the n containers;
re-rendering the first container in accordance with the change; and
displaying the avatar including the re-rendered first container.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
determining, based on the respective category of content associated with the first container, other containers of the n containers to update based on the input in order to display the change requested by the input;
re-rendering only the first container and the determined other containers; and
displaying the avatar including the re-rendered first container and the re-rendered determined other containers.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
determining a minimal update to the determined other containers based on the respective category of content associated with the first container.

### Claim 5 (depends on 4)

The method of claim 4, wherein the minimal update is one of a point cloud only update, a texture only update, or a point cloud and texture update.

### Claim 6 (depends on 1)

The method of claim 1, wherein independently rendering the n containers using the determined respective shader programs according to the rule-based engine to create the avatar comprises:
independently rendering the n containers in a predetermined order using the determined respective shader programs to create the avatar.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
rendering a face container of the n containers before rendering a hair container of the n containers.

### Claim 8 (depends on 1)

The method of claim 1, wherein independently rendering the n containers using the determined respective shader programs according to the rule-based engine to create the avatar comprises:
rendering each of the n containers separately without rendering the content of others of the n containers.

### Claim 9

An apparatus configured for virtual representation creation, the apparatus comprising:
a memory configured to store an image; and
one or more processors in communication with the memory, the one or more processors configured to:
divide the image to be rendered into n containers, wherein the image represents an avatar of a user, wherein the avatar is a virtual representation of the user;
determine a respective category of content, from among a plurality of categories of content, for each of the n containers;
determine a respective shader program, from among a plurality of shader programs, for each respective container of the n containers , wherein determining the respective shader program is based on the respective category of the respective container,. wherein the respective category includes one of a face category of the avatar, a body category of the avatar, a face-related accessories category of the avatar, and a body- related accessories and other accessories category of the avatar;
independently render the n containers using the determined respective shader programs according to a rule-based engine to create the avatar, wherein the rule-based engine renders a container of the n containers based on a user request; and
display the avatar.

### Claim 10 (depends on 9)

The apparatus of claim 9, wherein the one or more processors are further configured to:
receive an input from the user that requests a change to a first container of the n containers;
re-render the first container in accordance with the change; and
display the avatar including the re-rendered first container.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein the one or more processors are further configured to:
determine, based on the respective category of content associated with the first container, other containers of the n containers to update based on the input in order to display the change requested by the input;
re-render only the first container and the determined other containers; and
display the avatar including the re-rendered first container and the re-rendered determined other containers.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein the one or more processors are further configured to:
determine a minimal update to the determined other containers based on the respective category of content associated with the first container.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the minimal update is one of a point cloud only update, a texture only update, or a point cloud and texture update.

### Claim 14 (depends on 9)

The apparatus of claim 9, wherein to independently render the n containers using the determined respective shader programs according to the rule-based engine to create the avatar, the one or more processors are further configured to:
independently render the n containers in a predetermined order using the determined respective shader programs to create the avatar.

### Claim 15 (depends on 14)

The apparatus of claim 14, wherein the one or more processors are further configured to:
render a face container of the n containers before rendering a hair container of the n containers.

### Claim 16 (depends on 9)

The apparatus of claim 9, wherein the one or more processors include a central processing unit and a graphics processing unit.

### Claim 17 (depends on 9)

The apparatus of claim 9, wherein to independently render the n containers using the determined respective shader programs according to the rule-based engine to create the avatar, the one or more processors are configured to:
render each of the n containers separately without rendering the content of others of the n containers.

### Claim 18

A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors to:
divide the image to be rendered into n containers, wherein the image represents an avatar of a user, wherein the avatar is a virtual representation of the user;
determine a respective category of content, from among a plurality of categories of content, for each of the n containers;
determine a respective shader program, from among a plurality of shader programs, for each respective container of the n containers, wherein determining the respective shader program is based on the respective category of the respective container, wherein the respective category includes one of a face category of the avatar, a body category of the avatar, a face-related accessories category of the avatar, and a body-related accessories and other accessories category of the avatar;
independently render the n containers using the determined respective shader programs according to a rule-based engine to create the avatar, wherein the rule-based engine renders a container of the n containers based on a user request; and
display the avatar.
