IP Library Granted Patent US 11,593,992
Granted Patent B2
US 11,593,992 · App. 16/953,829 · Granted Feb 28, 2023

Rendering three-dimensional objects utilizing sharp tessellation

Inventors: Thibaud Lambert (Paris, FR); Tamy Boubekeur (Paris, FR); Anthony Salvi (Paris, FR)
Assignee: Adobe Inc.
G06T17/20G06T15/04
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,593,992
App. No.
16/953,829
Granted
Feb 28, 2023
Kind
B2
Abstract

The disclosure describes one or more embodiments of systems, methods, and non-transitory computer-readable media that modify vertex positions of a 3D-object mesh to align the vertices with discontinuities indicated by a sharpness map for a displacement map. For example, the disclosed systems access a sharpness map that encodes discontinuities of a displacement map to preserve sharp features. During sharp tessellation, for a given vertex of the 3D-object mesh, the disclosed systems iterate over neighboring vertices to search for a nearest intersection between one of the incident edges of the vertex and neighboring vertices and a discontinuity line from the sharpness map. Then, the vertex is moved within a threshold distance of the nearest discontinuity line intersection along the incident edge. The disclosed systems similarly reposition other vertices of the 3D-object mesh to generate a modified 3D-object mesh that includes vertices that align with discontinuities present in a displacement map.

Claims (56)

1. A non-transitory computer-readable medium storing instructions that, when executed by at least one processor, cause a computer device to:

access a three-dimensional (3D)-object mesh comprising a set of vertices and edges;

access a two-dimensional (2D)-sharpness map comprising a set of discontinuity lines corresponding to a 2D-displacement map;

identify a discontinuity line intersection between a discontinuity line from the set of discontinuity lines of the 2D-sharpness map and an edge between a vertex and a neighbor vertex from the set of vertices and edges of the 3D-object mesh;

modify a position of the vertex corresponding to the 3D-object mesh to reposition the vertex within a threshold distance of the discontinuity line intersection from the 2D-sharpness map to generate a modified 3D-object mesh comprising one or more modified vertices repositioned to discontinuities represented in the 2D-sharpness map; and

generate, for display within a graphical user interface, a 3D object utilizing the modified 3D-object mesh.

2. The non-transitory computer-readable medium of claim 1 , further comprising instructions that, when executed by the at least one processor, cause the computer device to access one or more discontinuity lines encoded within a first texel from the 2D-sharpness map, the first texel corresponding to the position of the vertex.

3. The non-transitory computer-readable medium of claim 2 , further comprising instructions that, when executed by the at least one processor, cause the computer device to utilize a marching algorithm to traverse the edge from the vertex towards the neighbor vertex to identify a position of the discontinuity line intersection between the edge and a discontinuity line of the first texel.

4. The non-transitory computer-readable medium of claim 3 , further comprising instructions that, when executed by the at least one processor, cause the computer device to identify the position of the discontinuity line intersection between the edge and a first intersecting discontinuity line from multiple discontinuity lines of the first texel.

5. The non-transitory computer-readable medium of claim 2 , further comprising instructions that, when executed by the at least one processor, cause the computer device to:

identify no intersections between the edge and the one or more discontinuity lines of the first texel;

access one or more discontinuity lines encoded within a second texel from the 2D-sharpness map, the second texel corresponding to the edge between the vertex and the neighbor vertex; and

utilize a marching algorithm to traverse the edge from the vertex towards the neighbor vertex to identify a position of the discontinuity line intersection between the edge and a discontinuity line of the second texel.

6. The non-transitory computer-readable medium of claim 1 , further comprising instructions that, when executed by the at least one processor, cause the computer device to reposition the vertex within the threshold distance from the position of the discontinuity line intersection on an opposite side of discontinuity line intersection from the neighbor vertex.

7. The non-transitory computer-readable medium of claim 1 , further comprising instructions that, when executed by the at least one processor, cause the computer device to:

identify an additional discontinuity line intersection between an additional discontinuity line from the set of discontinuity lines of the 2D-sharpness map and an additional edge between the vertex and an additional neighbor vertex from the set of vertices and edges of the 3D-object mesh; and

modify the position of the vertex to generate the modified 3D-object mesh by:

determining a first distance between the vertex and the position of the discontinuity line intersection and a second distance between the vertex and a position of the additional discontinuity line intersection; and

reposition the vertex within the threshold distance from the position of the discontinuity line intersection or the position of the additional discontinuity line intersection based on a comparison of the first distance and the second distance.

8. The non-transitory computer-readable medium of claim 1 , further comprising instructions that, when executed by the at least one processor, cause the computer device to access a buffer comprising a barycentric coordinate for the neighbor vertex in relation to the vertex, the buffer indexing attributes of a topology of the 3D-object mesh with a tessellation pattern.

9. A system comprising:

one or more memory devices comprising:

a three-dimensional (3D)-object mesh comprising a set of vertices and edges; and

