# US 9,520,001 B2 · 3D model enhancement

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,520,001 B2
- Document ID: US9520001B2
- Status: Granted
- Kind: B2
- Application number: 14/159,870
- Filed: 2014-01-21
- Published: 2015-07-23
- Granted: 2016-12-13
- Earliest claimed: 2014-01-21
- Assignees: Adobe Systems Incorporated
- Applicants: Adobe Systems Incorporated
- Inventors: Daniel Robert Goldman; Jan Jachnik; Linjie Luo
- Web page: https://patentgrep.com/patent/US9520001B2

## CPC

- G06T 17/205: {Re-meshing}
- G06T 17/20: Finite element generation, e.g. wire-frame surface description, {tesselation}
- G06T 19/20: Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
- G06T 5/70: Denoising; Smoothing
- G06T 5/73: Deblurring; Sharpening
- G06T 2219/2016: Rotation, translation, scaling
- G06T 2219/2021: Shape modification
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 2)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 1)

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.

### Claim 8 (depends on 1)

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.

### Claim 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.

### Claim 10 (depends on 9)

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.

### Claim 11 (depends on 9)

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.

### Claim 12 (depends on 9)

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.

### Claim 13 (depends on 9)

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.

### Claim 14 (depends on 9)

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.

### Claim 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.

### Claim 16 (depends on 15)

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.

### Claim 17 (depends on 16)

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.

### Claim 18 (depends on 15)

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.

### Claim 19 (depends on 15)

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.

### Claim 20 (depends on 15)

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.
