ВУЗ:
Составители:
Рубрика:
Е. Ю. Ечкина, С. Б. Базаров, И. Н. Иновенков «Визуализация в научных исследованиях»
Кафедра АНИ факультета ВМК МГУ имени М. В. Ломоносова http://ani.cs.msu.su
53
GL_DIFFUSE параметр params должен содержать четыре целых или вещественных
значения цветов RGBA, которые определяют цвет диффузного освещения.
Значение по умолчанию: (1.0, 1.0, 1.0, 1.0)для LIGHT0 и (0.0, 0.0, 0.0, 1.0) для
остальных.
GL_SPECULAR параметр params должен содержать четыре целых или вещественных
значения цветов RGBA, которые определяют цвет зеркального отражения.
Значение по умолчанию: (1.0, 1.0, 1.0, 1.0)для LIGHT0 и (0.0, 0.0, 0.0, 1.0) для
остальных.
GL_POSITION параметр params должен содержать четыре целых или вещественных,
которые определяют положение источника света. Если значение компоненты w равно
0.0, то источник считается бесконечно удаленным и при расчете освещенности
учитывается только направление на точку (x,y,z), в противном случае считается, что
источник расположен в точке (x,y,z,w).
Значение по умолчанию: (0.0, 0.0, 1.0, 0.0).
GL_SPOT_DIRECTION параметр params должен содержать четыре целых или
вещественных числа, которые определяют направление света.
Значение по умолчанию: (0.0, 0.0, -1.0, 1.0).
При изменении положения источника света следует учитывать следующие факты: если
положение задается командой glLight..() перед определением ориентации взгляда
(командой glLookAt() ), то будет считаться, что источник находится в точке
наблюдения. Если положение устанавливается между заданием ориентации и
преобразованиями видовой матрицы, то оно фиксируется и не зависит от видовых
преобразований. В последнем случае, когда положение задано после ориентации и
видовой матрицы, его положение можно менять, устанавливая как новую ориентацию
наблюдателя, так и меняя видовую матрицу.
Для использования освещения сначала надо установить соответствующий режим
вызовом команды glEnable (GL_LIGHTNING), а затем включить нужный источник
командой glEnable(GL_LIGHTn).
Модель освещения
В OpenGL используется модель освещения Фонга, в соответствии с которой цвет
точки определяется несколькими факторами: свойствами материала и текстуры,
величиной нормали в этой точке, а также положением источника света и наблюдателя.
Для корректного расчета освещенности в точке надо использовать единичные
нормали, однако команды типа glScale..(), могут изменять длину нормалей. Чтобы это
учитывать, используется уже упоминавшийся режим нормализации нормалей,
который включается вызовом команды glEnable(GL_NORMALIZE).
Для задания глобальных параметров освещения используются команды
void glLightModel[i f](GLenum pname, GLenum param)
void glLightModel[i f]v(GLenum pname, const GLtype *params)
Аргумент pname определяет, какой параметр модели освещения будет настраиваться и
может принимать следующие значения:
GL_LIGHT_MODEL_LOCAL_VIEWER параметр param должен быть булевским и
задает положение наблюдателя. Если он равен FALSE, то направление обзора
считается параллельным оси –z, вне зависимости от положения в видовыx
координатах. Если же он равен TRUE, то наблюдатель находится в начале видовой
Е. Ю. Ечкина, С. Б. Базаров, И. Н. Иновенков «Визуализация в научных исследованиях» GL_DIFFUSE параметр params должен содержать четыре целых или вещественных значения цветов RGBA, которые определяют цвет диффузного освещения. Значение по умолчанию: (1.0, 1.0, 1.0, 1.0)для LIGHT0 и (0.0, 0.0, 0.0, 1.0) для остальных. GL_SPECULAR параметр params должен содержать четыре целых или вещественных значения цветов RGBA, которые определяют цвет зеркального отражения. Значение по умолчанию: (1.0, 1.0, 1.0, 1.0)для LIGHT0 и (0.0, 0.0, 0.0, 1.0) для остальных. GL_POSITION параметр params должен содержать четыре целых или вещественных, которые определяют положение источника света. Если значение компоненты w равно 0.0, то источник считается бесконечно удаленным и при расчете освещенности учитывается только направление на точку (x,y,z), в противном случае считается, что источник расположен в точке (x,y,z,w). Значение по умолчанию: (0.0, 0.0, 1.0, 0.0). GL_SPOT_DIRECTION параметр params должен содержать четыре целых или вещественных числа, которые определяют направление света. Значение по умолчанию: (0.0, 0.0, -1.0, 1.0). При изменении положения источника света следует учитывать следующие факты: если положение задается командой glLight..() перед определением ориентации взгляда (командой glLookAt() ), то будет считаться, что источник находится в точке наблюдения. Если положение устанавливается между заданием ориентации и преобразованиями видовой матрицы, то оно фиксируется и не зависит от видовых преобразований. В последнем случае, когда положение задано после ориентации и видовой матрицы, его положение можно менять, устанавливая как новую ориентацию наблюдателя, так и меняя видовую матрицу. Для использования освещения сначала надо установить соответствующий режим вызовом команды glEnable (GL_LIGHTNING), а затем включить нужный источник командой glEnable(GL_LIGHTn). Модель освещения В OpenGL используется модель освещения Фонга, в соответствии с которой цвет точки определяется несколькими факторами: свойствами материала и текстуры, величиной нормали в этой точке, а также положением источника света и наблюдателя. Для корректного расчета освещенности в точке надо использовать единичные нормали, однако команды типа glScale..(), могут изменять длину нормалей. Чтобы это учитывать, используется уже упоминавшийся режим нормализации нормалей, который включается вызовом команды glEnable(GL_NORMALIZE). Для задания глобальных параметров освещения используются команды void glLightModel[i f](GLenum pname, GLenum param) void glLightModel[i f]v(GLenum pname, const GLtype *params) Аргумент pname определяет, какой параметр модели освещения будет настраиваться и может принимать следующие значения: GL_LIGHT_MODEL_LOCAL_VIEWER параметр param должен быть булевским и задает положение наблюдателя. Если он равен FALSE, то направление обзора считается параллельным оси –z, вне зависимости от положения в видовыx координатах. Если же он равен TRUE, то наблюдатель находится в начале видовой Кафедра АНИ факультета ВМК МГУ имени М. В. Ломоносова http://ani.cs.msu.su 53
Страницы
- « первая
- ‹ предыдущая
- …
- 51
- 52
- 53
- 54
- 55
- …
- следующая ›
- последняя »