IP Library Granted Patent US 7,227,546
Granted Patent B2
US 7,227,546 · App. 11/232,760 · Granted Jun 5, 2007

Interface and method of interfacing between a parametric modelling unit and a polygon based rendering system

Assignee: Imagination Technologies Limited
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,227,546
App. No.
11/232,760
Granted
Jun 5, 2007
Kind
B2
Abstract

An interface for use in a 3-d graphics system comprising a parametric modelling unit for modelling objects as high order surfaces, and a polygon based rendering system for rendering polygon modelled objects for display. The interface comprises an input for receiving data and a subdivision unit coupled to the input for processing the data. The interface includes a converter coupled to the subdivision unit for determining from leaf patch data a first plurality of values representing vertices of tessellating polygons describing the leaf patch, and for determining from sub-leaf patch data a second plurality of values representing the vertices of tessellating polygons describing the sub-leaf patch. The interface also has a combiner, coupled to the converter, for combining the values to form leaf polygon data defining the polygon vertices at a first subdivision level, and an output coupled to the combiner for outputting the leaf polygon data.

Claims (115)

1. A 3-d graphics system comprising an apparatus for determining a surface normal vector for a vertex of a surface patch used in modelling of an object to be shaded by the system, the apparatus comprising:

means for deriving the locations of control points required for derivation of a surface normal for a vertex;

means for deriving a set of three candidate tangent vectors at a vertex from the control point locations;

means for selecting two tangent vectors from the candidate tangent vectors; and

means for deriving a surface normal from the selected tangent vectors.

2. A 3-d graphics system according to claim 1 , wherein the means for deriving a set of three candidate tangent vectors further comprises:

means for determining a candidate tangent vector T S in the S direction;

means for determining a candidate tangent vector T T in the T direction; and

means for determining a candidate tangent vector T D in the diagonal direction.

3. A 3-d graphics system according to claim 2 , wherein the means for selecting two tangent vectors from the candidate tangent vectors is adapted to:

select tangent vectors T S and T T when tangent vectors T S and T T are non-zero and linearly independent;

select tangent vectors T S and T D when tangent vector T S is non-zero and tangent vector T T is zero;

select tangent vectors T T and T D when tangent vector T T is non-zero and tangent vector T S is zero.

4. A 3-d graphics system according to claim 3 , wherein the means for deriving a surface normal from the selected tangent vectors is adapted to:

calculate N=(−T T )×T D , when T S =0, and output N as the surface normal;

calculate N=T S ×T D , when T T =0, and output N as the surface normal; and

calculate N=T S ×T T , when T S and T T are nonzero, and output N as the surface normal when N is nonzero, otherwise when N=0 calculate N′=T S ×T D and output N′ as the surface normal.

5. A 3-d graphics system according to claim 2 , wherein the means for estimating a candidate tangent vector T S in the S direction is adapted to:

(a) estimate T S as being equal to T S1 , where

T S1 =P 10xyz P 00w −P 00xyz P 10w

 if P 10xyz P 00w is not equal to P 00xyz P 10w ; or

(b) estimate T S as being equal to T S2 , where

T S2 =P 20xyz P 00w −P 00xyz P 20w

 if P 20xyz P 00w is not equal to P 00xyz P 20w ; or

(c) estimate T S as being equal to T S3 , where

T S3 =P 30xyz P 00w −P 00xyz P 30w

 if P 30xyz P 00w is not equal to P 00xyz P 30w .

6. A 3-d graphics system according to claim 2 , wherein the means for estimating a candidate tangent vector T T in the T direction is adapted to:

(a) estimate T T as being equal to T T1 , where

T T1 =P 01xyz P 00W −P 00xyz P 01w

 if P 01xyz P 00w is not equal to P 00xyz P 01w ; or

(b) estimate T T as being equal to T T2 , where

T T2 =P 02xyz P 00w −P 00xyz P 02w

 if P 02xyz P 00w is not equal to P 00xyz P 02w ; or

