2.50M
Category: informaticsinformatics

Компьютерная графика. Модуль 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
Проективная геометрия.
English     Русский Rules