[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2.3 Bezier Surfaces

The conventional file suffixes for Bezier surface files are `.bbp' or `.bez'. A file with either suffix may contain either type of patch.

Syntax:

 
  [ST]BBP -or- [C]BEZ<Nu><Nv><Nd>[_ST]
			# Nu, Nv are u- and v-direction 
			# polynomial degrees in range 1..6
			# Nd = dimension: 3->3-D, 4->4-D (rational)
			# (The '<' and '>' do not appear in the input.)
			# Nu,Nv,Nd are each a single decimal digit.
			# BBP form implies Nu=Nv=Nd=3 so BBP = BEZ333.

		# Any number of patches follow the header
			# (Nu+1)*(Nv+1) patch control points
			# each 3 or 4 floats according to header
  vertex(u=0,v=0)  vertex(1,0) ... vertex(Nu,0)
  vertex(0,1)			   ... vertex(Nu,1)
  ...
  vertex(0,Nv)		   ... vertex(Nu,Nv)

			# ST texture coordinates if mentioned in header
  S(u=0,v=0)	T(0,0)	S(0,Nv) T(0,Nv)
  S(Nu,0)	T(Nu,0)	S(Nu,Nv) T(Nu,Nv)

			# 4-component float (0..1) R G B A colors
			# for each patch corner if mentioned in header
  RGBA(0,0)   RGBA(0,Nv)
  RGBA(Nu,0)  RGBA(Nu,Nv)

These formats represent collections of Bezier surface patches, of degrees up to 6, and with 3-D or 4-D (rational) vertices.

The header keyword has the forms [ST]BBP or [C]BEZ<Nu><Nv><Nd>[_ST] (the '<' and '>' are not part of the keyword.

The ST prefix on BBP, or _ST suffix on BEZuvn, indicates that each patch includes four pairs of floating-point texture-space coordinates, one for each corner of the patch.

The C prefix on BEZuvn indicates a colored patch, including four sets of four-component floating-point colors (red, green, blue, and alpha) in the range 0..1, one color for each corner.

Nu and Nv, each a single digit in the range 1..6, are the patch's polynomial degree in the u and v direction respectively.

Nd is the number of components in each patch vertex, and must be either 3 for 3-D or 4 for homogeneous coordinates, that is, rational patches.

BBP patches are bicubic patches with 3-D vertices, so BBP = BEZ333 and STBBP = BEZ333_ST.

Any number of patches follow the header. Each patch comprises a series of patch vertices, followed by optional (s,t) texture coordinates, followed by optional (r,g,b,a) colors.

Each patch has (Nu+1)*(Nv+1) vertices in v-major order, so that if we designate a vertex by its control point indices (u,v) the order is

 
     (0,0) (1,0) (2,0) ...  (Nu,0)
     (0,1) (1,1) (2,1) ...  (Nu,1)
     ...
     (0,Nv)            ...  (Nu,Nv)
with each vertex containing either 3 or 4 floating-point numbers as specified by the header. If the header calls for ST coordinates, four pairs of floating-point numbers follow: the texture-space coordinates for the (0,0), (Nu,0), (0,Nv), and (Nu,Nv) corners of the patch, respectively.

If the header calls for colors, four four-component (red, green, blue, alpha) floating-point colors follow, one for each patch corner.

The series of patches ends at end-of-file, or with a closebrace if incorporated in an object reference.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated by Steve M. Robbins on September, 12 2004 using texi2html