a two-dimensional (2D)-sharpness map comprising a set of discontinuity lines corresponding to a 2D-displacement map; and

one or more computing devices configured to cause the system to:

identify one or more discontinuity line intersections between the set of discontinuity lines of the 2D-sharpness map and one or more edges between a vertex and a set of neighbor vertices from the set of vertices and edges of the 3D-object mesh; and

modify a position of the vertex to generate a modified 3D-object mesh comprising one or more modified vertices repositioned to discontinuities represented in the 2D-sharpness map by:

determining a nearest discontinuity line intersection position between a position of the vertex and positions of the one or more discontinuity line intersections; and

selecting the modified position for the vertex within a threshold distance from the nearest discontinuity line intersection position.

10. The system of claim 9 , wherein the one or more computing devices are configured to identify the one or more discontinuity line intersections by:

accessing one or more discontinuity lines encoded within at least one texel from the 2D-sharpness map, the at least one texel corresponding to the one or more edges between the vertex and the set of neighbor vertices;

identifying a first discontinuity line intersection between a first discontinuity line from the one or more discontinuity lines and a first edge between the vertex and a first neighbor vertex from the set of neighbor vertices; and

identifying a second discontinuity line intersection between a second discontinuity line from the one or more discontinuity lines and a second edge between the vertex and a second neighbor vertex from the set of neighbor vertices.

11. The system of claim 10 , wherein the one or more computing devices are configured to determine the nearest discontinuity line intersection position by comparing:

a first distance between the position of the vertex and a first position of the first discontinuity line intersection; and

a second distance between the position of the vertex and a second position of the second discontinuity line intersection.

12. The system of claim 11 , wherein the one or more computing devices are configured to select the modified position for the vertex within the threshold distance from the position of the first discontinuity line intersection based on the first distance being lesser than the second distance.

13. The system of claim 9 , wherein the one or more computing devices are configured to identify the one or more discontinuity line intersections between the set of discontinuity lines of the 2D-sharpness map and each edge between the vertex and each neighbor vertex of the vertex.

14. The system of claim 9 , wherein the one or more computing devices are configured to generate, for display within a graphical user interface, a 3D-object utilizing the modified 3D-object mesh by filtering the 2D-displacement map within faces created by the one or more modified vertices of the modified 3D-object mesh.

15. The system of claim 9 , wherein the one or more computing devices are configured to:

generate the set of vertices for the 3D-object mesh utilizing a tessellation pattern; and

select a 2D-sharpness map mip level based on a number of subdivisions corresponding to the tessellation pattern.

16. The system of claim 9 , wherein the one or more computing devices are configured to capture the one or more modified vertices of the modified 3D-object mesh for storage within a buffer.

17. A computer-implemented method comprising:

accessing a 3D-object mesh comprising a set of vertices and edges;

accessing a 2D-sharpness map comprising a set of discontinuity lines corresponding to a 2D-displacement map;

identifying a discontinuity line intersection between a discontinuity line from the set of discontinuity lines of the 2D-sharpness map and an edge between a vertex and a neighbor vertex from the set of vertices and edges of the 3D-object mesh;

subdividing the edge between the vertex and the neighbor vertex corresponding to the 3D-object mesh by generating one or more vertices positioned along the edge between the vertex and the neighbor vertex and within a threshold distance from a position of the discontinuity line intersection from the 2D-sharpness map to generate a modified 3D-object mesh comprising the one or more vertices positioned along discontinuities represented in the 2D-sharpness map; and

generating, for display within a graphical user interface, a 3D object utilizing the modified 3D-object mesh.

18. The computer-implemented method of claim 17 , further comprising subdividing the edge between the vertex and the neighbor vertex by generating a first vertex along the edge on a side of the discontinuity line intersection and a second vertex along the edge on an opposite side of the discontinuity line intersection.

19. The computer-implemented method of claim 17 , further comprising:

identifying an additional discontinuity line from the set of discontinuity lines of the 2D-sharpness map intersecting the discontinuity line corresponding to the discontinuity line intersection; and

generating at least one vertex within a threshold distance from the intersection of the additional discontinuity line and the discontinuity line corresponding to the discontinuity line intersection.

20. The computer-implemented method of claim 17 , further comprising:

identifying multiple discontinuity line intersections between discontinuity lines from the set of discontinuity lines of the 2D-sharpness map and the edge between the vertex and the neighbor vertex; and

subdividing the edge between the vertex and the neighbor vertex by generating the one or more vertices positioned along the edge between the vertex and the neighbor vertex and within the threshold distance from one or more extreme positions of the edge.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: INSTITUT MINES-TELECOM
To: ADOBE INC.
Reel/Frame 066546/0521 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2020
From: SALVI, ANTHONY
To: ADOBE INC.
Reel/Frame 054432/0442 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2020
From: LAMBERT, THIBAUD; BOUBEKEUR, TAMY
To: INSTITUT MINES TELECOM
Reel/Frame 054432/0452 →
Continuity (1)
Related Publication 20220165025A1 · May 26, 2022