Видимость и буфер глубины
Камера видит не всю сцену целиком: объекты перекрывают друг друга. Задача видимости — для каждого пикселя выбрать ближайшую к камере поверхность (или линию в 2.5D). От выбранного метода зависят и скорость, и артефакты.
Видимость и буфер глубины
Лицевые грани и отсечение по нормали
★ Back-face culling — не рисовать треугольники, чья нораль «смотрит» от камеры (знак скалярного произведения нормали и вектора взгляда). Работает для замкнутых водонепроницаемых мешей; для открытых поверхностей (лист, лента) culling отключают.
Буфер глубины (z-buffer)
Самый распространённый метод в real-time 3D.
- Для каждого пикселя хранят глубину ближайшего пока что нарисованного фрагмента.
- Новый фрагмент сравнивают с записью; если он ближе — перезаписывают цвет и глубину.
- Тест выполняет GPU (depth test); порядок отрисовки объектов не важен (для непрозрачной геометрии).
Проблемы: fighting z (близкие coplanar поверхности), нужна согласованность near/far плоскостей камеры. Полупрозрачность обычно рисуют после непрозрачного, сортировкой back-to-front — z-buffer один не решает смешивание альфы.
Иерархический z-buffer (Hi-Z) — пирамида минимальных глубин по блокам экрана; отсекает целые треугольники до растеризации. Используется в GPU и occlusion culling.
Методы без z-buffer (история и ниши)
| Метод | Идея | Минус |
|---|---|---|
| Алгоритм художника | Сортировка полигонов от дальних к ближним | O(n log n), ошибки при пересечениях |
| Робертс / Аппель | Аналитическое удаление невидимых рёбер | Дорого для сложных мешей |
| Ray casting на пиксель | Луч из камеры, первое пересечение | Без ускорения — медленно |
| BSP-дерево | Порядок обхода даёт правильную перерисовку для статичной indoor-сцены | Долгое построение, плохо для динамики |
В современных API z-buffer включён по умолчанию; художник и BSP остаются в учебниках и level design.
Порталы и PVS
В коридорных уровнях (шутеры, квесты) комнаты соединены порталами — полигонами-«окнами». Если камера в комнате A, рисуют только комнаты, достижимые через видимые порталы.
★ PVS (Potentially Visible Set) — для каждой зоны заранее (offline) считают множество потенциально видимых зон. В runtime лишние комнаты не отправляют в GPU. Классика 1990–2000-х; в открытых мирах чаще streaming + occlusion + Hi-Z.
BSP из пространственных структур помогает и сортировке, и построению порталов.
Сводка
| Задача | Практичный выбор |
|---|---|
| Игра, general mesh | Z-buffer + back-face cull + frustum cull |
| Прозрачность | Сортировка + blend после opaque pass |
| Indoor, мало динамики | Порталы / PVS + z-buffer |
| Офлайн качество | Ray tracing / path tracing (13.md) |
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Компьютерная графика — дисциплина, занимающаяся созданием, обработкой, анализом и визуализацией изображений с использованием вычислительных средств. Растровая графика - изображение как сетка пикселей, разрешение, цвет и компромиссы качества и объёма данных. Векторная графика — это способ представления изображений, при котором визуальное содержимое описывается не как набор цветных точек (пикселей), а как совокупность геометрических примитивов: точек. Трёхмерная графика — это область вычислительной техники, посвящённая созданию, обработке и отображению визуальных объектов, обладающих глубиной, объёмом и пространственной структурой. Blender — установка, настройка, обзор разделов официального руководства и основные рабочие процессы 3D. Цифровая графика существует в двух основных формах: растровой и векторной. Растровые изображения состоят из сетки пикселей, каждый из которых имеет свой цвет. Пересечения, hit-test и отсечение примитивов по окну — алгоритмы, которые связывают векторную геометрию с пиксельным выводом и UI. AABB, OBB, BVH и деревья пространственного разбиения — как ускорить поиск пересечений луча, коллизий и видимости в больших сценах. Современный конвейер OpenGL 3.3 — окно, VBO/VAO, GLSL, текстуры и типовые эффекты real-time графики. Сжатая шпаргалка по разделу "Компьютерная графика" — растр, вектор, 3D, рендер и куда читать дальше. Вопросы по разделу "Компьютерная графика" с подсказкой, в какой статье искать ответ.Основы компьютерной графики
Растровая графика
Векторная графика
D-графика и анимация
Blender
Алгоритмы растеризации
D-геометрия и отсечение
Пространственные структуры и ускорение
OpenGL и шейдеры
Итоги
Чек-лист самопроверки