Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Сапронов Роман Владимирович

Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора
<
Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Сапронов Роман Владимирович. Модели и алгоритмы генерации окружающего пространства в системе визуализации летного симулятора: диссертация ... кандидата Технических наук: 05.13.18 / Сапронов Роман Владимирович;[Место защиты: Казанский национальный исследовательский технический университет им. А.Н. Туполева - КАИ], 2016.- 154 с.

Содержание к диссертации

Введение

1. Основные понятия теории построения компьютерных изображений 23

1.1 Базовые элементы оптической теории 24

1.2 Цветовые системы 30

1.3 Гамма коррекция 34

1.4 Тонирование 38

1.5 Математические модели освещения 40

1.6 Классическое уравнение освещения 46

1.7 Способы визуализации. 47

1.8 Графический конвейер 48

1.9 Фрагментные операции 53

1.10 Технологии визуализации в приложениях реального времени 54

1.11 Графические API 56

2. Визуализация рельефа местности 58

2.1.1 Метод отображения конических шагов 61

2.1.2 Метод Maximum Mipmaps 65

2.1.3 Оптимизация времени построения конических карт

2.2 Текстурные атласы 84

2.3 Апериодическое текстурирование 89

2.4 Визуализация наземных объектов 95

2.5 Визуализация дорог 101

2.5.1 Построение и визуализация отдельного транспортного участка 103

2.5.2 Метод проецируемых каскадов 105

2.5.3 Реализация метода проецируемых каскадов 109

3. Визуализация водной поверхности 113

3.1 Моделирование водной поверхности 113

3.2 Отображение водной поверхности 118

4. Визуализация атмосферных эффектов 129

4.1 Визуализация неба 130

4.2 Визуализация облаков 134

4.3 Визуализация погодных эффектов 138

Заключение 139

Приложение

Иллюстрации 143

Список литературы 148

Введение к работе

Актуальность работы. Существенную роль в обеспечении отработки и закрепления необходимых навыков пилотирования играет система визуализации. С развитием компьютерной графики и увеличением мощности аппаратного обеспечения стала возможной программная реализация реалистичных моделей большинства природных и искусственных явлений.

Среди недавних исследований, посвященных разработке систем визуализации необходимо отметить работы С. Вяткина, Б. Долговесова, В. Фомичева; работы М. Михайлюка, М. Торгашева; исследования А. Тотмакова, И. Хураськина. Немало исследований проводится коммерческими компаниями, разрабатывающими системы визуализации летных симуляторов для гражданской и военной авиации. К числу подобных систем визуализации следует отнести систему визуализации «Аврора» группы компаний «Кронштадт»; систему визуализации Canadian Aviation Electronics (CAE) «Tropos», используемую на тренажерах компании Airbus; систему визуализации «Альбатрос» тренажера орбитального комплекса «Мир» компании «Центр тренажеростроения», систему визуализации «Радуга-КД», разработанную компанией «Константа-Дизайн» для тренажеров ЦНТУ «Динамика».

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

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

Объектами исследования являются модели и алгоритмы визуализации окружающей обстановки при имитации условий полета летательного аппарата (ЛА). Предметом исследования является эффективность использования указанных алгоритмов в системе визуализации летного симулятора. Для достижения цели производится решение следующих задач:

  1. Проведение анализа существующих моделей представления данных и алгоритмов визуализации с целью выбора наиболее приемлемых для нужд летного симулятора;

  2. Обеспечение эффективного (в смысле потребляемых ресурсов, достижения необходимого уровня производительности) управления визуализацией большого количества объектов;

  1. Разработка и оптимизация алгоритмов визуализации в моделях различных природных и искусственных явлений и сред (земная и водная поверхности, атмосферные эффекты, погодные эффекты);

  2. Реализация указанных алгоритмов в виде программного кода с учетом специфических требований, применяемых к системам реального времени;

