Построение трехмерной сцены и визуализация погодных эффектов в городском ландшафте

Содержание

Слайд 2

Цель работы

Цель данной работы – реализовать построение трехмерной сцены и визуализацию погодных

Цель работы Цель данной работы – реализовать построение трехмерной сцены и визуализацию
эффектов в городском ландшафте.
описание структуры трехмерной сцены
выбор и/или модифицирование существующих алгоритмов трехмерной графики, которые позволят визуализировать трехмерную сцену;
реализация данных алгоритмов для создания трехмерной сцены;
разработка программного обеспечения, которое позволит отобразить трехмерную сцену и визуализировать погодные эффекты в городском ландшафте.

Слайд 3

Формализация сцены

Плоскость земли
Здания
Источник света
Осадки
Ветер
Туман

Формализация сцены Плоскость земли Здания Источник света Осадки Ветер Туман

Слайд 4

Выбор алгоритмов

Алгоритмы удаления невидимых линий, построения теней
Обратная трассировка лучей
Алгоритм Робертса
Алгоритм Варнока
Z буфер

Методы

Выбор алгоритмов Алгоритмы удаления невидимых линий, построения теней Обратная трассировка лучей Алгоритм
закрашивания:
Простая закраска - один уровень интенсивности на грань
Закраска по Гуро - билинейная интерполяция интенсивностей
Закраска по Фонгу - билинейная интерполяция векторов нормалей

Слайд 5

Простой метод освещения

В простом методе освещения интенсивность рассчитывается по закону Ламберта:
I =

Простой метод освещения В простом методе освещения интенсивность рассчитывается по закону Ламберта:
I0*cos(α), где
I – результирующая интенсивность света в точке
I0 – интенсивность источника
α – угол между нормалью к поверхности
и вектором направления света

Слайд 6

Эффекты погоды

Для визуализации дождя:
Система частиц
Метод Кшитиза и Шри
Во всех проанализированных мной алгоритмах

Эффекты погоды Для визуализации дождя: Система частиц Метод Кшитиза и Шри Во
туман всегда зависит от расстояния до объекта.

Слайд 7

Общий алгоритм визуализации сцены

Получение информации о сцене
Выполнение преобразований и расчетов
Алгоритм Z-буфера для

Общий алгоритм визуализации сцены Получение информации о сцене Выполнение преобразований и расчетов
наблюдателя и источника света
Поиск теней
Добавление эффектов погоды

Слайд 8

1. Всем элементам буфера кадра присвоить фоновое значение
2. Инициализировать Z буфер минимальными

1. Всем элементам буфера кадра присвоить фоновое значение 2. Инициализировать Z буфер
значениями глубины
3. Выполнить растровую развертку каждого многоугольника сцены:
a. Для каждого пикселя, связанного с многоугольником вычислить его глубину z(x, y)
b. Сравнить глубину пискселя со значением, хранимым в Z буфере. Если z(x, y) > zбуф(x, y), то zбуф(x,y) =z(x,y), цвет(x, y) = цветПикселя.
4. Отобразить результат

Алгоритм Z-буфера

Слайд 9

Генерация осадков

1. Получение начальных данных
2. Пока не получена команда прекращения осадков:
2.1

Генерация осадков 1. Получение начальных данных 2. Пока не получена команда прекращения
Обновление положения частиц по заданному закону
2.2 Инициализация новых частиц
2.3 Отображение частиц на дисплее
3. Пока система частиц не пуста
3.1 Обновление положения частиц по заданному закону
3.2 Отображение частиц на дисплее

Слайд 10

Туман

Для того, чтобы создать эффект дымки или плотного тумана нужно знать удаленность

Туман Для того, чтобы создать эффект дымки или плотного тумана нужно знать
от наблюдателя видимых пикселей.
Если пиксель дальше последнего видимого z интенсивность тумана будет равна 1, иначе
,
где k – интенсивность пикселя, 1-k – интенсивность тумана.

Слайд 11

Выбор языка программирования и среды разработки

В качестве языка программирования был выбран C#:

Выбор языка программирования и среды разработки В качестве языка программирования был выбран

ознакомилась с этим языком во время занятий по компьютерной графике
ООП
В качестве среды разработки была выбрана Visual Studio 2017:
бесплатна для студентов
удобства отладки и написания кода
Для создания графического интерфейса был использован Windows Forms.

Слайд 12

Структура и состав классов

Структура и состав классов

Слайд 14

Интерфейс программы

Сцена - добавление зданий
Источник света - изменение положения источника
Направление ветра
Дождь -

Интерфейс программы Сцена - добавление зданий Источник света - изменение положения источника
наложение эффекта дождя
Туман - наложение эффекта тумана
Поворот - поворот сцены
Режим - выбор вида изображения

Слайд 15

Сцена

Сцена

Слайд 17

Дефекты

Дефекты

Слайд 18

Погода

Погода

Слайд 19

Эксперимент

Параллельное нахождение теней с помощью функции Parallel.For показало увеличение времени работы в

Эксперимент Параллельное нахождение теней с помощью функции Parallel.For показало увеличение времени работы
2.5 раза.
1666536 тиков – обычное нахождение теней;
4169953 тиков – параллельное нахождение теней, с разбиением изображения;
7452667 тиков – параллельное нахождение теней.