На главную

On-line справка по OpenGL

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-L-M-N-O-P-R-S-T-U-V-W | Скачать Вниз

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




Вверх Version 1.1, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод Win32 API  Русский перевод OpenGL
 
Hosted by uCoz