Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

OpenGL

Есть ли поддержка теней в OpenGL ?

Непосредственно - нет. OpenGL - это набор элементарных низкоуровневых функций. Необходимый минимум, достаточный для простого и эффективного управления устройством. Тени реализуются различными алгоритмами (достаточно сложными, и часто многопроходными, то есть сцена рендерится несколько раз с разными параметрами, или с разных позиций наблюдения). Как примеры, приведем три основных метода:

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

Недостатки: выполняется целиком за счет центрального процессора; будет работать слишком медленно, если тень отбрасывается сложным объектом и/или на сложный объект, а не на плоскость; в отдельных случаях тени могут или "уйти" в объект, на который должны отбрасываться, или могут "висеть" над ним.

Пследнюю проблему помогает решить принудительное смещение в Z-буфере (glPolygonOffsetEXT), но эта функция пока имеет статус расширения, и поддерживается не всеми драйверами.

С помощью "стенсила" - очень красивый и эффективный метод; однако скорость и качество напрямую зависят от размер буфера стенсила (stencil). Метод относится к многопроходным (число проходов, как минимум, равно числу источников света), и называется "shadow volumes". Многие, но не все видеокарты имеют стенсил (скажем, у продукции 3Dfx - Voodoo, Voodoo2 и т.д. его нет). У Permedia 2 стенсил - всего 1 бит, то есть возрастает число проходов.

Карты теней - "shadow maps". Тени предварительно вычисляются, создаются соответствующие текстуры (карты теней) . Затем уже готовые текстуры с тенями накладываются на объект. Достоинство - эти текстуры можно повторно использовать, недостатки - размер текстуры ограничен, и это вносит искажения в вид тени. Более подробную информацию можно получить в материалах с SiGraph '97.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
Аноним
Мне нравитсяМне не нравится
1 июля 2004, 16:52:51
Хотелось бы узнать непосредственно об алгоритмах и методах, положенных в основу OpenGL
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог