IP Library Granted Patent US 11,615,570
Granted Patent B2
US 11,615,570 · App. 17/335,879 · Granted Mar 28, 2023

Virtual object display method and apparatus, electronic device, and storage medium

Inventor: Zhixuan Ding (Shenzhen, CN)
Assignee: Tencent Technology (Shenzhen) Company Limited
G06T13/00A63F13/52A63F13/56A63F13/60G06T7/70G06T11/60A63F13/2145A63F13/822A63F2300/1075A63F2300/6607A63F2300/807G06T2200/24
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,615,570
App. No.
17/335,879
Granted
Mar 28, 2023
Kind
B2
Abstract

The present disclosure discloses a display method and apparatus for a virtual object, an electronic device, and a storage medium, and is related to the field of computer technologies. The method includes: obtaining a plurality of animation frames corresponding to each of a plurality of virtual objects and a weight of each animation frame; blending a plurality of animation frames corresponding to the plurality of virtual objects in parallel through an image processor according to the weight of each animation frame, to obtain target position and pose data of each bone in bone models of the plurality of virtual objects; and displaying the plurality of virtual objects in a graphical user interface according to the target position and pose data of each bone in the bone models of the plurality of virtual objects.

Claims (68)

1. A display method for a virtual object, executed by an electronic device, comprising:

obtaining a plurality of animation frames corresponding to each of a plurality of virtual objects and each animation frame's weight, each animation frame comprising position and pose data of each bone in bone models of the virtual objects;

blending the plurality of animation frames corresponding to the plurality of virtual objects in parallel through an image processor according to each animation frame's weight to obtain target position and pose data of each bone in the bone models of the plurality of virtual objects by:

obtaining a plurality of parallel channels of the image processor according to a number of the plurality of virtual objects, a number of the parallel channels being determined according to the number of the virtual objects; and

blending the plurality of animation frames corresponding to the plurality of virtual objects in parallel through the plurality of parallel channels of the image processor according to each animation frame's weight to obtain the target position and pose data of each bone in the bone models of the plurality of virtual objects; and

displaying the plurality of virtual objects in a graphical user interface according to the target position and pose data of each bone in the bone models of the plurality of virtual objects.

2. The method according to claim 1 , wherein

each of the parallel channel is configured for one virtual object.

3. The method according to claim 1 , wherein blending the plurality of animation frames corresponding to the plurality of virtual objects in parallel comprises:

for each of the plurality of virtual objects, weighting the position and pose data of each bone in the bone models in the plurality of animation frames corresponding to the each virtual object according to the plurality of animation frames' weights corresponding to the each virtual object to obtain the target position and pose data of each bone in the bone model of the each virtual object.

4. The method according to claim 1 , wherein blending the plurality of animation frames corresponding to the plurality of virtual objects in parallel comprises:

for each of the plurality of virtual objects, selecting a preset number of animation frames having maximum weights among the corresponding plurality of animation frames; and

blending the selected animation frames according to the corresponding weights to obtain the target position and pose data of each bone in the bone model of each virtual object.

5. The method according to claim 1 , wherein, after blending the plurality of animation frames corresponding to the plurality of virtual objects in parallel, the method further comprises:

storing the target position and pose data of each bone in the bone models of the plurality of virtual objects in a first map,

wherein displaying the plurality of virtual objects in the graphical user interface according to the target position and pose data of each bone in the bone models of the plurality of virtual objects comprises:

sampling the first map to display the plurality of virtual objects in the graphical user interface according to a sampling result.

6. The method according to claim 5 , wherein storing the target position and pose data of each bone in the bone models of the plurality of virtual objects in the first map comprises:

storing the target position and pose data of each bone in the bone models of the plurality of virtual objects and corresponding identification information of the plurality of virtual objects in the first map,

wherein sampling the first map to display the plurality of virtual objects in the graphical user interface according to the sampling result comprises:

sampling the first map according to the identification information of the plurality of virtual objects to display the plurality of virtual objects in the graphical user interface according to the sampling result.

7. The method according to claim 6 , wherein sampling the first map according to the identification information of the plurality of virtual objects to display the plurality of virtual objects in the graphical user interface according to the sampling result comprises:

instancing a draw call to obtain an object, the draw call comprising the identification information of the plurality of virtual objects; and

sampling the first map according to the identification information of the plurality of virtual objects by using the object to display the plurality of virtual objects in the graphical user interface according to the sampling result.

8. The method according to claim 1 , wherein obtaining the plurality of animation frames corresponding to each of a plurality of virtual objects and each animation frame's weight comprises:

obtaining position and pose indication data of the plurality of virtual objects;

traversing an animation tree based on the position and pose indication data of each virtual object to obtain a traversing result of each virtual object, leaf nodes of the animation tree being associated with animation frames; and

obtaining the plurality of animation frames corresponding to each of the plurality of virtual objects and each animation frame's weight according to a plurality of traversing results corresponding to the plurality of virtual objects.

9. The method according to claim 8 , wherein before obtaining the plurality of animation frames corresponding to each of the plurality of virtual objects and each animation frame's weight, the method further comprises:

traversing the animation tree to obtain animation frames associated with the leaf nodes of the animation tree; and

storing the animation frames associated with the leaf nodes in a second map; and

wherein obtaining the plurality of animation frames corresponding to each of the plurality of virtual objects and each animation frame's weight according to a plurality of traversing results corresponding to the plurality of virtual objects comprises:

obtaining the plurality of animation frames corresponding to the plurality of virtual objects and the each animation frame's weight from the second map according to the plurality of traversing results corresponding to the plurality of virtual objects.