Научная новизна. В ходе работы над диссертацией разработан и доведен до стадии практического применения ряд методов и алгоритмов, пригодных для использования в системах визуализации летных симуляторов нового поколения с учетом специфических требований (скорости, высоты, дальности полета, дальности видимости), предъявляемых к системам подобного рода. Предложены способы реализации указанных алгоритмов для приложений реального времени на базе существующего на рынке аппаратного и программного обеспечения.

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

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

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

  4. Разработаны новые численные методы, используемые для ускорения времени построения вспомогательной структуры в методе трассировки лучей при отображении ландшафта на основе цифровой модели рельефа, а также, в различных методах рельефного текстурирования.

  5. Предложены способы ускорения визуализации большого количества мелких объектов на основе систем: 1) нескольких проекций объекта; 2) объемных импосторов. Разработан алгоритм визуализации объемных импосторов, отличающийся от оригинального меньшим числом используемых проекций и количеством текстурных выборок при использовании процедуры трассировки.

  6. Предложена методика нормализации карт высот, полученных при использовании быстрого преобразования Фурье к участку водной поверхности, представленной в виде частотного спектра. Разработан устойчивый к ошибкам вычисления алгоритм визуализации водной поверхности на основе метода проективных сеток, с учетом корректной

визуализации при нахождении видовой камеры на границе воздушно-водного интерфейса. 7. Разработан способ эффективной реализации физически корректной модели

атмосферы. Разработан эффективный алгоритм моделирования и

визуализации реалистичных погодных эффектов.

Практическая значимость. В рамках программного комплекса системы визуализации разработано несколько вспомогательных средств, включая редактор поверхности, позволяющий эффективно размещать большое количество объектов в различных возможных конфигурациях с обеспечением интуитивного пользовательского интерфейса. Разработанные алгоритмы реализованы в виде исходного кода программного комплекса системы визуализации вертолетного тренажера, защищенного авторским свидетельством о государственной регистрации программ для ЭВМ 2016610832 от 20.02.2016. Программные реализации указанных алгоритмов удовлетворяют всем требованиям и ограничениям, сформулированным при постановке задач. Основные исследования выполнялись: в рамках программы «У.М.Н.И.К» - " Разработка Screen-space – методы в системе визуализации вертолетного симулятора тренажера " (договоры целевого финансирования № 1618ГУ1/2014 от 05.03.2014 г. и № 6779ГУ2/2015 от 6779ГУ2/2015 г.), в ходе НИОКР по теме "Исследования и разработка наукоёмких технологий, материалов и устройств по приоритетным направлениям науки и техники" (договор целевого финансирования №15/179/2014 от 28.08.2014г.)

Практическое внедрение результатов исследования осуществлено при создании исследовательского пилотажного стенда вертолета с бесшарнирным несущим винтом, разрабатываемого в рамках прикладных научных исследований по теме «Разработка методов имитационного моделирования, программных средств и прототипа модели динамики полета высокоскоростного вертолета с бесшарнирным несущим винтом на основе искусственных нейронных сетей». Соглашение № 14.574.21.0105. Уникальный идентификатор прикладных научных исследований RFMEFI57414X0105.

Методология и методы исследования. При решении поставленных задач использовался аппарат численных методов линейной алгебры, алгоритмы оптимизации, методы и средства прикладной теории алгоритмов и математического моделирования. При проектировании программного комплекса применялись парадигмы объектно-ориентированного, императивного и структурного программирования, широко использовались архитектурные конструкции, описываемые шаблонами проектирования. Все алгоритмы, представленные в диссертации, реализованы с использованием прикладного программного интерфейса (API – Application Program Interface) DirectX, однако, могут быть реализованы и с помощью других доступных программных интерфейсов, таких, как OpenGL, CUDA, OpenCL.

Личный вклад автора диссертации. Основные результаты работы получены лично соискателем. Автор принимал непосредственное участие в разработке программ и алгоритмов, проведении расчетов и экспериментов,

обсуждении и анализе результатов, написании статей и выступлении на конференциях.

Достоверность результатов исследования определяется

обоснованностью применяемых методов исследования, корректным использованием математического и логического аппарата, подтверждением теоретических предположений практическими результатами.

