SI_NurbsSurface

Defines a NURBS surface.

This template provides a definition for existing NURBS representations, such as IGES. This ensures that the SI_NurbsSurface representation is compatible with most existing game engines and file formats.

SI_NurbsSurface always stores surface data in IGES format.

 

This template corresponds to the CSLNurbsSurface class.

Limitation

Note that if you export a NURBS surface from Softimage that has a different U and V parameterization, the dotXSI file format can only support a single parametrization in both U and V.

Introduced

1.3

Members

Member name

Type

Array size

Description

uvDegree

array int

2

Degree of surface in U and V.

uvClosed

array BOOLEAN

2

Surface is closed in U.

paramType

int

 

Knot parameterization of the NURBS curves:

0 = uniform
1 = open uniform
2 = non-uniform
3 = chord length
4 = centripetal

nbUVKnots

array int

2

Number of IGES knots in U and V.

uKnots

array DOUBLE

nbUKnots

Knots in U.

vKnots

array DOUBLE

nbVKnots

Knots in V.

nbControlPoints

array int

3

Total number of IGES control points:

• Number of control points in U

• Number of control points in V

controlPoints

array vector

nbControlPoints[0]

Surface control points: x, y, z, w

Nested Templates

SI_Material

SI_Texture2D

SI_SubelementUserDataVertex_<userDataTag>

SI_ShapeAnimation (v2.0 only)

Comments

Closed in U or V implies that a surface is periodic (its continuity is degree –1 by formulation and not construction). In IGES format it implies an overlapping of degree control points, not just the last and first ones.

The IGES Nurbs representation implies:

Open curves have an extra order knot at the end and at the start (order = degree + 1).

Closed (periodic) curves have knot spacing overlap and an overlapping of degree control points.

The SI|3D NURBS representation implies:

• Open curves have an extra degree knot at both the end and start, with the number of control points given by:

   nbControlPoints = nbKnots - (degree + 1)

• Closed curves have no overlap:

   nbControlPoints = nbKnots - 1

The following table summarizes how the number of IGES control points and IGES knots are calculated.

Constant name

Open

Closed

nbSoftKnots

nbSoftPoints + degree - 1

nbSoftPoints + 1

nbIgesPoints

nbSoftPoints

nbSoftPoints + degree

nbIgesKnots

nbSoftKnots

nbSoftKnots + 2*degree

 

nbSoftPoints is the number of control points in U (or V) for a NURBS surface in SI|3D. This is the number shown in the NURBS Surface Info dialog box.

nbSoftKnots is the number of knots in U (or V) for a NURBS surface in SI|3D.

nbIgesPoints and nbIgesKnots are the numbers of U (or V) points and knots output in a dotXSI file.

Example

SI_NurbsSurface grid3 {
   1; 1;; // Linear in U, V 
   1; 0;; // Closed in U, Open in V 
   0;  // Uniform parameterization 
   6; 3;; // 6 knots in U, 3 knots in V 
   0.000000; 0.000000; 1.000000; 2.000000; 3.000000; 3.000000; ;
   0.000000; 1.000000; 2.000000; ;
   12; 4; 3;; // Number of control points: Total, U, V
// Control points: 
   -1.000000;0.000000;1.000000;1.000000;,
   0.000000;0.000000;1.000000;1.000000;,
   1.000000;0.000000;1.000000;1.000000;,
   -1.000000;0.000000;1.000000;1.000000;,
   -1.000000;0.000000;0.000000;1.000000;,
   0.000000;0.000000;0.000000;1.000000;,
   1.000000;0.000000;0.000000;1.000000;,
   -1.000000;0.000000;0.000000;1.000000;,
   -1.000000;0.000000;-1.000000;1.000000;,
   0.000000;0.000000;-1.000000;1.000000;,
   1.000000;0.000000;-1.000000;1.000000;,
   -1.000000;0.000000;-1.000000;1.000000;;

   SI_Material {
       ...
       SI_Texture2D {
          ...
       }
   }
}

See also XSI_SurfaceMesh.



Autodesk Crosswalk v4.0