IP Library Granted Patent US 12,602,836
Granted Patent B2
US 12,602,836 · App. 18/604,065 · Granted Apr 14, 2026

Method to generate displacement for symmetry mesh

Inventors: Thuong Nguyen Canh (San Bruno, CA); Chao Huang (Palo Alto, CA); Xiaozhong Xu (Palo Alto, CA); Shan Liu (Palo Alto, CA)
Assignee: TENCENT AMERICA LLC
G06T9/001G06T17/20G06T2210/21
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,602,836
App. No.
18/604,065
Granted
Apr 14, 2026
Kind
B2
Abstract

A method of encoding a mesh comprises: determining a first plane based on a first input vertex located on a first side of the mesh, a direction vector, and a first vector selected along an axis having a largest angle from the direction vector; determining a second plane based on a second input vertex on a symmetry plane, the direction vector, and a second vector that is perpendicular to the first vector and the direction vector; determining a vertex to be mapped to the first input vertex on the first side of the mesh based on (i) a line that passes through the first input vertex and the second input vertex and (ii) the first and second planes.

Claims (47)

1 . A method of encoding a mesh, the method comprising:

determining a symmetry plane the divides the mesh into a first side and a second side opposite the first side;

determining a first plane based on a first input vertex located on the first side of the mesh, a direction vector, and a first vector selected along an axis having a largest angle from the direction vector;

determining, as a first set, each vertex of the mesh on the second side of the mesh that is on a first side of the first plane or on the first plane;

determining, as a second set, each vertex on the second side of the mesh that is on a second side of the first plane, the second side of the first plane opposite to the first side of the first plane;

determining a second plane based on a second input vertex on the symmetry plane, the direction vector, and a second vector that is perpendicular to the first vector and the direction vector;

determining, as third set, each vertex on the second side of the mesh that is on a first side of the second plane or on the second plane;

determining, as a fourth set, each vertex on the second side of the mesh that is on a second side of the second plane, the second side of the second plane opposite to the first side of the first plane; and

determining a vertex to be mapped to the first input vertex on the first side of the mesh based on (i) a line that passes through the first input vertex and the second input vertex and (ii) the determined first set, the determined second set, the determined third set, and the determined fourth set, the determining the vertex further comprising:

determining each intersection face defined by a plurality of vertices on the second side of the mesh that intersects with at least one vertex from the first set, the second set, the third set, and the fourth set, in which based on a determination that the line passes through a first set of N intersection points on the first side of the mesh and a second set of M intersection points on the second side of the mesh, the intersection points from the first set are mapped to a corresponding intersection point in the second set in a decreasing order of distance from the symmetry plane until the first set or the second set includes one or more unmapped intersection points, the one or more unmapped intersection points are mapped to a corresponding vertex on an opposite side of the mesh, and in which N is not equal to M and both N and M are integers greater than or equal to 2.

2 . The method according to claim 1 , wherein based on a determination that no intersection interface exists, a vertex on the second side of the mesh that is nearest to the line is selected as the vertex to be mapped to the first input vertex.

3 . The method according to claim 1 , where based on a determination that an intersection face exists, a vertex of the intersection interface in which the line passes is selected as the vertex to be mapped to the first input vertex.

4 . The method according to claim 3 , wherein based on a determination the line passes through two or more vertices of the intersection interface, a vertex of the two or more vertices that is closest to the first input vertex is selected as the vertex to be mapped to the first input vertex.

5 . The method according to claim 1 , wherein based on a determination the line passes through a first intersection point on the first side of the mesh and two intersection points on the second side of the mesh, the first intersection point on the first side of the mesh is mapped to an average of the two intersection points on the second side of the mesh.

6 . The method of claim 1 , wherein based on a determination that the line passes through a first intersection point on the first side of the mesh and a second intersection point on the second side of the mesh, the first intersection point on the first side of the mesh is mapped to the second intersection point on the second side of the mesh.

