Тип работы:
Предмет:
Язык работы:


Визуализация качки судна в реальном времени на основе GPGPU вычислений

Работа №125968

Тип работы

Бакалаврская работа

Предмет

программирование

Объем работы27
Год сдачи2019
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
31
Не подходит работа?

Узнай цену на написание


1 Введение 3
1.1 Виртуальный полигон 3
1.2 Структура 5
2 Постановка задачи 7
3 Обзор литературы 8
4 Визуализация 9
4.1 OpenGL 9
4.2 Полигон 11
5 Расчет смоченной поверхности 15
5.1 Смоченная поверхность 15
5.2 OpenCL и OpenGL sharing 16
5.3 Тесты 17
5.4 Проблемы при реализации 18
6 Движитель 21
7 Вывод 23
8 Заключение 24
Список литературы 25

Одним из ключевых этапов процесса проектирования судна является мо­делирование его поведения на взволнованной поверхности моря, выполняемое с учетом ожидаемых эксплуатационных характеристик. Подобный процесс мо­делирования может быть выполнен в реальных условиях на виртуальном поли­гоне, что позволяет в реальном времени отслеживать влияние внешних воздей­ствий на ходовые характеристики судна с помощью датчиков, установленных на борту. Визуализация результатов такого процесса моделирования позволя­ет исследователю правильно и целостно воспринимать происходящие события, а также прогнозировать и своевременно реагировать на возникающие опасные ситуации. Такой подход позволяет сэкономить огромное количество средств, так как моделирование качки в опытных бассейнах стоит больших денег и проводится не с полноразмерной версией судна, а с его уменьшенной моделью. Компьютерная программа позволяет проводить симуляцию в реальном време­ни, что сэкономит большие деньги при проектировании.
1.1. Виртуальный полигон
Данная исследовательская работа проводится в рамках проекта вирту­ального полигона. Целью этого проекта является создание системы поддерж­ки принятия решений для моделирования, прогнозирования и предотвращения опасных физических явлений, которые могут возникнуть на судне в море. Си­туации включают
• затопление отсеков,
• пожар в отсеках,
• потеря остойчивости судна,
• волны большой амплитуды
• и т.д.
Наша задача в рамках этого проекта — разработать программу, кото­рая имитирует океанские волны и движение судов по морю. Поскольку в рам­ках проекта разрабатывается система принятия решений, одним из требований является то, что мы должны делать все в режиме реального времени и предо­ставлять оператору визуализацию и графический интерфейс пользователя. Это основная задача для нашей команды, потому что подобные программы обычно выполняют вычисления в неинтерактивном пакетном режиме. Данный подход очень удобен для исследователя, так как предоставляет ему удобный и интуи­тивно понятный интерфейс для симуляции различных явлений.
Стоит отметить, что для работы подобных программ зачастую требуется мощный вычислительный кластер или суперкомпьютер, так как эти програм­мы содержат ресурсоемкие вычисления. В этом случае возникают проблемы, так как для расчетов необходимо получить доступ к вычислительным ресур­сам, что зачастую вызывает множество трудностей при оформлении необходи­мых бумаг. Чтобы избежать всего этого и сделать программу более доступной, в виртуальном полигоне для вычислений используется GPU, если это возмож­но. Так как GPU используется многими исследователями для визуализации и есть во многих современных компьютерах, это облегчает работу и доступность использования данной программы.
Другая ключевая особенность — реалистичные морские объекты. Они предоставляются в формате IGES, который является независимым от произво­дителя стандартом для обмена объектными моделями между системами CAD.
Это позволяет подгружать множество различных судов без перевода их в спе­циальный формат. Данный формат описывает суда аналитически, что позволя­ет получать точные модели. В качестве альтернативы мы также используем соб­ственный дискретный формат VSL [1], который имеет несколько преимуществ. Во-первых, для него намного быстрее проводить триангуляцию, необходимую для загрузки судна, во-вторых, данный формат намного проще редактировать. Но у дискретного формата есть и недостаток, который выражается в том, что им невозможно точно описать наше судно.
1.2. Структура
Исходный код разделен на несколько модулей (исполняемые файлы и об­щие библиотеки) для оптимизации времени сборки. Структура проекта изобра­жена на рисунке 1. Мы отказались от использования полнофункционального игрового движка. Он бы мог значительно упростить процесс разработки, но также он бы заметно уменьшил производительность программы и её гибкость. Вместо этого мы использовали библиотеку Magnum [2], которая предоставля­ет легкий объектно-ориентированный интерфейс для OpenGL [3] и библиотеку ImGUI для создания графического интерфейса пользователя. Для вычислений на GPU используется OpenCL [4].
Для работы используются многочисленные варианты корпусов судов, ко­торые собраны в формате VSL в базе данных Vessel Санкт-Петербургского государственного университета. Эта база поддерживается с помощью паке­та Hull [5], которая позволяет редактировать корпуса корабля и вычисляет определенные гидростатические характеристики. Кроме того, мы использовали OpenCASCADE [6] для импорта файлов IGES и их преобразования в вершины и грани (полигоны).
Рис. 1: Структура проекта.
Помимо этого в проекте используется Blitz+—+ [7] для многомерных мас­сивов. Для FFT мы используем коды от Takuya OOURA [8] на CPU и на GPU от Василия Волкова [9].

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


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