Апробация результатов. Основные результаты исследования докладывались в ходе международной молодежной конференции «XVI Туполевские чтения» 28 – 29 мая 2008 г.: Сапронов Р.В. «О критериях ускорения вычислительных процедур для программных комплексов на основе HLSL»; международной молодежной конференции «XVII Туполевские чтения» 26 – 28 мая 2009 г.: Сапронов Р.В. «Об использовании проективных сеток для визуализации больших ландшафтов»; международной конференции «XXI Туполевские чтения (школа молодых ученых)» 19 – 21 ноября 2013 г.: «Screen-space методы в системе вертолетного симулятора/тренажера»; международной конференции «АКТО 2014 (Поиск эффективных решений в процессе создания и реализации научных разработок в российской авиационной и ракетно-космической промышленности)» 5 – 8 августа 2014.: «Технологии визуализации при разработке графической составляющей летного симулятора»; на семинаре "Программирование" им. М.Р. Шура-Бура Института прикладной математики им. М.В. Келдыша РАН, Москва. Результаты работы изложены в трех статьях, входящих в перечень ВАК.

Структура и объем работы. Основная часть работы изложена на 154 страницах машинописного текста, состоит из введения, четырех глав, заключения, приложения, включает 51 иллюстрацию, четыре таблицы. Библиографический список содержит 130 источников.

Гамма коррекция

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

Практическая значимость. В рамках программного комплекса системы визуализации разработано несколько вспомогательных средств, включая редактор поверхности, позволяющий эффективно размещать большое количество объектов в различных возможных конфигурациях с обеспечением интуитивного пользовательского интерфейса. Разработанные алгоритмы реализованы в виде программного кода в рамках программного комплекса системы визуализации вертолетного тренажера, защищенного авторским свидетельством о государственной регистрации программ для ЭВМ 2016610832 от 20.02.2016. Программные реализации указанных алгоритмов удовлетворяют всем требованиям и ограничениям, сформулированным при постановке задач. Основные положения работы использованы при выполнении НИОКР "Исследования и разработка наукоёмких технологий, материалов и устройств по приоритетным направлениям науки и техники" (договор целевого финансирования №15/179/2014 от 28.08.2014г.). Практическое внедрение результатов исследования осуществлено при создании исследовательского пилотажного стенда вертолета с бесшарнирным несущим винтом, разрабатываемого в рамках прикладных научных исследований по теме «Разработка методов имитационного моделирования, программных средств и прототипа модели динамики полета высокоскоростного вертолета с бесшарнирным несущим винтом на основе искусственных нейронных сетей». Соглашение № 14.574.21.0105. Уникальный идентификатор прикладных научных исследований RFMEFI57414X0105.

Достоверность результатов исследования определяется обоснованностью применяемых методов исследования, корректным использованием математического и логического аппарата, подтверждением теоретических предположений практическими результатами.

Методы исследования. При решении поставленных задач использовался аппарат численных методов линейной алгебры, алгоритмы оптимизации, методы прикладной теории алгоритмов и математического моделирования. При проектировании программного комплекса систем использовалось парадигмы объектно-ориентированного, императивного и структурного программирования, широко использовались архитектурные конструкции, описываемые шаблонами проектирования.

Алгоритмы, представленные в диссертации, были реализованы с использованием прикладного программного интерфейса (API –Application Program Interface) DirectX, однако, могут быть реализованы и с помощью других широко доступных программных интерфейсов, таких, например, как OpenGL, CUDA, OpenCL. Апробация результатов. Основные результаты диссертационного исследования докладывались в ходе международной молодежной конференции «XVI Туполевские чтения» 28 – 29 мая 2008 г.: Сапронов Р. «О критериях ускорения вычислительных процедур для программных комплексов на основе HLSL»; международной молодежной конференции «XVII Туполевские чтения» 26 – 28 мая 2009 г.: Сапронов Р. «Об использовании проективных сеток для визуализации больших ландшафтов»; международной молодежной конференции «XXI Туполевские чтения (школа молодых ученых)» 19 – 21 ноября 2013 г.: «Screen-space методы в системе вертолетного симулятора/тренажера»; международной молодежной конференции «АКТО 2014 (Поиск эффективных решений в процессе создания и реализации научных разработок в российской авиационной и ракетно-космической промышленности)» 5 – 8 августа 2014.: «Технологии визуализации при разработке графической составляющей летного симулятора»; на семинаре "Программирование" им. М.Р. Шура-Бура Института прикладной математики им. М.В. Келдыша РАН, Москва.