7 . The method according to claim 1 , wherein based on a determination that the line passes through N intersection points on the first side of the mesh and N intersection points on the second side of the mesh, each intersection point on the first side of the mesh is mapped to a corresponding intersection point on the second side of the mesh in a decreasing order of distance from the symmetry plane, wherein N is an integer greater than or equal to 2.

8 . The method according to claim 1 , further comprising:

deriving a sub-mesh associated with the mapped vertex; and

mapping the sub-mesh to a sub-mesh derived on the first side of the mesh.

9 . A method of encoding a mesh, the method comprising:

generating a bitstream comprising the mesh,

wherein a symmetry plane that divides the mesh into a first side and a second side opposite the first side is determined,

wherein a first plane is determined based on a first input vertex located on the first side of the mesh, a direction vector, and a first vector selected along an axis having a largest angle from the direction vector,

wherein, as a first set, each vertex of the mesh on the second side of the mesh that is on a first side of the first plane or on the first plane is determined,

wherein, as a second set, each vertex on the second side of the mesh that is on a second side of the first plane, the second side of the first plane opposite to the first side of the first plane is determined,

wherein a second plane is determined based on a second input vertex on the symmetry plane, the direction vector, and a second vector that is perpendicular to the first vector and the direction vector,

wherein, as third set, each vertex on the second side of the mesh that is on a first side of the second plane or on the second plane is determined,

wherein, as a fourth set, each vertex on the second side of the mesh that is on a second side of the second plane, the second side of the second plane opposite to the first side of the first plane is determined,

wherein a vertex to be mapped to the first input vertex on the first side of the mesh is determined based on (i) a line that passes through the first input vertex and the second input vertex and (ii) the determined first set, the determined second set, the determined third set, and the determined fourth set, and

wherein the vertex to be mapped to the first input vertex is further determined based on determining each intersection face defined by a plurality of vertices on the second side of the mesh that intersects with at least one vertex from the first set, the second set, the third set, and the fourth set, in which based on a determination that the line passes through a first set of N intersection points on the first side of the mesh and a second set of M intersection points on the second side of the mesh, the intersection points from the first set are mapped to a corresponding intersection point in the second set in a decreasing order of distance from the symmetry plane until the first set or the second set includes one or more unmapped intersection points, the one or more unmapped intersection points are mapped to a corresponding vertex on an opposite side of the mesh, and in which N is not equal to M and both N and M are integers greater than or equal to 2.

10 . The method according to claim 9 , wherein based on a determination that no intersection interface exists, a vertex on the second side of the mesh that is nearest to the line is selected as the vertex to be mapped to the first input vertex.

11 . The method according to claim 9 , where based on a determination that an intersection face exists, a vertex of the intersection interface in which the line passes is selected as the vertex to be mapped to the first input vertex.

12 . The method according to claim 11 , wherein based on a determination the line passes through two or more vertices of the intersection interface, a vertex of the two or more vertices that is closest to the first input vertex is selected as the vertex to be mapped to the first input vertex.

13 . The method according to claim 9 , wherein based on a determination the line passes through a first intersection point on the first side of the mesh and two intersection points on the second side of the mesh, the first intersection point on the first side of the mesh is mapped to an average of the two intersection points on the second side of the mesh.

14 . The method of claim 9 , wherein based on a determination that the line passes through a first intersection point on the first side of the mesh and a second intersection point on the second side of the mesh, the first intersection point on the first side of the mesh is mapped to the second intersection point on the second side of the mesh.

15 . The method according to claim 9 , wherein based on a determination that the line passes through N intersection points on the first side of the mesh and N intersection points on the second side of the mesh, each intersection point on the first side of the mesh is mapped to a corresponding intersection point on the second side of the mesh in a decreasing order of distance from the symmetry plane, wherein N is an integer greater than or equal to 2.

16 . A method of decoding a mesh, the method comprising:

processing a bitstream comprising the mesh,

wherein a symmetry plane that divides the mesh into a first side and a second side opposite the first side is determined,

wherein a first plane is determined based on a first input vertex located on the first side of the mesh, a direction vector, and a first vector selected along an axis having a largest angle from the direction vector,