(C) estimate T T as being equal to T T3 , where

T T3 =P 03xyz P 00w −P 00xyz P 03w

 if P 03xyz P 00w is not equal to P 00xyz P 03w .

7. A 3-d graphics system according to claim 2 , wherein the means for estimating a candidate tangent vector T D in the diagonal direction is adapted to estimate T D according to the formula T D =P 11xyz P 00w −P 00xyz P 11w .

8. A 3-d graphics system according to claim 1 , wherein the means for deriving a surface normal from the selected tangent vectors is adapted to test whether the derived surface normal is zero, and when the derived surface normal is zero to:

cause an alternative two tangent vectors to be selected; and

use the alternative two tangent vectors to derive an alternative surface normal, and output the alternative surface normal as the vertex surface normal.

9. A method for determining a surface normal vector for a vertex of a surface patch used in modelling of an object to be shaded in a 3-d graphics system, the method comprising the steps of:

deriving the locations of control points required for determining a surface normal for a vertex;

deriving a set of three candidate tangent vectors at a vertex from the control point data;

selecting two tangent vectors from the set of candidate tangent vectors; deriving a surface normal from the selected tangent vectors; and rasterizing the image for display.

10. A method for determining a surface normal for a vertex according to claim 9 , wherein:

the step of deriving the locations of control points comprises the sub-steps of:

(a) deriving a first subset of control points along one edge of the patch adjacent to a chosen corner,

(b) deriving a second subset of control points along the other edge of the patch adjacent to the chosen corner, and

(c) deriving a third subset of control points consisting of a control point off-set from the corner of the patch in each of a set of chosen parameter dimensions; and wherein

the step of deriving three candidate tangent vectors comprises deriving first, second and third candidate tangent vectors from each respective subset of control points and the corner points.

11. A method according to claim 10 wherein a candidate tangent vector at a corner control point is derived by repeatedly selecting control points from a given subset of control points in any given order; and

deriving a first weighted vector by multiplying a chosen control point's components by a weighting component of the corner control point;

deriving a second weighting vector by multiplying the components of the corner control point by a weighting vector of a chosen control point;

deriving a difference vector between a first and second weighted vectors; and

using the difference vector as a candidate tangent vector if it is a non-zero, and otherwise progressing to the next control point of the subset.

12. A method for determining a surface normal vector for a vertex according to claim 9 , wherein the step of deriving three candidate tangent vectors at a vertex further comprises the steps of:

estimating a candidate tangent vector T S in the S direction;

estimating a candidate tangent vector T T in the T direction; and

estimating a candidate tangent vector T D in the diagonal direction.

13. A method for determining a surface normal vector for a vertex according to claim 12 , wherein the step of selecting two tangent vectors from the candidate tangent vectors comprises:

selecting tangent vectors T S and T T when tangent vectors T S and T T are non-zero;

selecting tangent vectors T S and T D when tangent vector T S is non-zero and tangent vector T T is zero;

selecting tangent vectors T T and T D when tangent vector T T is non-zero and tangent vector T S is zero.

14. A method for determining a surface normal vector for a vertex according to claim 13 , wherein the step of deriving a surface normal from the selected tangent vectors comprises:

calculating N=(−T T )×T D , when T S =0, and outputting N as the surface normal;

calculating N=T S ×T D , when T T =0, and outputting N as the surface normal; and

calculating N=T S ×T T , when T S and T T are non-zero, and output N as the surface normal when N is non-zero, otherwise when N=0 calculating N′=T S ×T D and outputting N′ as the surface normal.

15. A method for determining a surface normal vector for a vertex according to claim 12 , wherein the step of estimating a candidate tangent vector T S in the S direction comprises:

(a) determining an estimate for T S , where

T S1 =P 10xyz P 00W −P 00xyz P 10w

 if P 10xyz P 00w is not equal to P 00xyz P 10w ; or

(b) determining an estimate for T S , where

