Z-buffer (Буфер глубины) (комментарии)
Это сообщение сгенерировано автоматически.
NULL_PTR
> Значения глубины точки не находятся в линейной зависимости от расстояния до камеры. Значения у ближней плоскости расположены очень плотно, а с увеличением дальности к дальней плоскости отсечения всё более редко. По этой причине нужно следить за расстояниями, на которых вы ставите плоскости отсечения: ближнюю плоскость не стоит ставить слишком близко! В противном случае можно получить множество артефактов изображения вдали, в особенности z-fighting, когда небольшое изменение ракурса камеры может изменить видимость близко расположенных треугольников.
Возможно в этом месте статьи не хватает упоминания об glEnable(GL_DEPTH_CLAMP_NV).
Полученное значение z' затем нормализуется в диапазон [0; 1], где 0 - у ближней плоскости отсечения, и 1 - у дальней.
Как?))
И еще хотелось бы картинге =)
Spiteful
> И еще хотелось бы картинге =)
Если я правильно понял слово "картинге", то вот
http://prboom-plus.sourceforge.net/nv_clamp_0.png
http://prboom-plus.sourceforge.net/nv_clamp_1.png
На первом шоте near плоскость отсекает "лишнее" (просвечивается скайбокс). Проблема может быть сведена к минимум с помощью уменьшения значения z-near, но это не поможет избавиться от проблемы полностью - раз, ведет к потери точности z-буффера - два. glEnable(GL_DEPTH_CLAMP_NV) или соответствующий шейдер решают проблему полностью.
entryway
> Возможно в этом месте статьи не хватает упоминания об
> glEnable(GL_DEPTH_CLAMP_NV).
Ах так ты из этих, опенжэлистов ? :)
Можно ещё добавить про ARB_float_depth_buffer
http://www.opengl.org/registry/specs/ARB/depth_buffer_float.txt
Тема в архиве.