Please enable JavaScript.
Coggle requires JavaScript to display documents.
Алгоритмы трёхмерной графики - Coggle Diagram
Алгоритмы трёхмерной графики
Процесс рендеринга
Определение: получение изображения из 3D-модели
Этапы
преобразование координат
удаление невидимых граней
тени
полупрозрачность
растеризация
закраска с учётом освещения
текстур
1 more item...
Режимы
предварительный (pre-rendering)
реального времени
Визуализация граней
Каркасная
Каркасная с удалением невидимых поверхностей
удаление
в пространстве объектов
в пространстве экрана
Алгоритмы удаления невидимых линий/поверхностей
Общая идея: сортировка по расстоянию от точки наблюдения
Алгоритм отсечения не лицевых граней
Единичный вектор нормали для каждой грани
Для выпуклых многогранников полностью решает задачу
Алгоритм Робертса
Требование: все грани – выпуклые многоугольники (триангуляция)
Отбрасываются рёбра с обеими не лицевыми гранями
Проверка перекрытия
Алгоритм буфера глубины
Для каждого пикселя хранится псевдоглубина d_ij
Буфер кадров + буфер глубины
При закрашивании грани сравнивается глубина
Достоинства
нетребователен в характеристиках
недорогая память
любые примитивы
любая сложность сцены
без вычисления пересечений
Недостатки
доп. память и трафик
напрасная отрисовка невидимых объектов
недостаток точности Z
Освещение и модели освещения
Типы источников
первичные (светоиспускающие)
вторичные (светоотражающие)
Взаимодействие света с поверхностью
поглощение
отражение
прохождение
Типы отражения
Диффузное рассеяние
Зеркальное отражение
Основные векторы
положение источника
нормаль
направление на наблюдателя
Закрашивание граней объектов
Плоское закрашивание (постоянное)
Один цвет на всю грань
Плавное закрашивание
Закраска Гуро
Линейная интерполяция цветов по рёбрам и по строке развертки
Дороже плоского
Закраска Фонга
Интерполяция нормалей в вершинах, затем нормировка и расчёт цвета по модели освещения
в 6–8 раз медленнее Гуро
Высокая реалистичность для блестящих поверхностей
Текстурирование
Проективные текстуры
Взять изображение и спроектировать на поверхность
Стандартные проекции: плоская, цилиндрическая, сферическая
Недостатки: большой объём памяти, сложность для сложных форм
Наложение текстур
На плоскую поверхность
На криволинейную поверхность
Фильтрация текстур
Точечная
Линейная
Анизотропная
Мип-текстурировани
Процедурные текстуры
Функция C(x,y,z) задаёт цвет в каждой точке пространства
Достоинства: мало памяти, работает с любой сложной формой
Недостаток: сложность подбора функции