Публикации. Основные результаты исследования опубликованы в трех статьях журналов из списка, входящих в перечень ВАК, включены в отчет о выполнении НИОКР по теме "Исследования и разработка наукоёмких технологий, материалов и устройств по приоритетным направлениям науки и техники"(договор целевого финансирования №15/179/2014 от 28.08.2014г.).

Содержание, структура и объем работы. Диссертационная работа состоит из введения, пяти глав, заключения, списка литературы, приложения, содержит 4 таблицы, 51 рисунок. Общий объем диссертации составляет 153 страницы. Библиографический список состоит из 130 наименований работ отечественных и зарубежных авторов.

Графический конвейер

Одним из наиболее эффективных алгоритмов для работы с текстурами размеров, не поддерживаемых графических оборудованием, является технология мегатекстурирования. Указанная технология относится к методике управления текстурной памятью, впервые была предложена Дж. Кармаком, и реализована в многопользовательской игре Enemy Territory: Quake Wars. В дальнейшем, указанная технология была использована также и в других играх, разработанных на технологии idech 4 и 5, таких, как Brink, Rage, Wolfenstein: The New Order и отмененном Prey 2. Разновидности указанной технологии используются и в играх других разработчиков, например, в Battlefield 3 и 4.

Весь ландшафт игрового уровня покрывается одной большой текстурой, (вместо множества повторяющихся текстур, используемых при обычном текстурировании), в дальнейшем, необходимые участки мегатекстуры подгружаются в видеопамять во время выполнения. Перечислим основные характеристики технологии:

Мегатекстура сохраняется на жёстком диске и подкачивается при необходимости в оперативную память, позволяя создавать большое количество деталей и разновидностей ландшафта и при этом использует сравнительно мало оперативной памяти: — существует несколько версий мегатекстуры в разных уровнях детализации; в каждом уровне она разбита на квадраты одинакового (в пикселях) размера. Например, мегатекстура 3276832768 пикселей, покрывающая участок в 640640 метров, в максимальной (нулевой) детализации разбивается на 3232 квадрата размером 10241024 пикселя (2020 м). Первый уровень детализации состоит из 1616 квадратов того же размера (10241024), но вдвое меньшего пространственного разрешения (то есть, размер каждого квадрата — 4040 метров), второй — из 88 квадратов по 80 м каждый, и т. д.; ближайшие к камере пиксели визуализируются с текстурой максимального качества, содержащей только небольшой участок мегатекстуры; следующие пиксели визуализируются с текстурой меньшего качества, и меньшим разрешением; самые дальние пиксели визуализируются основной текстурой в уменьшенном разрешении.

Основные моменты использования указанной технологии, а также некоторые подходы к ее эффективной реализации, приведены в ряде источников[73–78]. В разрабатываемом приложении технология мегатекстурирования была использована для отображения спутниковых снимков поверхности, как естественное и наиболее корректное представление визуальных особенностей ландшафта на средних и малых высотах. При этом, ввиду недоступности цифровой модели поверхности (а также вокселизированного представления окружающего пространства) столь же высокого разрешения, что и имеющиеся в наличии спутниковые снимки, а также особенностей системы визуализации вертолетного симулятора, были приняты следующие корректировки: ввиду очевидной необходимости специального рассмотрения высокодетализированных элементов ландшафта (различного рода искусственных построек, растительности, системы коммуникаций), и обеспечения их произвольного размещения на указанной поверхности, было принято решение о использовании технологии мегатекстурирования исключительно для земной поверхности, аналогично способу использования технологии в игре Enemy Territory: Quake Wars; вследствие наличия определенных проблем в коммерческих приложениях, использующих указанную технологию, связанных с явлением видимой подгрузки участков изображения при резком повороте видовой камеры (Rage, Wolfenstein : The New Order) и необходимостью управления загрузкой и выгрузкой большого количества изображений в случае полета на средней высоте, решено отказаться от использования в качестве критерия видимости объема, созданного отсекающими плоскостями видовой камеры, заменить указанный критерий проуедурой загрузки слоев изображения в пределах прямоугольных границ, с центром в позиции наблюдателя.

