IP Library Granted Patent US 10,019,840
Granted Patent B2
US 10,019,840 · App. 15/270,138 · Granted Jul 10, 2018

3D model enhancement

Inventors: Daniel Robert Goldman (Seattle, WA); Jan Jachnik (London, GB); Linjie Luo (San Jose, CA)
Assignee: Adobe Systems Incorporated
G06T17/205G06T17/20G06T19/20G06T5/002G06T5/003G06T2219/2016G06T2219/2021
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 10,019,840
App. No.
15/270,138
Granted
Jul 10, 2018
Kind
B2
Abstract

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.

Claims (58)

1. A method comprising:

receiving a fine mesh as input representing a 3-Dimensional (3D) model and comprising first fine-mesh polygons and second fine-mesh polygons;

grouping the first fine-mesh polygons into a first near-planar region of a coarse mesh and the second fine-mesh polygons into a second near-planar region of the coarse mesh, wherein the first near-planar region comprises a first coarse-mesh polygon corresponding to the first fine-mesh polygons and the second near-planar region comprises a second coarse-mesh polygon corresponding to the second fine-mesh polygons;

using an energy function to determine a deformation to be applied to the coarse mesh, wherein the energy function comprises (i) a first term selected to maintain a threshold similarity of the coarse mesh relative to an original configuration of the coarse mesh, and (ii) a second term selected to identify the deformation, and wherein the second term is selectively weighted to encourage accentuation or smoothing between the first coarse-mesh polygon and the second coarse-mesh polygon;

applying the deformation to the coarse mesh based on the energy function, wherein applying the deformation the coarse mesh comprises increasing or decreasing an angle between the first coarse-mesh polygon and the second coarse-mesh polygon based on the first coarse-mesh polygon and the second coarse-mesh polygon respectively being in the first near-planar region and the second near-planar region;

transforming the deformation into a modification for the fine mesh; and

applying the modification to at least some fine-mesh polygons of the first fine-mesh polygons and the second fine-mesh polygons.

2. The method of claim 1 , wherein the energy function has an output based on positions of vertices of the coarse mesh, and wherein the second term of the energy function relates a normal of the first coarse-mesh polygon to a normal of the second coarse-mesh polygon; and

wherein applying the deformation comprises 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 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.

4. The method of claim 1 , wherein applying the deformation comprises optimizing the energy function, wherein optimizing the energy function causes at least one of:

accentuating a 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 feature in the 3D model that corresponds to the first coarse-mesh polygon and the second coarse-mesh polygon by decreasing the angle between the first coarse-mesh polygon and the second coarse-mesh polygon.

5. 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.

6. 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.

7. The method of claim 1 , wherein the first near-planar region and the second near-planar region approximate planes of a naturally occurring object.

8. 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 representing a 3-Dimensional (3D) model and comprising first fine-mesh polygons and second fine-mesh polygons,

grouping the first fine-mesh polygons into a first near-planar region of a coarse mesh and the second fine-mesh polygons into a second near-planar region of the coarse mesh, wherein the first near-planar region comprises a first coarse-mesh polygon corresponding to the first fine-mesh polygons and the second near-planar region comprises a second coarse-mesh polygon corresponding to the second fine-mesh polygons,

using an energy function to determine a deformation to be applied to the coarse mesh, wherein the energy function comprises (i) a first term selected to maintain a threshold similarity of the coarse mesh relative to an original configuration of the coarse mesh, and (ii) a second term selected to identify the deformation, and wherein the second term is selectively weighted to encourage accentuation or smoothing between the first coarse-mesh polygon and the second coarse-mesh polygon;

applying the deformation to the coarse mesh based on the energy function, wherein applying the deformation the coarse mesh comprises increasing or decreasing an angle between the first coarse-mesh polygon and the second coarse-mesh polygon based on the first coarse-mesh polygon and the second coarse-mesh polygon respectively being in the first near-planar region and the second near-planar region,

transforming the deformation into a modification for the fine mesh, and