10. The method according to claim 1 , wherein obtaining the plurality of animation frames corresponding to each of a plurality of virtual objects and each animation frame's weight comprises:

obtaining the plurality of animation frames corresponding to each of the plurality of virtual objects and each animation frame's weight through a plurality of task threads in a central processing unit.

11. The method according to claim 1 , wherein after obtaining the plurality of animation frames corresponding to each of the plurality of virtual objects and each animation frame's weight, the method further comprises:

writing the plurality of animation frames corresponding to each of the plurality of virtual objects and the each animation frame's weight into a cache; and

wherein blending the plurality of animation frames corresponding to the plurality of virtual objects in parallel through the image processor according to each animation frame's weight to obtain the target position and pose data of each bone in the bone models of the plurality of virtual objects comprises:

extracting the plurality of animation frames corresponding to each of the plurality of virtual objects and each animation frame's weight from the cache through the image processor; and

blending the plurality of animation frames corresponding to the plurality of virtual objects in parallel according to each animation frame's weight to obtain the target position and pose data of each bone in the bone models of the plurality of virtual objects.

12. The method according to claim 1 , wherein displaying the plurality of virtual objects in the graphical user interface according to the target position and pose data of each bone in the bone models of the plurality of virtual objects comprises:

skinning each virtual object according to the target position and pose data of each bone in the bone model of each virtual object to obtain a display form of each virtual object; and

displaying the display form of each virtual object in the graphical user interface.

13. An electronic device, comprising one or more processors and one or more memories, the one or more memories storing at least one computer-readable instruction, the one or more processors being configured to load the at least one computer-readable instruction to perform the method of claim 1 .

14. A display apparatus for a virtual object, comprising:

at least one processor, configured to:

obtain a plurality of animation frames corresponding to each of a plurality of virtual objects and each animation frame's weight, each animation frame comprising position and pose data of each bone in bone models of the virtual objects; and

blend a plurality of animation frames corresponding to the plurality of virtual objects in parallel according to each animation frame's weight to obtain target position and pose data of each bone in the bone models of the plurality of virtual objects by:

obtaining a plurality of parallel channels of the processor according to a number of the plurality of virtual objects, a number of the parallel channels being determined according to the number of the virtual objects; and

blending the plurality of animation frames corresponding to the plurality of virtual objects in parallel through the plurality of parallel channels of the processor according to each animation frame's weight to obtain the target position and pose data of each bone in the bone models of the plurality of virtual objects; and

a display in communication with the at least one processor and configured to display the plurality of virtual objects in a graphical user interface according to the target position and pose data of each bone in the bone models of the plurality of virtual objects.

15. The display apparatus of claim 14 , wherein

the number of the virtual objects is equal to the number of the parallel channels.

16. The display apparatus of claim 14 , wherein, to blend the plurality of animation frames corresponding to the plurality of virtual objects in parallel, the at least one processor is further configured to:

for each of the plurality of virtual objects, weight the position and pose data of each bone in the bone models in the plurality of animation frames corresponding to each virtual object according to the plurality of animation frames' weights corresponding to each virtual object to obtain the target position and pose data of each bone in the bone model of each virtual object.

17. The display apparatus of claim 14 , wherein, to blend the plurality of animation frames corresponding to the plurality of virtual objects in parallel, the at least one processor is further configured to:

for each of the plurality of virtual objects, select a preset number of animation frames having maximum weights among the corresponding plurality of animation frames; and

blend the selected animation frames according to the selected animation frames' weights to obtain the target position and pose data of each bone in the bone model of each virtual object.

18. A non-transitory computer-readable storage medium, storing at least one instruction, the instruction being loaded and executed by at least one processor to cause the at least one processor to perform the steps, comprising:

obtaining a plurality of animation frames corresponding to each of a plurality of virtual objects and each animation frame's weight, each animation frame comprising position and pose data of each bone in bone models of the virtual objects;

blending the plurality of animation frames corresponding to the plurality of virtual objects in parallel through an image processor according to each animation frame's weight to obtain target position and pose data of each bone in the bone models of the plurality of virtual objects by:

obtaining a plurality of parallel channels of the image processor according to a number of the plurality of virtual objects, a number of the parallel channels being determined according to the number of the virtual objects; and

blending the plurality of animation frames corresponding to the plurality of virtual objects in parallel through the plurality of parallel channels of the image processor according to each animation frame's weight to obtain the target position and pose data of each bone in the bone models of the plurality of virtual objects; and

displaying the plurality of virtual objects in a graphical user interface according to the target position and pose data of each bone in the bone models of the plurality of virtual objects.

19. The storage medium according to claim 18 , wherein the number of the virtual objects is equal to the number of the parallel channels.

20. The storage medium according to claim 18 , wherein to blend the plurality of animation frames corresponding to the plurality of virtual objects in parallel, the at least one processor is further caused to perform the steps comprising:

for each of the plurality of virtual objects, selecting a preset number of animation frames having maximum weights among the corresponding plurality of animation frames; and

blending the selected animation frames according to the selected animation frames' weights to obtain the target position and pose data of each bone in the bone model of each virtual object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2021
From: DING, ZHIXUAN
To: TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
Reel/Frame 056405/0544 →
Priority Claims (1)
CN 201910364229.6 · Apr 30, 2019 · national
Continuity (2)
Continuation PCTCN2020082702 · Apr 1, 2020
Related Publication 20210287415A1 · Sep 16, 2021