One embodiment involves receiving a fine mesh as input, the fine mesh representing a 3-Dimensional (3D) model and comprising fine mesh polygons. The embodiment further involves identifying, based on the fine mesh, near-planar regions represented by a coarse mesh of coarse mesh polygons, at least one of the near-planar regions corresponding to a plurality of the coarse mesh polygons. The embodiment further involves determining a deformation to deform the coarse mesh based on comparing normals between adjacent coarse mesh polygons. The deformation may involve reducing a first angle between coarse mesh polygons adjacent to one another in a same near-planar region. The deformation may additionally or alternatively involve increasing an angle between coarse mesh polygons adjacent to one another in different near-planar regions. The fine mesh can be deformed using the determined deformation.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method comprising: receiving a fine mesh as input, the fine mesh representing a 3-Dimensional (3D) model and comprising a first plurality of fine-mesh polygons, a second plurality of fine-mesh polygons, and a third plurality of fine-mesh polygons; grouping the first plurality of fine-mesh polygons, the second plurality of fine-mesh polygons, and the third plurality of fine-mesh polygons into a first near-planar region of a coarse mesh and a second near-planar region of the coarse mesh, the first near-planar region comprising a first coarse-mesh polygon corresponding to the first plurality of fine-mesh polygons, the second near-planar region comprising a second coarse-mesh polygon corresponding to the second plurality of fine-mesh polygons and a third coarse-mesh polygon corresponding to the third plurality of fine-mesh polygons; applying a deformation to the coarse mesh, wherein applying the deformation the coarse mesh comprises: increasing an angle between the first coarse-mesh polygon and the second coarse-mesh polygon based on the first coarse-mesh polygon being in the first near-planar region and the second coarse-mesh polygon being in the second near-planar region, and decreasing an angle between the second coarse-mesh polygon and the third coarse-mesh polygon based on the second coarse-mesh polygon and the third coarse-mesh polygon being in the second near-planar region; and transforming the deformation into a modification for the fine mesh; and applying the modification to at least some of the first plurality of fine-mesh polygons, at least some of the second plurality of fine-mesh polygons, and at least some of the third plurality of fine-mesh polygons.
2. The method of claim 1 , wherein applying the deformation comprises: accessing an energy function having an output based on positions of vertices of the coarse mesh, wherein a first term of the energy function (i) relates a normal of the first coarse-mesh polygon to a normal of the second coarse-mesh polygon and (ii) has a first weight causing an increase in the angle between the first coarse-mesh polygon and the second coarse-mesh polygon, wherein a second term of the energy function (i) relates the normal of the second coarse-mesh polygon to a normal of the third coarse-mesh polygon and (ii) has a second weight causing an decrease in the angle between the second coarse-mesh polygon and the third coarse-mesh polygon; and minimizing the output of the energy function, wherein minimizing the output comprises modifying a subset of the positions of vertices.
3. The method of claim 2 , wherein the energy function also includes a term that maintains a threshold similarity of the coarse mesh relative to an original configuration of the coarse mesh when the energy function is minimized.
4. The method of claim 1 , wherein transforming the deformation into the modification for the fine mesh comprises: generating a rotation matrix by comparing a normal of each coarse-mesh polygon prior to the deformation being applied and a normal of each coarse-mesh polygon subsequent to the deformation being applied, wherein the rotation matrix transforms the normal prior to the deformation being applied into the normal subsequent to the deformation being applied; and applying rotations in the rotation matrix to corresponding fine-mesh polygons in the fine mesh.
5. The method of claim 1 , wherein applying the deformation comprises optimizing an energy function using a term weighted for a particular edge between coarse-mesh polygons adjacent to one another, wherein optimizing the energy function causes at least one of: accentuating a first feature in the 3D model that corresponds to the first coarse-mesh polygon and the second coarse-mesh polygon by increasing the angle between the first coarse-mesh polygon and the second coarse-mesh polygon; or smoothing a second feature in the 3D model that corresponds to the second coarse-mesh polygon and the third coarse-mesh polygon by decreasing the angle between the second coarse-mesh polygon and the third coarse-mesh polygon.
6. The method of claim 1 , wherein transforming the deformation into the modification and applying the modification comprises applying a rotation and controlling polygon edge length to avoid polygon collapse.
7. The method of claim 1 , wherein transforming the deformation into the modification and applying the modification comprises applying a rotation matrix to polygons in the fine mesh.
8. The method of claim 1 , wherein the first near-planar region, the second near-planar region, and the third near-planar region approximate planes of a naturally occurring object.
9. A system comprising: a processor; and a non-transitory computer-readable medium communicatively coupled to the processor, wherein the processor is configured for executing instructions stored in the non-transitory computer-readable medium to perform operations comprising: receiving a fine mesh as input, the fine mesh representing a 3-Dimensional (3D) model and comprising a first plurality of fine-mesh polygons, a second plurality of fine-mesh polygons, and a third plurality of fine-mesh polygons, grouping the first plurality of fine-mesh polygons, the second plurality of fine-mesh polygons, and the third plurality of fine-mesh polygons into a first near-planar region of a coarse mesh and a second near-planar region of the coarse mesh, the first near-planar region comprising a first coarse-mesh polygon corresponding to the first plurality of fine-mesh polygons, the second near-planar region comprising a second coarse-mesh polygon corresponding to the second plurality of fine-mesh polygons and a third coarse-mesh polygon corresponding to the third plurality of fine-mesh polygons, applying a deformation to the coarse mesh, wherein applying the deformation the coarse mesh comprises: increasing an angle between the first coarse-mesh polygon and the second coarse-mesh polygon based on the first coarse-mesh polygon being in the first near-planar region and the second coarse-mesh polygon being in the second near-planar region, and decreasing an angle between the second coarse-mesh polygon and the third coarse-mesh polygon based on the second coarse-mesh polygon and the third coarse-mesh polygon being in the second near-planar region, and transforming the deformation into a modification for the fine mesh, and applying the modification to at least some of the first plurality of fine-mesh polygons, at least some of the second plurality of fine-mesh polygons, and at least some of the third plurality of fine-mesh polygons.
10. The system of claim 9 , wherein applying the deformation comprises: accessing an energy function having an output based on positions of vertices of the coarse mesh, wherein a first term of the energy function (i) relates a normal of the first coarse-mesh polygon to a normal of the second coarse-mesh polygon and (ii) has a first weight causing an increase in the angle between the first coarse-mesh polygon and the second coarse-mesh polygon, wherein a second term of the energy function (i) relates the normal of the second coarse-mesh polygon to a normal of the third coarse-mesh polygon and (ii) has a second weight causing an decrease in the angle between the second coarse-mesh polygon and the third coarse-mesh polygon; and minimizing the output of the energy function, wherein minimizing the output comprises modifying a subset of the positions of vertices.
11. The system of claim 9 , wherein the energy function also includes a term that maintains a threshold similarity of the coarse mesh relative to an original configuration of the coarse mesh when the energy function is minimized.
12. The system of claim 9 , wherein transforming the deformation into the modification for the fine mesh comprises: generating a rotation matrix by comparing a normal of each coarse-mesh polygon prior to the deformation being applied and a normal of each coarse-mesh polygon subsequent to the deformation being applied, wherein the rotation matrix transforms the normal prior to the deformation being applied into the normal subsequent to the deformation being applied; and applying rotations in the rotation matrix to corresponding fine-mesh polygons in the fine mesh.
13. The system of claim 9 , wherein applying the deformation comprises optimizing an energy function using a term weighted for a particular edge between coarse-mesh polygons adjacent to one another, wherein optimizing the energy function causes at least one of: accentuating a first feature in the 3D model that corresponds to the first coarse-mesh polygon and the second coarse-mesh polygon by increasing the angle between the first coarse-mesh polygon and the second coarse-mesh polygon; or smoothing a second feature in the 3D model that corresponds to the second coarse-mesh polygon and the third coarse-mesh polygon by decreasing the angle between the second coarse-mesh polygon and the third coarse-mesh polygon.
14. The system of claim 9 , wherein transforming the deformation into the modification and applying the modification comprises applying a rotation and controlling polygon edge length to avoid polygon collapse.
15. A non-transitory computer-readable medium having instructions stored thereon that are executable by a processing device, the instructions comprising: instructions for receiving a fine mesh as input, the fine mesh representing a 3-Dimensional (3D) model and comprising a first plurality of fine-mesh polygons, a second plurality of fine-mesh polygons, and a third plurality of fine-mesh polygons; instructions for grouping the first plurality of fine-mesh polygons, the second plurality of fine-mesh polygons, and the third plurality of fine-mesh polygons into a first near-planar region of a coarse mesh and a second near-planar region of the coarse mesh, the first near-planar region comprising a first coarse-mesh polygon corresponding to the first plurality of fine-mesh polygons, the second near-planar region comprising a second coarse-mesh polygon corresponding to the second plurality of fine-mesh polygons and a third coarse-mesh polygon corresponding to the third plurality of fine-mesh polygons; instructions for applying a deformation to the coarse mesh, wherein applying the deformation the coarse mesh comprises: increasing an angle between the first coarse-mesh polygon and the second coarse-mesh polygon based on the first coarse-mesh polygon being in the first near-planar region and the second coarse-mesh polygon being in the second near-planar region, and decreasing an angle between the second coarse-mesh polygon and the third coarse-mesh polygon based on the second coarse-mesh polygon and the third coarse-mesh polygon being in the second near-planar region, and transforming the deformation into a modification for the fine mesh; and instructions for applying the modification to at least some of the first plurality of fine-mesh polygons, at least some of the second plurality of fine-mesh polygons, and at least some of the third plurality of fine-mesh polygons.
16. The non-transitory computer-readable medium of claim 15 , wherein applying the deformation comprises: accessing an energy function having an output based on positions of vertices of the coarse mesh, wherein a first term of the energy function (i) relates a normal of the first coarse-mesh polygon to a normal of the second coarse-mesh polygon and (ii) has a first weight causing an increase in the angle between the first coarse-mesh polygon and the second coarse-mesh polygon, wherein a second term of the energy function (i) relates the normal of the second coarse-mesh polygon to a normal of the third coarse-mesh polygon and (ii) has a second weight causing an decrease in the angle between the second coarse-mesh polygon and the third coarse-mesh polygon; and minimizing the output of the energy function, wherein minimizing the output comprises modifying a subset of the positions of vertices.
17. The non-transitory computer-readable medium of claim 16 , wherein the energy function also includes a term that maintains a threshold similarity of the coarse mesh relative to an original configuration of the coarse mesh when the energy function is minimized.
18. The non-transitory computer-readable medium of claim 15 , wherein transforming the deformation into the modification for the fine mesh comprises: generating a rotation matrix by comparing a normal of each coarse-mesh polygon prior to the deformation being applied and a normal of each coarse-mesh polygon subsequent to the deformation being applied, wherein the rotation matrix transforms the normal prior to the deformation being applied into the normal subsequent to the deformation being applied; and applying rotations in the rotation matrix to corresponding fine-mesh polygons in the fine mesh.
19. The non-transitory computer-readable medium of claim 15 , wherein applying the deformation comprises optimizing an energy function using a term weighted for a particular edge between coarse-mesh polygons adjacent to one another, wherein optimizing the energy function causes at least one of: accentuating a first feature in the 3D model that corresponds to the first coarse-mesh polygon and the second coarse-mesh polygon by increasing the angle between the first coarse-mesh polygon and the second coarse-mesh polygon; or smoothing a second feature in the 3D model that corresponds to the second coarse-mesh polygon and the third coarse-mesh polygon by decreasing the angle between the second coarse-mesh polygon and the third coarse-mesh polygon.
20. The non-transitory computer-readable medium of claim 15 , wherein transforming the deformation into the modification and applying the modification comprises applying a rotation and controlling polygon edge length to avoid polygon collapse.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
January 21, 2014
December 13, 2016
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.