Поделиться через


Функция glMaterialiv

Функция glMaterialiv задает параметры материала для модели освещения.

Синтаксис

void WINAPI glMaterialfv(
         GLenum face,
         GLenum pname,
   const GLint  *params
);

Параметры

Лицо

Лицо или лица, которые обновляются. Должен иметь одно из следующих значений: GL_FRONT, GL_BACK или GL_FRONT и GL_BACK.

pname

Параметр материала обновляемого лица или лиц. Параметры, которые можно указать с помощью glMaterialiv и их интерпретации уравнением освещения, приведены ниже.

Значение Значение
GL_AMBIENT
Параметр params содержит четыре целочисленных значения, определяющие внешний отражатель RGBA материала. Целочисленные значения сопоставляются линейно таким образом, что наиболее положительное представляемое значение сопоставляется с 1,0, а наиболее отрицательное из них — с -1,0. Значения с плавающей запятой сопоставляются напрямую. Ни целочисленные, ни значения с плавающей запятой не зажимаются. По умолчанию для материалов с передней и задней стороны используется отражание окружающей среды (0,2, 0,2, 0,2, 1,0).
GL_DIFFUSE
Параметр params содержит четыре целочисленных значения, определяющие диффузное отражение RGBA материала. Целочисленные значения сопоставляются линейно таким образом, что наиболее положительное представляемое значение сопоставляется с 1,0, а наиболее отрицательное из них — с -1,0. Значения с плавающей запятой сопоставляются напрямую. Ни целочисленные, ни значения с плавающей запятой не зажимаются. Диффузное отражение по умолчанию для материалов передней и задней сторон составляет (0,8, 0,8, 0,8, 1,0).
GL_SPECULAR
Параметр params содержит четыре целочисленных значения, определяющие зеркальное отражение RGBA материала. Целочисленные значения сопоставляются линейно таким образом, что наиболее положительное представляемое значение сопоставляется с 1,0, а наиболее отрицательное из них — с -1,0. Значения с плавающей запятой сопоставляются напрямую. Ни целочисленные, ни значения с плавающей запятой не зажимаются. Зеркальное отражение по умолчанию для материалов передней и задней сторон составляет (0,0, 0,0, 0,0, 1,0).
GL_EMISSION
Параметр params содержит четыре целочисленных значения, определяющие интенсивность света, излучаемую RGBA материала. Целочисленные значения сопоставляются линейно таким образом, что наиболее положительное представляемое значение сопоставляется с 1,0, а наиболее отрицательное из них — с -1,0. Значения с плавающей запятой сопоставляются напрямую. Ни целочисленные, ни значения с плавающей запятой не зажимаются. Интенсивность выбросов по умолчанию для материалов передней и задней сторон составляет (0,0, 0,0, 0,0, 1,0).
GL_SHININESS
Параметр param — это одно целое число, указывающее спектрическую экспоненту RGBA материала. Целочисленные значения сопоставляются напрямую. Принимаются только значения в диапазоне [0, 128]. Показатель по умолчанию для материалов передней и задней сторон составляет 0.
GL_AMBIENT_AND_DIFFUSE
Эквивалентно вызову glMaterial дважды с одинаковыми значениями параметров: один раз с GL_AMBIENT и один раз с GL_DIFFUSE.
GL_COLOR_INDEXES
Параметр params содержит три целочисленных значения, определяющие индексы цвета для внешнего, диффузного и зеркального освещения. Эти три значения и GL_SHININESS являются единственными материальными значениями, используемыми уравнением освещения режима цветного индекса. Сведения об освещении по цветовым индексам см. в статье glLightModel .

params

Значение, для которого будет задан GL_SHININESS параметра.

Возвращаемое значение

Эта функция не возвращает значение.

Коды ошибок

Следующие коды ошибок могут быть получены функцией glGetError .

Имя Значение
GL_INVALID_ENUM
Лицо илиpname не было принятым значением.
GL_INVALID_VALUE
Указана зеркальная экспонента за пределами диапазона [0, 128].

Комментарии

Функция glMaterialiv присваивает значения параметрам материала. Существует два сопоставленных набора параметров материала. Один из них, передний набор, используется для затенений точек, линий, растровых изображений и всех многоугольников (если двустороннее освещение отключено) или только фронтовых многоугольников (если включено двустороннее освещение). Другой набор, обращенный назад, используется для затенений многоугольников, обращенных к задней стороне, только если включено двустороннее освещение. Дополнительные сведения об односторонних и двусторонних вычислениях освещения см. в статье glLightModel .

Функция glMaterialiv принимает три аргумента. Первый, face, указывает, будут ли изменены GL_FRONT материалы, GL_BACK материалы или оба GL_FRONT_AND_BACK материала. Второй , pname, указывает, какие из нескольких параметров в одном или обоих наборах будут изменены. Третий параметр указывает, какое значение будет присвоено указанному параметру.

Параметры материала используются в уравнении освещения, которое при необходимости применяется к каждой вершине. Уравнение рассматривается в glLightModel.

Параметры материала можно обновить в любое время. В частности, glMaterialiv можно вызывать между вызовом glBegin и соответствующим вызовом glEnd. Однако если требуется изменить только один параметр материала для каждой вершины, предпочтительнее glColorMaterial по сравнению с glMaterialiv.

Следующая функция извлекает сведения, связанные с glMaterialiv:

glGetMaterial

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Gl.h
Библиотека
Opengl32.lib
DLL
Opengl32.dll

См. также раздел

glColorMaterial

glLight

glLightModel