# US 7,940,262 B2 · Unification and part hiding in three dimensional geometric data

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

- Number: US 7,940,262 B2
- Document ID: US7940262B2
- Status: Granted
- Kind: B2
- Application number: 11/763,585
- Filed: 2007-06-15
- Published: 2007-12-20
- Granted: 2011-05-10
- Earliest claimed: 2006-06-15
- Assignees: Right Hemisphere Limited
- Inventors: Max Konev; Mark Shafer; Jed Fisher
- Web page: https://patentgrep.com/patent/US7940262B2

## CPC

- G06T 15/40: Hidden part removal
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Technology is disclosed for improving the rendering of a three-dimensional (3D) object. In one aspect, the technology applies multi-scale visibility patches and adjacency heuristics to restore proper face and normals orientation at a per-object and per-polygon level; and target where best to apply ray-casting metrics to refine visibility determination.

## Claims

### Claim 1

A computer implemented method for improving a rendering of a view in a three dimensional scene of a Computer Aided Design (CAD) object, the view comprising a plurality of polygons visible from a variety of viewing angles, comprising:
receiving the CAD object from a first processing device;
outputting healed visualization data based on the CAD object by:
removing internal parts of the object defined in the scene, the internal parts being hidden in the plurality of viewing angles; and
unifying portions of the scene on a per object and per polygon level by applying, for a first set of triangles, a heuristic to determine proper normal orientation for a triangle face and for a second set of triangles, selectively applying a ray-casting technique to determine proper normal orientation.

### Claim 2 (depends on 1)

The computer implemented method of claim 1 wherein the step of removing internal parts comprises:
spatially classifying a tessellated mesh comprising a plurality of triangles representing at least one polygon;
directing rays from a subset of the plurality of viewing angles through the mesh;
determining which parts are intercepted; and
calculating a ratio of positive to negative hits and if the ratio is zero, removing a part from the object rendering.

### Claim 3 (depends on 2)

The computer implemented method of claim 2 wherein the step of spatially classifying the tessellated mesh includes classifying the mesh into a grid-volume approximation and the step of determining comprises performing a ray-intersection test on each ray and at least one triangle.

### Claim 4 (depends on 3)

The computer implemented method of claim 3 further including determining orientation direction of each intersecting triangle based on a sign of a dot-product determination of the ray-intersection test.

### Claim 5 (depends on 4)

The computer implemented method of claim 4 wherein the step of unifying includes the steps of determining patches within the polygon based on connectivity between the triangles.

### Claim 6 (depends on 5)

The computer implemented method of claim 5 further including the step of mapping connectivity information for each triangle into a data structure.

### Claim 7 (depends on 6)

The computer implemented method of claim 6 further including determining for each triangle in each polygon a first possible growth path direction for a patch, testing the growth path, and setting a boundary or growing a patched in said direction based on said testing, thereby providing at least one patch.

### Claim 8 (depends on 7)

The computer implemented method of claim 7 further including processing the patch to determine a correct direction of a normal for the patch.

### Claim 9 (depends on 8)

The computer implemented method of claim 8 wherein the step of processing the patch includes:
finding a current patch and a neighbor patch, the neighbor patch having strongest evidence of inversion relative to other neighbor patches; and
determining whether the connectivity mapping information exceeds a threshold, and if so, marking the neighbor as inverted and if not, performing ray-casting on the neighbor.

### Claim 10 (depends on 9)

The computer implemented method of claim 9 further including setting the neighbor patch as a current patch and repeating said steps of finding and determining.

### Claim 11

A computer implemented process for creating three dimensional object view data, comprising:
receiving a CAD object from a first processing device;
outputting healed visualization data based on the CAD object by:
accessing three dimensional object data comprising a plurality of polygons having borders;
removing internal parts of the object in a scene, the internal parts being hidden when rendering the three dimensional object in a plurality of viewing angles; and
unifying portions of the object and applying evidence based heuristics to determine a normal direction for at least a subset of unified portions by applying, for a first set of triangles, a heuristic to determine proper normal orientation for a face and for a second set of triangles, applying a ray-casting technique to determine proper normal orientation.

### Claim 12 (depends on 11)

The process of claim 11 wherein said step of applying ray-casting is performed for each unified portion having a normal direction not determined by applying evidence based heuristics.

### Claim 13 (depends on 11)

The process of claim 11 wherein the step of unifying includes the steps of determining patches within the polygon based on connectivity between the triangles.

### Claim 14 (depends on 13)

The process of claim 13 further including the step of mapping connectivity information for each triangle into a data structure.

### Claim 15 (depends on 14)

The process of claim 14 further including determining for each triangle in each polygon a first possible growth path direction for a patch, testing the growth path, and setting a boundary or growing a patched in said direction based on said testing, thereby providing at least one patch.

### Claim 16 (depends on 15)

The process of claim 15 further including processing the patch to determine a correct direction of a normal for the patch, said processing comprising:
finding a current patch and a neighbor patch with strongest evidence of inversion relative to other neighbor patches; and
determining whether the connectivity mapping information exceeds a threshold, and if so, marking the neighbor as inverted and if not, performing ray-casting on the neighbor.

### Claim 17 (depends on 11)

The process of claim 11 wherein the step of removing internal parts comprises:
spatially classifying a tessellated mesh comprising a plurality of triangles representing at least one polygon;
directing rays from a subset of the plurality of viewing angles through the mesh;
determining which parts are intercepted; and
calculating a ratio of positive to negative hits and if the ratio is zero, removing the part from the object rendering.

### Claim 18

A non-transitory computer readable medium having instructions stored thereon, the instructions causing a processing device to execute a method comprising:
accessing a three dimensional CAD object data comprising a plurality of polygons having borders; and
outputting healed visualization data based on the CAD object by:
removing internal parts of the object in a scene, the internal parts being hidden when rendering the three dimensional object in a plurality of viewing angles;
unifying portions of the object and applying evidence based heuristics to determine a normal direction for at least a first set of triangles to determine proper normal orientation for a triangle face and for a second set of triangles, selectively applying ray-casting to determine a normal direction a second subset of the triangles; and
rendering the three dimensional object using the healed visualization data.
