Функция glMap1f
Функции glMap1d и glMap1f определяют одномерный оценщик.
Синтаксис
void WINAPI glMap1f(
GLenum target,
GLfloat u1,
GLfloat u2,
GLint stride,
GLint order,
const GLfloat *points
);
Параметры
-
target
-
Тип значений, создаваемых вычислителем. Символьные константы. Целевой параметр является символьной константой, которая указывает, какие контрольные точки предоставляются в точках и какие выходные данные создаются при оценке карты. Он может предполагать одно из девяти предопределенных значений.
Значение Значение - GL_MAP1_VERTEX_3
Каждая контрольная точка — это три значения с плавающей запятой , представляющие x, y и z. Внутренние команды glVertex3 создаются при оценке карты. - GL_MAP1_VERTEX_4
Каждая контрольная точка — это четыре значения с плавающей запятой , представляющие x, y, z и w. Внутренние команды glVertex4 создаются при оценке карты. - GL_MAP1_INDEX
Каждая контрольная точка — это одно значение с плавающей запятой, представляющее индекс цвета. Внутренние команды glIndex создаются при оценке карты. Однако текущий индекс не обновляется со значением этих команд glIndex . - GL_MAP1_COLOR_4
Каждая контрольная точка — это четыре значения с плавающей запятой, представляющие красный, зеленый, синий и альфа-канал. Внутренние команды glColor4 создаются при оценке карты. Однако текущий цвет не обновляется со значением этих команд glColor4 . - GL_MAP1_NORMAL
Каждая контрольная точка — это три значения с плавающей запятой, представляющие компоненты x, y и z нормального вектора. Внутренние команды glNormal создаются при оценке карты. Однако текущая норма не обновляется со значением этих команд glNormal . - GL_MAP1_TEXTURE_COORD_1
Каждая контрольная точка — это одно значение с плавающей запятой, представляющее координату текстуры . Внутренние команды glTexCoord1 создаются при оценке карты. Однако текущие координаты текстуры не обновляются со значением этих команд glTexCoord . - GL_MAP1_TEXTURE_COORD_2
Каждая контрольная точка — это два значения с плавающей запятой, представляющие координаты текстуры s и t . Внутренние команды glTexCoord2 создаются при оценке карты. Однако текущие координаты текстуры не обновляются со значением этих команд glTexCoord . - GL_MAP1_TEXTURE_COORD_3
Каждая контрольная точка — это три значения с плавающей запятой, представляющие координаты текстуры s, t и r . Внутренние команды glTexCoord3 создаются при оценке сопоставления. Однако текущие координаты текстуры не обновляются со значением этих команд glTexCoord . - GL_MAP1_TEXTURE_COORD_4
Каждая контрольная точка — это четыре значения с плавающей запятой, представляющие координаты текстур s, t, r и q . Внутренние команды glTexCoord4 создаются при оценке карты. Однако текущие координаты текстуры не обновляются со значением этих команд glTexCoord . -
u1
-
Линейное сопоставление u, представленное в glEvalCoord1, с переменной u^, которая вычисляется с помощью уравнений, заданных этой командой.
-
u2
-
Линейное сопоставление u, представленное в glEvalCoord1, с переменной u^, которая вычисляется с помощью уравнений, заданных этой командой.
-
Шаг
-
Число чисел с плавающей точкой или удваивается между началом одной контрольной точки и началом следующей в структуре данных, на которые ссылается ссылка в точках. Это позволяет внедрять точки управления в произвольные структуры данных. Единственное ограничение заключается в том, что значения для определенной контрольной точки должны занимать смежные расположения памяти.
-
order
-
Количество контрольных точек. Должно быть положительным.
-
точки
-
Указатель на массив контрольных точек.
Возвращаемое значение
Эта функция не возвращает значение.
Коды ошибок
Следующие коды ошибок могут быть получены функцией glGetError .
Имя | Значение |
---|---|
|
Target не является допустимым значением. |
|
u1 был равен u2. |
|
Шаг был меньше, чем количество значений в контрольной точке. |
|
порядок меньше единицы или GL_MAX_EVAL_ORDER. |
|
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd. |
Комментарии
Вычислители предоставляют способ использования полиномиального или рационального полиномиального сопоставления для создания вершин, норм, координат текстуры и цветов. Значения, созданные оценщиком, отправляются на последующие этапы обработки OpenGL так же, как если бы они были представлены с помощью команд glVertex, glNormal, glTexCoord и glColor , за исключением того, что созданные значения не обновляют текущую норму, координаты текстуры или цвет.
Все полиномиальные или рациональные полиномиальные сплайны любой степени (до максимальной степени, поддерживаемой реализацией OpenGL) можно описать с помощью оценщиков. К ним относятся почти все сплайны, используемые в компьютерной графике, включая B-сплайны, кривые Безье, сплайны Эрмита и т. д.
Оценщики определяют кривые на основе полиномов Бернштейна. Определение p () как
где Ri — контрольная точка, а () — это i полином Бернштейна степени n (порядок =n + 1):
Помните, что
Функция glMap1 используется для определения основы и указания типа создаваемых значений. После определения карту можно включить и отключить, вызвав glEnable и glDisable с именем карты, одним из девяти предопределенных значений целевого объекта , описанных выше. Функция glEvalCoord1 оценивает включенные одномерные карты. Когда glEvalCoord1 представляет значение u, функции Bernstein вычисляются с помощью u^, где
Параметры шага, порядка и точек определяют адресацию массива для доступа к контрольным точкам. Параметр point — это расположение первой контрольной точки, которая занимает одно, два, три или четыре смежных расположения памяти в зависимости от того, какая карта определяется. Параметр order — это количество контрольных точек в массиве. Параметр stride указывает, сколько расположений с плавающей или двойной для перехода указателя внутренней памяти на следующую контрольную точку.
Как и в случае со всеми командами OpenGL, которые принимают указатели на данные, содержимое точек было скопировано с помощью glMap1 перед возвратом. Изменения содержимого точек не оказывают влияния после вызова glMap1 .
Следующие функции извлекают сведения, связанные с glMap1:
glGet с аргументом GL_MAX_EVAL_ORDER
glIsEnabled с аргументом GL_MAP1_VERTEX_3
glIsEnabled с аргументом GL_MAP1_VERTEX_4
glIsEnabled с аргументом GL_MAP1_INDEX
glIsEnabled с аргументом GL_MAP1_COLOR_4
glIsEnabled с аргументом GL_MAP1_NORMAL
glIsEnabled с аргументом GL_MAP1_TEXTURE_COORD_1
glIsEnabled с аргументом GL_MAP1_TEXTURE_COORD_2
glIsEnabled с аргументом GL_MAP1_TEXTURE_COORD_3
glIsEnabled с аргументом GL_MAP1_TEXTURE_COORD_4
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|
Библиотека |
|
DLL |
|