Three-dimensional mesh segmentation
Three-dimensional (3D) mesh segmentation techniques are described. In one example, a geometry segmentation system determines a vertex direction for each vertex in a 3D mesh. A segment generation module is then employed to generate segments (e.g., as developable geometries) from the 3D mesh. To do so, a vertex selection module selects an initial vertex having an associated vertex direction. A face identification module then identifies a face in the 3D mesh using that initial vertex and at least one other vertex. A segment determination module compares the vertex direction associated with the initial vertex with a normal determined for the face. If the vertex direction is orthogonal to the normal (e.g., within a threshold amount), the face is added to the segment, and sets another one of the vertices of the face as the initial vertex and the process repeats.
1. In a digital medium three-dimensional (3D) mesh segmentation environment, a method implemented by a computing device, the method comprising:
generating, by the computing device, a segment from a 3D mesh formed using a plurality of vertices, the generating including:
selecting a first vertex from the plurality of vertices, the first vertex associated with a first vertex direction based on a direction of a curvature in the 3D mesh;
identifying a first face formed using the first vertex and at least one other vertex of the plurality of vertices;
determining whether to add the first face to the segment by comparing the first vertex direction of the first vertex to a first normal of the first face;
adding the first face to the segment based on a result of the determination to add the first face to the segment;
selecting a second vertex included in the first face, the second vertex associated with a second vertex direction;
identifying a second face formed using the second vertex;
determining whether to add the second face to the segment by comparing the second vertex direction of the second vertex to a second normal of the second face; and
adding the second face to the segment based on a result of the determination to add the second face to the segment; and
outputting, by the computing device, the segment.
2. The method as described in claim 1 , wherein the segment is a developable geometry of the 3D mesh that is configured to be flattened onto a plane without stretching or shearing the segment.
3. The method as described in claim 1 , wherein the first vertex direction is the direction of the curvature in the 3D mesh for the first vertex that exhibits a least amount of the curvature.
4. The method as described in claim 1 , further comprising determining, by the computing device, the first vertex direction of the first vertex by:
generating a plurality of candidate directions having respective amounts of the curvature based on the 3D mesh; and
setting the first vertex direction based on a candidate direction of the plurality of candidate directions that exhibits, respectively, a least of the respective amounts of the curvature.
5. The method as described in claim 1 , wherein the first normal of the first face is orthogonal to the first face.
6. The method as described in claim 1 , wherein the first vertex direction of the first vertex is within a permissible amount of deviation in relation to the first normal of the first face.
7. The method as described in claim 1 , further comprising generating, by the computing device, a two-dimensional (2D) texture map of the segment by mapping the segment using UV coordinates.
8. The method as described in claim 7 , further comprising:
receiving, by the computing device, an input indicating a texture to be applied to the 2D texture map;
applying, by the computing device, the texture to the 3D mesh based on the 2D texture map; and
rendering, by the computing device, the 3D mesh as having the texture based on the 2D texture map.
9. In a digital medium three-dimensional (3D) mesh segmentation environment, a system comprising:
a processor; and
a non-transitory computer readable storage medium having instructions stored thereon that, responsive to execution by the processor, causes the processor to perform operations including:
generating a segment from a 3D mesh formed using a plurality of vertices, the generating including:
selecting a first vertex from the plurality of vertices, the first vertex associated with a first vertex direction based on a direction of curvature in the 3D mesh;
identifying a first face formed using the first vertex and at least one other vertex of the plurality of vertices;
determining whether to add the first face to the segment by comparing the first vertex direction of the first vertex to a first normal of the first face;
adding the first face to the segment based on a result of the determination to add the first face to the segment;
selecting a second vertex included in the first face, the second vertex associated with a second vertex direction;
identifying a second face formed using the second vertex;
determining whether to add the second face to the segment by comparing the second vertex direction of the second vertex to a second normal of the second face; and
adding the second face to the segment based on a result of the determination to add the second face to the segment; and
outputting the segment.
10. The system as described in claim 9 , wherein the segment is a developable geometry of the 3D mesh that is configured to be flattened onto a plane without stretching or shearing the segment.
11. The system as described in claim 9 , wherein the first vertex direction is the direction of the curvature in the 3D mesh for the first vertex that exhibits a least amount of the curvature.
12. The system as described in claim 9 , wherein the instructions, responsive to execution by the processor, causes the processor to perform further operations including determining the first vertex direction of the first vertex by:
generating a plurality of candidate directions having respective amounts of the curvature based on the 3D mesh; and
setting the first vertex direction based on a candidate direction of the plurality of candidate directions that exhibits, respectively, a least of the respective amounts of the curvature.
13. The system as described in claim 9 , wherein the first normal of the first face is orthogonal to the first face.
14. The system as described in claim 9 , wherein the first vertex direction of the first vertex is within a permissible amount of deviation in relation to the first normal of the first face.
15. The system as described in claim 9 , wherein the instructions, responsive to execution by the processor, causes the processor to perform further operation including generating a two-dimensional (2D) texture map of the segment by mapping the segment using UV coordinates.
16. The system as described in claim 15 , wherein the instructions, responsive to execution by the processor, causes the processor to perform further operations including:
receiving an input indicating a texture to be applied to the 2D texture map;
applying the texture to the 3D mesh based on the 2D texture map; and
rendering the 3D mesh as having the texture based on the 2D texture map.
17. A non-transitory computer readable storage medium having instructions stored thereon that, responsive to execution by a processor, causes the processor to perform operations including:
generating a segment from a three-dimensional (3D) mesh formed using a plurality of vertices, the generating including:
selecting a first vertex from the plurality of vertices, the first vertex associated with a first vertex direction based on a direction of curvature in the 3D mesh;
identifying a first face formed using the first vertex and at least one other vertex of the plurality of vertices;
determining whether to add the first face to the segment by comparing the first vertex direction of the first vertex to a first normal of the first face;
adding the first face to the segment based on a result of the determination to add the first face to the segment;
selecting a second vertex included in the first face, the second vertex associated with a second vertex direction;
identifying a second face formed using the second vertex;
determining whether to add the second face to the segment by comparing the second vertex direction of the second vertex to a second normal of the second face; and
adding the second face to the segment based on a result of the determination to add the second face to the segment; and
outputting the segment.
18. The non-transitory computer readable storage medium as described in claim 17 , wherein the segment is a developable geometry of the 3D mesh that is configured to be flattened onto a plane without stretching or shearing the segment.
19. The non-transitory computer readable storage medium as described in claim 17 , wherein the first vertex direction is the direction of the curvature in the 3D mesh for the first vertex that exhibits a least amount of the curvature.
20. The non-transitory computer readable storage medium as described in claim 17 , wherein the operations further include determining the first vertex direction of the first vertex by:
generating a plurality of candidate directions having respective amounts of the curvature based on the 3D mesh; and
setting the first vertex direction based on a candidate direction of the plurality of candidate directions that exhibits, respectively, a least of the respective amounts of the curvature.