В рассматриваемой реализации алгоритма, варианты мегатекстуры с различными уровнями детализации поделены на текстурные атласы различного разрешения таким образом, что части с наибольшей детализацией смешиваются с изображением, полученным с помощью атласа более низкого разрешения, однако, охватывающим большую площадь поверхности.

В реализации алгоритма визуализации с использованием текстурного атласа можно выделить две основные части: — стадия формирования текстурного атласа; — отображение текстурного атласа.

При этом, формировании текстурного атласа осуществляется асинхронно основному потоку, осуществляющему отображение указанного атласа. Приведем основные шаги процедуры, осуществляющей обновление одного уровня текстурного атласа: 1. Выполнить поиск видимых блоков и отсортировать их в зависимости расстояния к наблюдателю. 2. Для каждого найденного блока: 2.1. Выгрузить неиспользованные блоки. 2.2. Поставить в очередь загрузки новые блоки. 3. Слить текстуры в текстурный атлас, сгенерировать МІР-уровни в случае необходимости. 4. Обновить текстуру индексов.

Поясним смысл изложенных выше шагов, начиная с первого. При поиске видимых блоков учитывается лишь максимально допустимая дистанция, которая определяется опытным путем, пересечение с усеченной пирамидой видимости не учитывается, ввиду ряда причин, изложенных выше.

Поскольку загрузка и выгрузка текстур с жесткого диска в реальном времени привела бы к заметным изменениям производительности, во втором шаге лишь проверяется доступность в кэше необходимой текстуры, и, в случае отсутствия таковой, выполняется обращение к подсистеме, осуществляющей асинхронную загрузку текстуры с жесткого диска.

Слияние текстур выполняется путем последовательно рисования текстур в заранее назначенную цель визуализации, при этом, в атлас записываются текстуры более низкого разрешения, чем оригинальные. После чего обновляется текстура индексов, в котором каждому пикселу с координатами, кратными координатам соответствующего текстурного блока в текстурном атласе, присваивается двумерное значение порядкового номера соответствующего блока в текстурном атласе:

Оптимизация времени построения конических карт

Ввиду обеспечения плавной аппроксимации уровней детализации (метод основанный на LOD во многих случаях допускает наличие значительного количества полигонов, меньших экранного пикселя и требует дополнительного рассмотрения способов расширения к горизонту), при моделировании водной поверхности, используется метод проективных сеток. Теоретически, указанный выше метод представляет бесконечное количество уровней детализации (при сколь большом приближении к проецируемой плоскости размер полигонов в проективном пространстве остается неизменным – иными словами, размер элемента полигональной сетки, выраженный в пространстве мировых координат, уменьшается пропорционально сокращению расстояния между ближней плоскости отсечения и рассматриваемой поверхностью). Внеэкранные области, служащие для устранения краевых разрывов при большой высоте волн могут быть уменьшены путем искусственного изменения соответствующей высоты, величина которого определяется расстоянием от края экрана. Эффект «лесенки» (алиасинг) эффективно устраняется выбором проецирующей камеры и стратегии выборки значений карты смещения на расстоянии.

В ходе визуализации водной поверхности, для обеспечения корректной работы метода проективных сеток, максимальная (и минимальная) высота волн должна быть задана явным образом (рис. 40). Кроме того, в задачах сопоставлении различных спектральных моделей и ряда существующих шкал (Бофорта, Дугласа) возникает необходимость в средстве нормализации полученных в ходе ОБПФ карт высот и смещений. В общем случае, для нормализации указанных карт могут использоваться эмпирические соотношения, определяющие зависимость максимальной Нтах и значительной

