Similar presentations:
Компьютерная графика. Модуль 2-1
1.
Компьютернаяграфика
Модуль 2-1
Растеризация треугольников.
2.
Растеризация треугольников.Все полигоны состоят из
треугольников, поэтому
растеризация
треугольников является
ключевой составляющей
рендеринга.
3.
Растеризация треугольников.Два подхода.
Построчная отрисовка
Попиксельная отрисовка
4.
Построчная отрисовка –исходные данные
5.
Построчная отрисовка –определение вершин
6.
Построчная отрисовка –определение границ
7.
Построчная отрисовка –заполнение строк
8.
Попиксельная отрисовка –исходные данные
9.
Попиксельная отрисовка –определение области интереса
10.
Попиксельная отрисовка –определение внутренних точек
11.
Попиксельная отрисовка –заполнение треугольника
12.
Попиксельная отрисовка.Определение внутренних точек.
13.
Попиксельная отрисовка.Определение внутренних точек.
14.
Определение внутренних точек.Барицентрические координаты
15.
Определение внутренних точек.Барицентрические координаты
16.
Упрощённый конвейеррендеринга сцены (все грани)
Для каждого треугольного полигона сцены:
Рассчитать область интереса.
Для каждого пиксела внутри области интереса:
Рассчитать барицентрические координаты пиксела относительно
вершин треугольника.
Если хотя бы одна барицентрическая координата пиксела меньше нуля –
переход к следующему пикселу.
17.
Компьютернаяграфика
Модуль 2-2
Удаление невидимых поверхностей.
18.
Отбрасывание нелицевых граней(backface culling)
Простейший способ оценить необходимость отрисовки
полигона – проверить, направлен ли он к зрителю «лицевой»
стороной.
Простейший способ определить «лицевую» сторону –
рассчитать нормаль как векторное произведение двух рёбер
полигона.
Скалярное произведение вектора нормали на направление
камеры даёт косинус угла между ними. Грань видна, если
косинус отрицателен.
19.
Расчёт нормали к поверностиполигона
20.
Упрощённый конвейер рендерингасцены (без глубины и текстур)
Для каждого треугольного полигона сцены:
Рассчитать нормаль к полигону.
Если нормаль направлена под углом <90° к наблюдателю – перейти
к следующему полигону.
Рассчитать область интереса.
Для каждого пиксела внутри области интереса:
Рассчитать барицентрические координаты пиксела относительно
вершин треугольника.
Если хотя бы одна барицентрическая координата пиксела меньше нуля –
переход к следующему пикселу.
21.
Рендеринг с отбрасываниемнелицевых граней
22.
Рендеринг без z-буфера23.
Рендеринг без z-буфера24.
Рендеринг без z-буфера25.
Рендеринг без z-буфера26.
Рендеринг c z-буфером27.
Рендеринг c z-буфером28.
Рендеринг c z-буфером29.
Рендеринг c z-буфером30.
Определение z-координаты точек.Барицентрические координаты
31.
z-буфер (пример 1)Без z-буфера
С z-буфером
32.
z-буфер (пример 2)Без z-буфера
С z-буфером
33.
Полный конвейер рендеринга сцены (безналожения текстуры и постобработки)
Для каждого треугольного полигона сцены:
Рассчитать нормаль к полигону.
Если нормаль направлена под углом <90° к наблюдателю – перейти к
следующему полигону.
Рассчитать область интереса.
Для каждого пиксела внутри области интереса:
Рассчитать барицентрические координаты пиксела относительно вершин
треугольника.
Если хотя бы одна барицентрическая координата пиксела меньше нуля –
переход к следующему пикселу.
Если z-координата пиксела больше текущего значения z-буфера для этого
пиксела – переход к следующему пикселу.
Нарисовать пиксел, присвоить z-буферу значение z-координаты пиксела.
34.
Наложение текстуры35.
Результат наложения текстуры36.
Полный конвейер рендеринга сцены (безналожения текстуры и постобработки)
Для каждого треугольного полигона сцены:
Рассчитать нормаль к полигону.
Если нормаль направлена под углом <90° к наблюдателю – перейти к
следующему полигону.
Рассчитать область интереса.
Для каждого пиксела внутри области интереса:
Рассчитать барицентрические координаты пиксела относительно вершин
треугольника.
Если хотя бы одна барицентрическая координата пиксела меньше нуля –
переход к следующему пикселу.
Если z-координата пиксела больше текущего значения z-буфера для этого
пиксела – переход к следующему пикселу.
Найти координаты пиксела текстуры с использованием барицентрических
координат, нарисовать пиксел цветом текстуры, присвоить z-буферу
значение z-координаты пиксела.
37.
Задача на модуль:Полный рендер модели
Задание на лабораторную:
Загрузить модель в формате
obj из файла.
Нарисовать все полигоны
модели с учётом глубины и
освещения.
Дополнительное задание:
Наложить текстуру на объект.
38.
Компьютернаяграфика
Модуль 3
Проективная геометрия.