[1] Bogdanov Alexander, Khramushin Vasily. Vessel: Blueprints for the anal­ysis of hydrostatic characteristics, stability and propulsion of the ship (in Russian). — 2015. — Access mode: http://www1.fips.ru/fips_servl/ fips_servlet?DB=EVM&DocNumber=2015621368&TypeFile=html.
[2] Magnum Engine. — Access mode: https://magnum.graphics/.
[3] OpenGL - The Industry Standard for High Performance Graphics. — Ac­cess mode: https://www.opengl.org/.
[4] OpenCL - The Open Standard for Parallel Programming of Heterogeneous Systems. — Access mode: https://www.khronos.org/opencl/.
[5] Khramushin Vasily. Analytic ship hull shape construction, wave re­sistance calculations, theoretical blueprint feature curve calculations, and ship stability diagrams (in Russian). — 2010. — Access mode: http://www1.fips.ru/fips_servl/fips_servlet?DB=EVM&DocNumber= 2010615849&TypeFile=html.
[6] OpenCASCADE. — Access mode: https://www.opencascade.com/.
[7] Veldhuizen Todd L. Blitz+—+: The Library that Thinks it is a Compiler // Advances in Software Tools for Scientific Computing / Ed. by Hans Pet­ter Langtangen, Are Magnus Bruaset, Ewald Quak. — Berlin, Heidelberg : Springer Berlin Heidelberg, 2000. — P. 57-87.
[8] Ooura Takuya. General Purpose FFT (Fast Fourier/Cosine/Sine Trans­form) Package. — 2006. — Access mode: http://www.kurims.kyoto-u. ac.jp/~ooura/fft.html.
[9] Volkov Vasily, Kazian Brian. Fitting FFT onto the G80 architecture // University of California, Berkeley. — 2008. — Vol. 40.
[10] Real-time spherical panorama image stitching using opencl / Wei- Sheng Liao, Tung-Ju Hsieh, Wen-Yew Liang et al. // Proceedings of the International Conference on Computer Graphics and Virtual Reality (CGVR). — 2011. — P. 1.
[11] Ukidave Yash, Gong Xiang, Kaeli David. Performance evaluation and optimization mechanisms for inter-operable graphics and computation on GPUs // Proceedings of Workshop on General Purpose Processing Using GPUs / ACM. — 2014. — P. 37.
[12] Matusiak J. Dynamics of a Rigid Ship, Aalto University Publication Series Science+ Technology // Unigrafia Oy, Helsinki, Finland. — 2013.
[13] Удачин ВС, Соловьев ВБ. Судовождение на внутренних водных путях // М.: Транспорт. — 1990.
[14] What is Unreal Engine 4. — Access mode: https://www.unrealengine. com/en-US/.
[15] Phong Bui Tuong. Illumination for computer generated pictures // Commu­nications of the ACM. — 1975. — Vol. 18, no. 6. — P. 311-317.
...


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