
- •5. Требования к оформлению пояснительной записки
- •Презентация.
- •1. Тема курсовой работы/проекта
- •2. Исходные данные
- •2. Перечень вопросов, подлежащих разработке, и обязательного графического материала:
- •1. Тема курсовой работы/проекта
- •2. Исходные данные
- •2. Перечень вопросов, подлежащих разработке, и обязательного графического материала:
- •5. Мониторинг процесса выполнения курсового проекта (работы)
- •Лист замечаний
- •Перечень условных обозначений и сокращений
- •Введение
- •1. Основная часть
- •1.1 Обоснование актуальности задачи создания реалистических изображений
- •1.2 Обоснование выбора методов и средств для выполнения задания
- •1.2.1 Карта нормалей
- •1.2.2Карта смещений текстурных координат (du/dv карта)
- •1.2.3 Проект сцены «Солнце над морем»
- •1.3 Алгоритмы моделирования и визуализации
- •1.4 Макет по визуализации сцены
- •1.5 Результат работы макета по
- •Заключение
- •Список литературы
- •Приложение II Презентация к защите курсовой работы/курсового проекта содержание
1.2 Обоснование выбора методов и средств для выполнения задания
Методы, используемые для имитации реалистичных изображений водной поверхности:
Отражение – отображение на поверхности воды пространства, находящегося над ней. Этот пункт является, пожалуй, самым главным при изображении более-менее реалистичной воды.
Преломление – отображение пространства, находящегося под водной поверхностью.
Освещение.
Волны – тоже немаловажный пункт для реализации реалистичной водной поверхности.
Водная поверхность представляет из себя квадрат (два полигона). Физическое движение отсутствует. Эффект волновой поверхности достигается лишь с помощью специальных карт смещений.
Отражение. Отражение на поверхности воды есть ничто иное, как текстура. Сложность заключается лишь в том, что она постоянно меняется и одной постоянной текстурой не обойтись (за исключением фейкового отражения – текстура неба; метод нереалистичный и следует его использовать только для ускорения отрисовки, если оное требуется). Отражение на поверхности воды представляет собой изображение пространства, находящегося над водой, но отраженное по горизонтали. Чтобы его получить нужно всего лишь "отразить" камеру относительно поверхности воды.
Преломление. Все аналогично, за исключением того, что изображение преломления – есть изображение точно такое, какое видит камера, не учитывая самой воды.
Освещение. Ничего необычного, простое освещение, такое же, как и у остальных объектов (чтобы вода не была однотонного цвета).
Волны. Как мы уже говорили – волны можно изобразить двумя способами (фейковые волны с помощью текстур и корректные волны с помощью геометрии). Если с геометрией все понятно (позиция каждой вершины меняется в зависимости от физического закона или карты шумов), то фейк делается чуть запутанней, но, при этом, проще. Фейковые волны можно отобразить с помощью двух вещей: свет и искажение отражения/ преломления. Наиболее качественные результаты достигаются с помощью совместного использования этих двух способов.
Рисунок 1. Использование карт нормалей для освещения воды
С помощью карт нормалей мы освещаем воду так, будто на ней действительно есть рельефны волн (Рисунок 1).
Рисунок 2. Использование искажения для формирования волны
С помощью искажения мы "размазываем" отражение/преломление по структуре волн (Рисунок 2).
Как уже упоминалось, освещать по структуре волн мы будем с помощью карт нормалей.
1.2.1 Карта нормалей
Карта нормалей представляет собой графический файл, в r/g/b каналы которого записаны координаты вектора нормали, а не цвета. Как правило, она выглядит так (карта, в которой не трудно разглядеть структуру объекта, освещенную сине-фиолетовым цветом) (Рисунок 3).
Рисунок 3. Карта нормалей
1.2.2Карта смещений текстурных координат (du/dv карта)
Искажать изображение на поверхности воды (будь то преломление или отражение, или их комбинация) мы будем с помощью карты смещений текстурных координат (Рисунок 4).
Рисунок 4. Карта смещений текстурных координат
Карта смещений текстурных координат (или du/dv карта) также представляет собой карту со структурой объекта, но цвета у нее могут быть очень различны (от серо-коричневых, до желто-красных). Такие карты в каналах цвета хранят расстояния, на которые изменяются текстурные координаты. Исходя из этого, они могут быть различного формата, как одноканальные (карты с черно-белым градиентом), так и многоканальные (например, двух канальные, для хранения смещения по оси Х и по оси У отдельно).
Итак, мы используем:
квадрат;
две вспомогательные текстуры (normal map и du/dv map);
несколько методов для нормального рендеринга отражения;
шейдер, который все это дело отрисует.