Нт высот волн [103] от спектрального момента нулевого порядка функции S{co) max 2Я1/3;Я1/3 = 4 /м М0 = \S{co)dco. (70) о Здесь, S(a )- изотропный спектр частот, в то же время, / (к) в формуле (64) двумерный спектр плотности волнового действия, выраженный, как функция волнового вектора к, D{co, в) = к и - функция распространения волн (spreading function), где 9 = arccos(k-u] - угол распространения волны. Полный спектр с учетом функции распространения имеет вид: S((D,6) = S((D)D((D,6). (71) Поскольку суммарная энергия спектра S{(D,ff) должна совпадать с суммарной энергией волнового спектра (спектра от волнового вектора) 5(к) [104] можно записать: S(a ,e)deda = S(kx,ky)dkxdky. (72) Воспользовавшись теоремой замены пределов интегрирования, получим: 122 (73) \ \ S(a(kx,ky),0(kx,ky))deode = lls(kx,ky)\d&(Ja dkxdk ю{кх,ку)в{кх,ку) kxky Зд есь det(J ) -абсолютное значение определителя матрицы Якоби, со ставленной из частных производных со ив по компонентам вектора к : В частности, можно записать: det(J ) = _ дк дк дк дк х у ух (74) dcode detiJ dkJk (75) (76) (77) (78) (79) С учетом того, что к = J к2 + к2 и в = arctan( I кх) найдем частные производные: дсо дсо дк дсо к дк дк дк дк к дсо дсо дк дсо ку дку дк дку дк к дк дв к zz дкх к2 дв к дку к2 Подставляя (76)-(79), в (74), получим: det(J ) дсо\ дкк (80) Выразим S(k) из (72),(75) и (80): S(k) = S(a),e) дсо 1 дк к (81) Учитывая (71) и (81) g дсо_ дк 2Jgk (для глубокой воды со = Jgk ), получим: )-P(k)/\—-D дк к 2g2A —exp со V мУі KUJ со4 (82) 123 Интегрируя (82) по со и подставляя результаты в (70) получим искомую зависимость i/max от Ph(k), позволяющую нормализовать карты высот и смещений: М0= ;Н 5.66Л/!—, (83) 2g g Необходимо отметить, некоторые из существующих спектров (JONSWAP, Texel MARSEN ARSLOE(TMA) и др.) [105–107] выведены на основе модели Пирсона-Московица, параметрическая форма которой имеет вид: 1/3 20тг4 1 (84) т4 4 ґ л с 4(Я1/3)2 1 S(a ) = 5n —4 ехр ТР где Tp -пиковый период, H1/3 - по прежнему, значительная высота. В этом случае удается генерировать спектальную функцию с изначально заданными характеристиками. При нахождении камеры на большом расстоянии от начала системы координат (что возможно, учитывая рассматриваемый сценарий полета на большие расстояния), а также при больших значениях дальней плоскости отсечения видовой камеры (что также вполне допустимо) точности при вычислении пересечения камеры проектора и плоскости оказывается недостаточно, ввиду чего при повороте и перемещении камеры проявляется ряд видимых артефактов, выражающихся в мерцании и временном пропадании части водной поверхности. Для их устранения горизонтальные значения положения исходной камеры были выровнены с началом системы координат, что позволило устранить указанные ошибки вычислений на всем диапазоне работы алгоритма.

Для коррекции отображения водной поверхности при нахождении наблюдателя на границе водно-воздушного интерфейса используется слудующий подход:

Вычисленная высота сравнивается с положением наблюдателя, и если v -H0 H(vx,vz), где Н0 - значение уровеня воды, то выполняется привязка высоты водной поверхности к высоте верхней плоскости усеченной пирамиды видимости, в противном случае - к нижней. В разработанном подходе используется концепция расстояния между краями (верхним или нижним) ближней плоскости отсечения и положением

наблюдателя v: r safe = p1е«іоM\.. - v , p ta M-\iew ro. -проекция координат левого верхней точки ближней плоскости отсечения, привязка в этом случае осуществляется к Hinside=max(H,rsafe + v) при -Я0 Н( х,У2)либо к Houtside=min[H,vy-rsafe), где H = U(px,pz) -высота в точке р . Визуализация поверхности воды выполняется с учетом преломления и отражения лучей на границе водной поверхности, при этом, для определения доли отраженного (преломленного) излучения используется аппроксимация формулы Френеля.

Цель (текстура) для выборки значений отражения и преломления является текущим изображением сцены из G-Buffer а, при этом зеркальные отражения (преломления) вычисляются путем нахождения пересечения отраженного (преломленного) луча с поверхностью сцены, с использованием нескольких шагов линейного и бинарного поиска (количество промежуточных шагов может быть значительно сокращено при использовании вспомогательных структур, аналогичных ММ-пирамиде, построенных на основе линейной карты глубины).

Отражения объектов сцены, имеющих значительную протяженность у краев видимой области (небо, облака) требуют большого количества шагов процедуры трассировки, подвержены краевым артефактам, связанными с отсутствием информации об элементах сцены за пределами G-Buffer а строятся процедурно. Так, для построения облаков для карты отражений используется оригинальный алгоритм с меньшим количеством итераций, в случае небесной сферы возможно использование как оригинального алгоритма, так и интерполяции между значениями яркости в нескольких точках небесной сферы.

Необходимо отметить, что для обеспечения быстрого доступа к текстуре отражений неба, а также устранения краевых артефактов при построении протяженных объектов, используется сферическая проекция, где направление трассировки определяется из двумерных текстурных координат

Визуализация погодных эффектов

Так, в большинстве симуляторов полета (включая известные серии MSFS, серию X-Plane, Flight Gear и т.д.), и многих компьютерных играх серии игр Far Cry, Crysis, Uncharted, и т.д.), используется система частиц, размещаемых и анимируемых вручную [118]. При таком подходе возможен полный контроль формы и поведения моделируемых объектов, увеличивая, вместе с тем, трудозатраты, связанные с ручной настройкой всех необходимых параметров. Большинство алгоритмов, позволяющих получить наиболее реалистичное изображение, зачастую слишком медленны (хотя и выполняются отдельно от других компонентов системы в интерактивное время), либо требуют расширенной аппаратной поддержки для достижения максимального качества.

При анализе типичных условий эксплуатации моделируемого летательного аппарата, становится очевидна необходимость в реалистичном воспроизведении трехмерных облаков. Учитывая максимально зарегистрированную высоту вертолета, а также среднюю высоту полета большинства летательных аппаратов подобного типа, можно установить допустимый тип облаков, в смысле их морфологической конфигурации: слоистые и кучевые облака, оставляя другие разновидности (перламутровые, серебристые) за рамками рассмотрения. В ходе анализа алгоритмов, описанных многочисленными исследователями, с целью достижения баланса между реализмом изображения и производительностью, было принято решение об использовании трехмерных облаков, представленных в виде объемных элементов (вокселов), моделируемых в ходе выполнения фиксированного количества итераций процедуры трассировки, подобной рассмотренным ранее процедурам построения ландшафта и определения цвета атмосферы. При этом, обеспечивается учет изменения цвета облаков на каждом шаге алгоритма, в зависимости от объемных характеристик трассируемого слоя. Бесспорным преимуществом процедуры является то, что она выполняется как постпроцесс, используя только данные G-Buffer а для текущего кадра, корректно моделируя слой облаков и значительно упрощая процедуры управления ресурсами, связанные с необходимостью сортировки и представления систем облаков, основанных на использовании частиц.

В соответствии с разработанной математической моделью, функция плотности облака математически представляется в виде суммы нескольких октав трехмерного шума: N oct g(ps t.) = wkNk (р,\к,ак,Ьк,ск, tt), (92) k=0 где wk wk_1; ak ak_l; параметры ak,bk,ck,wk, количество октав N выбираются эмпирически, vk - вектор скорости смещения к -ой октавы (Nod -количество октав шума) во времени. При этом, функция Ык(р,\,ак,Ьк,ск, ) задается одним из следующих способов: Nt(v,y„atA,ctit) = \ , . (93) VF k к к г [_\-[_(Щрак+у Ьк+с \ N($ak+vktt) ik + vjt)bk Выбор одной из моделей шума осуществляется исходя из наблюдаемых особенностей конкретного типа облаков, для получения кучевых облаков используется вторая модель, для получения слоистых - первая. Для формирования отдельных скоплений при моделировании кучевых облаков используется следующее рекуррентное соотношение: billow (94) 0,ШЕІ), Nсk(vJl) = Nk(v,\k,ak,bk,ckJ1) V Q Константа billowопределяет степень влияния суммы предыдущих октав При моделирования перистых и перисто-слоистых облаков кооодинаты вектора р смещаются на значения, определяющиеся той же шумовой функцией: pk=pk_l + Nk_lsk, (95) где s - вектор масштабирования, компоненты которого характеризуют величину искажений по каждой из осей. Приведем основные шаги алгоритма, реализующего модель освещения в пиксельном шейдере:

1. Найти пересечения видового луча с плоскостями визуализируемого объема, представленных соответствующими уравнениями плоскости (в общем случае возможно нахождение луча, соединяющего позицию наблюдателя и трехмерную координату, определяемую соответствующим значением глубины, однако использование дополнительного пересечения хотя бы с одной из плоскостей может уменьшить количество итераций, необходимых для построения указанного объема).

2. Используя найденные ранее значения начальной и конечной точек, полученных в результате пересечения видового луча с указанными выше плоскостями виртуального объема (либо граничные точки, представленные позицией наблюдателя и значением координаты, полученной из G-Buffer а), задаваясь величиной шага трассировки, найдем соответствующий вектор приращения. 3. В цикле, двигаясь по лучу, будем находить очередное значение цвета, смешивая его с полученным на предыдущем шаге по формуле Cf =lerp(C?_l,Ci,ai/jAp) , где накапливаемое значение цвета Cf на текущем шаге, вычисляется посредством линейной интерполяцией (lerp) значения С)_\ , полученного на предыдущем шаге, а также значения цвета Q, вычисленного на текущем шаге, а. - значение прозрачности, а А/? = p.-p. J - расстояние между текущим и предыдущим положениями точки на луче, ju- константа, определяющая удельное значение прозрачности.

При этом, значения цвета и прозрачности на текущем шаге - С и а., соответственно, могут быть получены в ходе следующей последовательности действий: 1. На основании координаты точки p. получить значение плотности ААх(p.,ґ.) путем сложения функций нескольких октав трехмерной шумовой функции. 2. Получить значение прозрачности а используя найденное ранее значение плотности, ai=Nz( pi,ti)-g((p -hcloud)ldcloud), где р - высота точки pг, 138 Kioud = (Anin +Anax)/2 - высота слоя, 8cloud - толщина указанного слоя, g(x) -линейная функция вида: g(x) = ax + b. 3. Найти цвет в данной точке как сумму количества света, полученного от источника Cd, отраженного земной поверхностью Сы и рассеянного освещения Са: С. = lerp(Ca, Cd, directFalloff) + С., где Cambient=lerp(Lsky,Lsun,gr); Lsky,Lsun,gr - цвет неба, Солнца и высотный градиент, соответственно; Cd=Lun-f l-(h,v) ; Іі = (1 +v)/l +v- вектор половинного угла, 1 , v - нормализованные векторы направления на источник освещения и к наблюдателю, / - функция вида /( ) = кхп; Ст = LJ1 - grf ; Lin характеризует количество освещения, отраженного земной поверхностью, к и п,т - некоторые константы, выбираемые эмпирически; directFalloff = f,(gr)xlerp f2(Nz\f3(\-Nz)J4 l-(h,v) , где f. - функции вида (х) = .х"".

При реализации погодных эффектов, возникает необходимость реалистичного отображения таких явления, как дождь и снег Традиционно, существует большое количество техник, использующих системы частиц, моделирующие отдельные капли дождя или хлопья снега. Однако, ввиду того, что указанные эффекты обладают объемной природой, необходимости учета взаимодействия указанных эффектов и окружающих поверхностей (например, намокание участков поверхности), а также унификации средств конфигурирования указанных эффектов был избран процедурный подход, аналогичный примененному для моделирования облаков. Здесь одна и та же шумовая текстура задает как представление отдельных капель, так и внешний вид поверхности, подвергшейся воздействию одного из указанных эффектов.