wherein, as a first set, each vertex of the mesh on the second side of the mesh that is on a first side of the first plane or on the first plane is determined,

wherein, as a second set, each vertex on the second side of the mesh that is on a second side of the first plane, the second side of the first plane opposite to the first side of the first plane is determined,

wherein a second plane is determined based on a second input vertex on the symmetry plane, the direction vector, and a second vector that is perpendicular to the first vector and the direction vector,

wherein, as third set, each vertex on the second side of the mesh that is on a first side of the second plane or on the second plane is determined,

wherein, as a fourth set, each vertex on the second side of the mesh that is on a second side of the second plane, the second side of the second plane opposite to the first side of the first plane is determined,

wherein a vertex to be mapped to the first input vertex on the first side of the mesh is determined based on (i) a line that passes through the first input vertex and the second input vertex and (ii) the determined first set, the determined second set, the determined third set, and the determined fourth set, and

wherein the vertex to be mapped to the first input vertex is further determined based on determining each intersection face defined by a plurality of vertices on the second side of the mesh that intersects with at least one vertex from the first set, the second set, the third set, and the fourth set, in which based on a determination that the line passes through a first set of N intersection points on the first side of the mesh and a second set of M intersection points on the second side of the mesh, the intersection points from the first set are mapped to a corresponding intersection point in the second set in a decreasing order of distance from the symmetry plane until the first set or the second set includes one or more unmapped intersection points, the one or more unmapped intersection points are mapped to a corresponding vertex on an opposite side of the mesh, and in which N is not equal to M and both N and M are integers greater than or equal to 2.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2024
From: NGUYEN CANH, THUONG; HUANG, CHAO; XU, XIAOZHONG; LIU, SHAN
To: TENCENT AMERICA LLC
Reel/Frame 066767/0126 →
Continuity (2)
Provisional Application 63453033 · Mar 17, 2023
Related Publication 20240312066A1 · Sep 19, 2024
References Cited (22)
US 12243277B2 · Nguyen Canh · 2025 [cited by examiner]
US 12243279B2 · Nguyen Canh · 2025 [cited by examiner]
US 12373990B2 · Nguyen Canh · 2025 [cited by examiner]
US 20050131660A1 · Yadegar · 2005 [cited by examiner]
US 20210335039A1 · Jones · 2021 [cited by examiner]
US 20220036654A1 · Nakagami et al. · 2022 [cited by applicant]
US 20220068007A1 · Lafer · 2022 [cited by examiner]
US 20230078840A1 · Salvi et al. · 2023 [cited by applicant]
US 20240029316A1 · Nguyen Canh · 2024 [cited by examiner]
US 20240221229A1 · Nguyen Canh · 2024 [cited by examiner]
US 20240331204A1 · Kadam · 2024 [cited by examiner]
US 20240346703A1 · Nguyen Canh · 2024 [cited by examiner]
US 20250159255A1 · Kadam · 2025 [cited by examiner]
US 20250173906A1 · Huang · 2025 [cited by examiner]
US 20250232481A1 · Kadam · 2025 [cited by examiner]
WO WO2024147807A1 · 2024 [cited by examiner]
WO WO2024167508A1 · 2024 [cited by examiner]
WO WO2024192096A1 · 2024 [cited by examiner]
Golovinskiy A, Podolak J, Funkhouser T. Symmetry-aware mesh processing. InIMA International Conference on Mathematics of Surfaces Sep. 7, 2009 (pp. 170-188). Berlin, Heidelberg: Springer Berlin Heidelberg. [cited by examiner]
Wang Y, Xu K, Li J, Zhang H, Shamir A, Liu L, Cheng Z, Xiong Y. Symmetry hierarchy of man-made objects. InComputer graphics forum Apr. 2011 (vol. 30, No. 2, pp. 287-296). Oxford, UK: Blackwell Publishing Ltd. [cited by examiner]
International Search Report issued Jun. 17, 2024 in Application No. PCT/US24/20045. [cited by applicant]
Written Opinion issued Jun. 17, 2024 in Application No. PCT/US24/20045. [cited by applicant]