applying the modification to at least some fine-mesh polygons of the first fine-mesh polygons and the second fine-mesh polygons.

9. The system of claim 8 , wherein the energy function has an output based on positions of vertices of the coarse mesh, and wherein the second term of the energy function relates a normal of the first coarse-mesh polygon to a normal of the second coarse-mesh polygon; and

wherein applying the deformation comprises minimizing the output of the energy function, wherein minimizing the output comprises modifying a subset of the positions of vertices.

10. The system of claim 8 , 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.

11. The system of claim 8 , wherein applying the deformation comprises optimizing the energy function, wherein optimizing the energy function causes at least one of:

accentuating a 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 feature in the 3D model that corresponds to the first coarse-mesh polygon and the second coarse-mesh polygon by decreasing the angle between the first coarse-mesh polygon and the second coarse-mesh polygon.

12. The system of claim 8 , wherein transforming the deformation into the modification and applying the modification comprises applying a rotation and controlling polygon-edge length to avoid polygon collapse.

13. The system of claim 8 , wherein transforming the deformation into the modification and applying the modification comprises applying a rotation matrix to polygons in the fine mesh.

14. The system of claim 8 , wherein the first near-planar region and the second near-planar region approximate planes of a naturally occurring object.

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 representing a 3-Dimensional (3D) model and comprising first fine-mesh polygons and second fine-mesh polygons;

instructions for grouping the first fine-mesh polygons into a first near-planar region of a coarse mesh and the second fine-mesh polygons into a second near-planar region of the coarse mesh, wherein the first near-planar region comprises a first coarse-mesh polygon corresponding to the first fine-mesh polygons and the second near-planar region comprises a second coarse-mesh polygon corresponding to the second fine-mesh polygons;

instructions for applying a deformation to the coarse mesh, wherein applying the deformation the coarse mesh 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 weight causing at least one of an increase in an angle between the first coarse-mesh polygon and the second coarse-mesh polygon or a decrease in the angle between the first coarse-mesh polygon and the second coarse-mesh polygon, wherein the energy function also includes a second 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, and

minimizing the output of the energy function, wherein minimizing the output comprises modifying a subset of the positions of vertices;

instructions for transforming the deformation into a modification for the fine mesh; and

instructions for applying the modification to at least some fine-mesh polygons of the first fine-mesh polygons and the second fine-mesh polygons.

16. The non-transitory computer-readable medium of claim 15 , wherein the first near-planar region and the second near-planar region approximate planes of a naturally occurring object.

17. 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.

18. The non-transitory computer-readable medium of claim 15 , wherein applying the deformation comprises optimizing the energy function, wherein optimizing the energy function causes at least one of:

accentuating a feature in the 3D model that corresponds to the first coarse-mesh polygon and the second coarse-mesh polygon by increasing an angle between the first coarse-mesh polygon and the second coarse-mesh polygon; or

smoothing a feature in the 3D model that corresponds to the first coarse-mesh polygon and the second coarse-mesh polygon by decreasing an angle between the first coarse-mesh polygon and the second coarse-mesh polygon.

19. The non-transitory computer-readable medium of claim 15 , wherein transforming the deformation into the modification and applying the modification comprises at least one of:

applying a rotation and controlling polygon-edge length to avoid polygon collapse; or

applying a rotation matrix to polygons in the fine mesh.

20. The non-transitory computer-readable medium of claim 15 , wherein a negative weight applied to the first term of the energy function encourages smoothing between polygons in the same near-planar region, and wherein a positive weight applied to the first term of the energy function encourages smoothing between polygons different near-planar regions, a positive weight can be used to encourage exaggeration.

Assignments (2)
CHANGE OF NAME Recorded Mar 6, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048525/0042 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2016
From: GOLDMAN, DANIEL ROBERT; JACHNIK, JAN; LUO, LINJIE
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 039798/0087 →
Continuity (2)
Continuation 14159870 · Jan 21, 2014
Related Publication 20170011552A1 · Jan 12, 2017