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

Ваш аккаунт

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

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

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

OpenGL

Проблемы с Z-буфером; 16-и бит недостаточно для получения нормального изображения. Что делать ?

16-битный Z-буфер - это не так плохо, как кажется. Если говорить коротко, то нужно искать компромисс между качеством картинки и дальностью обзора в виртуальном пространстве.

Проблема с Z-буфером заключается в Z-алиасинге (то есть ситуации, когда элементы более удаленных от наблюдателя объектов "пролезают" через более близкие объекты). Причина кроется в следующем: матрица проекции (GL_PROJECTION) размером 4x4 задается функций glFrustrum, и имеет следующий вид:

  2 * near                 right + left
------------       0       ------------        0
right - left               right - left

                2 * near   top + bottom
    0         ------------ ------------        0
              top - bottom top - bottom

                           -(far +near)   -2 *far*near
    0              0       ------------   ------------
                            far - near     far - near


    0              0           -1               0

Принципиальное значение для Z-разрешения имеют дроби, содержащие near и far - расстояние от глаза до экрана, и дальность обзора соответственно. Поскольку near обычно на 1-2 порядка меньше, чем far, можно сказать, что Z-разрешение определяется отношением far / near. Если это отношение больше, чем 2 в степени разрядность Z-буфера (2Z-bits), то depth test начинает работать неправильно. Например, если far=10,000, а near=0.1, отношение far / near=100,000 > 65,536 (216), и возникает Z-алиасинг.

В любом случае, число потерянных битов Z-буфера приближенно определяется по формуле Log2(far / near). Поэтому near никогда не должно быть 0 (однако

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

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог