Компьютерная графика | |||||||
теория, алгоритмы, примеры на С++ и OpenGL | |||||||
2D теория | 3D теория | OpenGL | Обратная связь / Авторам | ||||
Мы vkontakte.ru ДрузьяСловарь синонимов русского языка |
Освещение в OpenGLВ этом разделе речь пойдет о возможностях настройки освещения в OpenGL при использовании фиксированного графического конвейера (fixed pipeline). В OpenGL используется модель освещения Блинна-Фонга в рамках которой можно использовать три типа источников света: направленный, точечный и прожектор. Используется повертексная модель освещения, т.е. каждая вершина освещается независимо. Такой способ освещения не учитывает препятствия между источником света и освещаемым объектом (не просчитывает тени), эффектов преломления, многократного отражения света и т.д. Прим. Строить графические приложения реального времени, использующие более точные техники, например метод трассировки лучей (ray-tracing), пока невозможно из-за недостаточной производительности существующего железа. Тем не менее, эти техники используются для создания локальных эффектов, когда алгоритм используется в небольшой окрестности освещаемой вершины. В ряде университетов и крупных компаний делаются попытки создать узкоспециализированные аппаратные ускорители, которые должны позволить использование метода трассировки лучей в реальном времени. Модель освещенияВ модели Блинна-Фонга свет разбивается на три составляющие:
Как включить расчет освещенияПри выключенном освещении цвет полигонов задается командой glColor*. При этом цвет пикселей, между применениями команд glColor* является постоянным для всех вершин поверхности. Такая монотонная заливка позволит увидеть лишь силуэт объекта. Для полноценной передачи пространства надо включить и настроить освещение. Расчет освещения включается командой:
glEnable(GL_LIGHTING); Для точной настройки освещения требуется:
В статьях этого раздела будет подробно рассказано о каждом пункте. |