|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
gluNurbsSurface
The gluNurbsSurface defines the shape of a NURBS surface.
void gluNurbsSurface( GLUnurbsObj *nobj, GLint uknot_count, GLfloat *uknot, GLint vknot_count, GLfloat *vknot, GLint u_stride, GLint v_stride, GLfloat *ctlarray, GLint uorder, GLint vorder, GLenum type );
Parameters
nobj
Specifies the NURBS object (created with gluNewNurbsRenderer).
uknot_count
Specifies the number of knots in the parametric u direction.
uknot
Specifies an array of uknot_count nondecreasing knot values in the parametric u direction.
vknot_count
Specifies the number of knots in the parametric v direction.
vknot
Specifies an array of vknot_count nondecreasing knot values in the parametric v direction.
u_stride
Specifies the offset (as a number of single-precision floating point values) between successive control points in the parametric u direction in ctlarray.
v_stride
Specifies the offset (in single-precision floating-point values) between successive control points in the parametric v direction in ctlarray.
ctlarray
Specifies an array containing control points for the NURBS surface. The offsets between successive control points in the parametric u and v directions are given by u_stride and v_stride.
uorder
Specifies the order of the NURBS surface in the parametric u direction. The order is one more than the degree, hence a surface that is cubic in u has a u order of 4.
vorder
Specifies the order of the NURBS surface in the parametric v direction. The order is one more than the degree, hence a surface that is cubic in v has a v order of 4.
type
Specifies type of the surface. type can be any of the valid two-dimensional evaluator types (such as GL_MAP2_VERTEX_3 or GL_MAP2_COLOR_4).
Remarks
Use gluNurbsSurface within a NURBS (Non-Uniform Rational B-Spline) surface definition to describe the shape of a NURBS surface (before any trimming). To mark the beginning of a NURBS surface definition, use the gluBeginSurface command. To mark the end of a NURBS surface definition, use the gluEndSurface command. Call gluNurbsSurface within a NURBS surface definition only. Positional, texture, and color coordinates are associated with a surface by presenting each as a separate gluNurbsSurface between a gluBeginSurface/gluEndSurface pair. No more than one call to gluNurbsSurface for each of color, position, and texture data can be made within a single gluBeginSurface/gluEndSurface pair. Exactly one call must be made to describe the position of the surface (a type of GL_MAP2_VERTEX_3 or GL_MAP2_VERTEX_4).
A NURBS surface can be trimmed by using the commands gluNurbsCurve and gluPwlCurve between calls to gluBeginTrim and gluEndTrim. Notice that a gluNurbsSurface with uknot_count knots in the u direction and vknot_count knots in the v direction with orders uorder and vorder must have (uknot_count - uorder) times (vknot_count - vorder) control points.
Example
The following commands render a textured NURBS surface with normals; the texture coordinates and normals are also NURBS surfaces:
gluBeginSurface(nobj); gluNurbsSurface(nobj, . . ., GL_MAP2_TEXTURE_COORD_2); gluNurbsSurface(nobj, . . ., GL_MAP2_NORMAL); gluNurbsSurface(nobj, . . ., GL_MAP2_VERTEX_4); gluEndSurface(nobj);
See Also
gluBeginSurface, gluBeginTrim, gluNewNurbsRenderer, gluNurbsCurve, gluPwlCurve
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
gluNurbsSurface
gluNurbsSurface Определяет форму поверхности NURBS.
пустота gluNurbsSurface( GLUnurbsObj *nobj, БЛЕСК uknot_count, GLfloat *uknot, БЛЕСК vknot_count, GLfloat *vknot, БЛЕСК u_stride, БЛЕСК v_stride, GLfloat *ctlarray, БЛЕСК uorder, БЛЕСК vorder, тип GLenum );
Параметры
nobj
Определяет объект NURBS (созданное gluNewNurbsRenderer).
uknot_count
Определяет количество узлов в параметрическом u направлении.
uknot
Определяет массив uknot_count nondecreasing величины узла в параметрическом u направлении.
vknot_count
Определяет количество узлов в параметрическом v направлении.
vknot
Определяет массив vknot_count nondecreasing величины узла в параметрическом v направлении.
u_stride
Определяет компенсацию (как множество единственной-точности поплававшей величины точки) между последующими управляющими точками в параметрическом u направлении в ctlarray.
v_stride
Определяет компенсацию (в единственной-плавающей точке прецизионных величин) между последующими управляющими точками в параметрическом v направлении в ctlarray.
ctlarray
Определяет массив, содержащий управляющие точки для поверхности NURBS. Компенсация между последующими управляющими точками в параметрических u и v направлениях дана u_stride и v_stride.
uorder
Определяет порядок поверхности NURBS в параметрическом u направлении. Порядок - еще один чем степень, следовательно поверхность, которая кубическая в u имеет u порядок 4.
vorder
Определяет порядок поверхности NURBS в параметрическом v направлении. Порядок - еще один чем степень, следовательно поверхность, которая кубическая в v имеет v порядок 4.
тип
Определяет, что тип surface. типа может быть любым из правильных двумерных типов вычислителя (как например, GL_MAP2_VERTEX_3 или GL_MAP2_COLOR_4).
Замечания
Используйте gluNurbsSurface в пределах NURBS (Non-Uniform Rational B-Spline) поверхностное определение, чтобы описывать форму поверхности NURBS (перед любой подгонкой). Для того, чтобы выделять начало поверхностного определения NURBS, используйте команду gluBeginSurface. Для того, чтобы выделять конец поверхностного определения NURBS, используйте команду gluEndSurface. Назовите gluNurbsSurface в пределах поверхностного определения NURBS только. Позиционные, текстура, и цветные координаты связаны поверхностью представляя каждый как отдельный gluNurbsSurface между парой gluBeginSurface/gluEndSurface. Не более чем один вызов на gluNurbsSurface для каждого из цвета, позиции, и данные текстуры могут быть сделаны в пределах единственной gluBeginSurface/gluEndSurface пары. Точно один вызов должен быть сделан, чтобы описывать позицию поверхности ( тип GL_MAP2_VERTEX_3 или GL_MAP2_VERTEX_4).
Поверхность NURBS может быть приспособлена использованием команд gluNurbsCurve и gluPwlCurve между вызовами на gluBeginTrim и gluEndTrim. Обратите внимание, что gluNurbsSurface с uknot_count узлами в u направлении и vknot_count узлах в v направлении с порядками uorder и vorder должны иметь время (uknot_count - uorder) (vknot_count - vorder) управляющие точки.
Пример
Следующее команд предоставляет поверхность textured NURBS с нормальными; текстура координируется и нормально являются также поверхностями NURBS:
gluBeginSurface(nobj); gluNurbsSurface(nobj, . . .,., GL_MAP2_TEXTURE_COORD_2); gluNurbsSurface(nobj, . . .,., GL_MAP2_NORMAL); gluNurbsSurface(nobj, . . .,., GL_MAP2_VERTEX_4); gluEndSurface(nobj);
Смотри Также
gluBeginSurface, gluBeginTrim, gluNewNurbsRenderer, gluNurbsCurve, gluPwlCurve
| |
|
|
| |