T S2 =P 20xyz P 00w P 00xyz P 20w

 if P 20xyz P 00w is not equal to P 00xyz P 20w ; or

(c) determining an estimate for T S , where

T S3 =P 30xyz P 00W P 00xyz P 30w

 if P 30xyz P 00w is not equal to P 00xyz P 30w .

16. A method for determining a surface normal vector for a vertex according to claim 12 , wherein the step of estimating a candidate tangent vector T T in the T direction comprises:

(a) determining an estimate for T T , where

T T1 =P 01xyz P 00w −P 00xyz P 01w

 if P 01xyz P 00w is not equal to P 00xyz P 01w ; or

(b) determining an estimate for T T , where

T T2 =P 02xyz P 00w −P 00xyz P 02w

 if P 02xyz P 00w is not equal to P 00xyz P 02w ; or

(c) determining an estimate for T T , where

T T3 =P 03xyz P 00w P 00xyz P 03w

 if P 03xyz P 00w is not equal to P 00xyz P 03w .

17. A method for determining a surface normal vector for a vertex according to claim 12 , wherein the step of estimating a candidate tangent vector T D in the diagonal direction comprises determining the estimate T D =P 11xyz P 00w −P 00xyz P 11w .

18. A method of determining a surface normal for a vertex according to claim 9 , wherein when the derived surface normal is zero an alternative pair of tangent vectors is selected and an alternative surface normal is derived.

19. A method for determining surface normal vectors for “tessellation” vertices of a surface patch used in modelling of an object to be shaded in a 3-d graphic system, the method comprising the steps of:

deriving surface normals for four corner vertices of the patch, with the surface normal for each corner vertex being derived by the sub-steps of:

(a) deriving the locations of control points required for determining a surface normal for the vertex,

(b) deriving a set of three candidate tangent vectors at the vertex from the control point data,

(c) selecting two tangent vectors from the set of candidate tangent vectors, and

(d) deriving a surface normal from the selected tangent vectors;

generating additional control points required to derive surface normals for non-corner tessellation vertices by the sub-steps of:

(a) partially subdividing the patch in a first parameter dimension to derive a first subset of control points of a first sub-patch,

(b) partially subdividing the patch in a second parameter dimension to derive a second subset of control points of a second sub-patch, and

(c) performing a third partial subdivision to derive a third subset of control points from the first and second subsets of control points; and

using the first subset of control points to derive surface normals for two mid-point tessellation vertices, with the surface normal for each midpoint tessellation vertex being derived by the sub-steps of:

(a) deriving the locations of control points required for determining a surface normal for the vertex,

(b) deriving a set of three candidate tangent vectors at the vertex from the control point data,

(c) selecting two tangent vectors from the set of candidate tangent vectors, and

(d) deriving a surface normal from the selected tangent vectors;

using the second subset of control points to derive surface normals for the remaining two midpoint tessellation vertices, with the surface normal for each remaining mid-point tessellation vertex being derived by the sub-steps of:

(a) deriving the locations of control points required for determining a surface normal for the vertex,

(b) deriving a set of three candidate tangent vectors at the vertex from the control point data,

(c) selecting two tangent vectors from the set of candidate tangent vectors, and

(d) deriving a surface normal from the selected tangent vectors;

using the third subset of control points to derive a surface normal for a tessellation vertex at the centre of the patch, with the surface normal for the tessellation vertex at the center of the patch being derived by the sub-steps of:

(a) deriving the locations of control points required for determining a surface normal for the vertex,

(b) deriving a set of three candidate tangent vectors at the vertex from the control point data,

(c) selecting two tangent vectors from the set of candidate tangent vectors, and

(d) deriving a surface normal from the selected tangent vectors; and rasterizing the image for display.

Priority Claims (1)
GB 0210769.6 · May 10, 2002 · national
Continuity (2)
Division 1043575900 · May 9, 2003
Related Publication 20060050071A1 · Mar 9, 2006