IP Library Granted Patent US 7,609,261
Granted Patent B2
US 7,609,261 · App. 12/055,279 · Granted Oct 27, 2009

Modeling hair using interpolation and clumping in an iterative process

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 7,609,261
App. No.
12/055,279
Granted
Oct 27, 2009
Kind
B2
Abstract

The present invention models hairs by generating hairs by interpolation and then further modifying the interpolated hairs to form clumps. The modified hairs can be iteratively reprocessed to generate more hairs and thereby produce a greater level of detail in the resulting hairstyle. The invention can be used to model any tubular structures protruding from a surface, such as strands of fur protruding from an animal's skin and blades of grass or stems of plants protruding from the ground.

Claims (46)

1. A computer-readable storage medium that stores a computer program for modifying a given hair, which has an origin and a plurality of vertices, wherein a vertex of the given hair has a clumpiness value, the computer program comprising instructions for:

identifying a clump hair to which the given hair is attracted, wherein the clump hair has an origin, a radius extending from the origin, a plurality of vertices, each vertex of the clump hair having a clumpiness value;

determining locations for vertices of a reference hair that includes a plurality of vertices, each vertex of the reference hair having a clumpiness value, wherein an origin of the reference hair lies between the origin of the given hair and the origin of the clump hair; and

for each vertex of the given hair: determining a new location of the vertex, the new location being between the location of the vertex of the given hair and a location of a corresponding vertex of the reference hair, according to the clumpiness value of the vertex of the given hair, the clumpiness value of the corresponding vertex of the reference hair, and the clumpiness value of a corresponding vertex of the clump hair; and

storing the new locations of the vertices of the given hair.

2. The computer-readable storage medium of claim 1 , wherein the origin of the given hair is located within the radius of the clump hair.

3. The computer-readable storage medium of claim 1 , wherein the origin of the given hair is not located within the radius of the clump hair.

4. The computer-readable storage medium of claim 1 , wherein determining the locations for vertices of the reference hair includes instructions for:

determining a first location of a first vertex of the reference hair according to a radius of a first corresponding vertex of the clump hair; and

determining a second location of a second vertex of the reference hair by:

determining a vector that intersects the clump hair at a second corresponding vertex of the clump hair; and

determining a distance along the vector, wherein the second location of the second vertex of the reference hair is on the determined vector at the determined distance.

5. The computer-readable storage medium of claim 4 , wherein determining the distance along the vector comprises determining a distance between the first location of the first vertex of the reference hair and a location of the first corresponding vertex of the clump hair.

6. The computer-readable storage medium of claim 1 , further comprising instructions for:

determining a first location of a first vertex of the given hair on a surface by using rejection sampling to reject one or more sampled locations that lie in compressed regions having relatively small surface tangents; and

determining a second location of a second vertex of the given hair by:

determining a triangular mesh whose vertices comprise a plurality of locations of a plurality of origins of a plurality of guide hairs;

determining a triangle of the triangular mesh that contains the first location of the first vertex of the given hair;

determining a plurality of guide hairs whose origins form the vertices of the triangle; and

interpolating the plurality of guide hairs.

7. The computer-readable storage medium of claim 6 , further comprising instructions for:

for each vertex of the given hair:

determining the clumpiness value of the vertex according to a clumpiness value of a corresponding vertex of one of the plurality of guide hairs.

8. The computer-readable storage medium of claim 1 , further comprising instructions for:

for each vertex of the given hair:

determining the clumpiness value of the vertex according to an initial clumpiness value of the vertex.

9. The computer-readable storage medium of claim 1 , further comprising instructions for:

for each vertex of the given hair:

determining the clumpiness value of the vertex according to a plurality of clumpiness values of a plurality of vertices of the given hair.

10. The computer-readable storage medium of claim 1 , further comprising instructions for:

determining a first location of a first vertex of the given hair on a surface by using rejection sampling to reject one or more sampled locations that lie in compressed regions having relatively small surface tangents.

11. The computer-readable storage medium of claim 1 , wherein the reference hair represents where the given hair would be located if the given hair was fully attracted to the clump hair.

12. A computer-readable storage medium that stores a computer program for modifying a given hair, which has an origin and a plurality of vertices, wherein a vertex of the given hair has a clumpiness value, the computer program comprising instructions for:

identifying a clump hair to which the given hair is attracted, the clump hair having an origin, a radius extending from the origin, and a clumpiness value, wherein the origin of the given hair is located within the radius of the clump hair;

determining a reference hair that includes a plurality of vertices with associated location and direction values, wherein determining the reference hair includes instructions for:

determining an origin of the reference hair by translating the origin of the given hair towards the origin of the clump hair;

determining location and direction values for a plurality of vertices of the clump hair; and

determining location and direction values for the reference hair from location and direction values at corresponding vertices of the clump hair;

modifying the given hair by modifying one or more vertices of the given hair according to the location and direction values of the reference hair, the clumpiness value of the clump hair and the clumpiness value of the given hair; and

storing the modified given hair.

13. The computer-readable storage medium of claim 12 , further comprising instructions for determining the given hair by interpolating a plurality of guide hairs that include a plurality of vertices.

14. The computer-readable storage medium of claim 12 , further comprising instructions for applying a style to the modified given hair by adjusting values at the vertices of the given hair so that the interpolated values correspond to the applied style.

15. The computer-readable storage medium of claim 12 , further comprising instructions for:

determining a first location of a first vertex of the given hair on a surface by using rejection sampling to reject one or more sampled locations that lie in compressed regions having relatively small surface tangents.

16. The computer-readable storage medium of claim 12 , wherein modifying the given hair includes instructions for calculating differences between location and direction values of the reference hair at a plurality of vertices of the reference hair and corresponding location and direction values at corresponding vertices of the given hair.

17. The computer-readable storage medium of claim 12 , wherein the reference hair represents where the given hair would be located if the given hair was fully attracted to the clump hair.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Dec 27, 2016
From: JPMORGAN CHASE BANK, N.A.
To: PACIFIC DATA IMAGES, L.L.C.
Reel/Frame 040775/0345 →
SECURITY AGREEMENT Recorded Aug 17, 2012
From: PACIFIC DATA IMAGES L.L.C.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 028801/0958 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Aug 15, 2012
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: DREAMWORKS ANIMATION L.L.C.; PACIFIC DATA IMAGES L.L.C.
Reel/Frame 028794/0770 →
SECURITY AGREEMENT Recorded Aug 28, 2008
From: PACIFIC DATA IMAGES L.L.C.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 021450/0591 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2008
From: GIBBS, JONATHAN D.; HART, DAVID A.
To: PACIFIC DATA IMAGES LLC
Reel/Frame 021410/0632 →