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


Быстрые булевы операции над полигональной сеткой

Работа №38888

Тип работы

Дипломные работы, ВКР

Предмет

информационные системы

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

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


Введение 4
1 Обзор предметной области 7
1.1 Обзор литературных источников 7
1.2 Двоичное разбиение пространства 13
1.2.1 Выбор разбивающей плоскости 13
1.3 Инструменты и технологии 14
1.3.1 Игровой движок Unity 14
1.3.2 Интегрированная среда разработки Visual Studio 15
2 Реализация инструментария для выполнения булевых операций 16
2.1 Определение возможностей разрабатываемого проекта 16
2.2 Необходимые компоненты игрового движка Unity и их особенности . 16
2.3 Структура создаваемой библиотеки 19
2.3.1 Класс Extensions 19
2.3.2 Структура PostionUVPair 20
2.3.3 Перечисление PolygonType 20
2.3.4 Класс VertexInfo 21
2.3.5 Перечисление BooleanType 21
2.3.6 Класс Node 21
2.3.7 Класс BinarySpacePartitioning 22
2.3.8 Класс BooleanOperation 22
2.4 Вычисление булевых операций 23
2.4.1 Этап инициализации 23
2.4.2 Построение BSP-деревьев 23
2.4.3 Объединение
2.4.4 Разность
2.4.5 Пересечение 27
2.4.6 Заключительный этап 27
2.5 Параллелизация обработки 27
2.6 Результаты работы системы 29
2.6.1 Скорость обработки 30
2.6.2 Недостатки разработанной системы 33
Заключение 35
Список использованных источников 36
Глоссарий 40
Приложение А. Исходный код разработанной библиотеки классов 44


В сфере трёхмерной компьютерной графики при взаимодействии в реальном времени существует проблема изменения полигональных моделей при их соприкосновении с другими полигональными объектами. Как, например, при использовании симуляции взаимодействия ножа и органических тканей, ткани должны менять свою топологическую структуру при касании ножа, что необходимо при создании хирургических симуляторов [1; 2]. Так как в данный момент мало исследований посвящённых обработке взаимодействий объектов в реальном времени, приводящих к изменению их топологии, эта проблема является актуальной.
При условии создания универсального инструмента, модифицирующего объекты логическими операциями в реальном времени, данная проблема будет частично решена.
В данный момент большинство разработок булевых операций для полигональных сеток входят в состав программных обеспечений для 3D- моделирования и решают проблему создания моделей на этапе разработки какого-либо продукта [3; 4]. Проблемы стабильности и точности алгоритмов логических операций над полигональными сетками в таких случаях решаются предоставлением дизайнеру нескольких способов обработки, тем самым пользователь выбирает соотношение между качеством и скоростью выполнения данных действий.
Данный вариант реализован в Blender - открытом программном обеспечении для создания трёхмерной компьютерной графики, где имеется два набора алгоритмов, используемых для вычисления логических операций. Carve использует внешнюю библиотеку Carve, а BMesh использует встроенную библиотеку Blender и даёт лучшие результаты [4].
Для пользователей различных симуляторов и игр, не владеющих базовыми навыками ЗБ-моделирования, такие процессы могут вызывать дополнительные сложности. Так же в таких продуктах изменение полигональных сеток может происходить без участия пользователя, предоставляя лишь результаты вычислений. В таком случае важно сохранение приложением свойств системы реального времени. Так же точность алгоритмов может держаться в пределах малоотличимых человеческим глазом.
В игровых движках возможно создание множества типа продуктов, таких как симуляторы различных сфер деятельности человека, игры любых жанров и видов, демонстрации интерьеров или исторических событий и предметов, визуальные материалы: видео, фильмы, мультфильмы [5]. Большинство объектов в игровых движках представляется в виде полигональных сеток. Возможность обрабатывать логические операции над ними в готовых проектах, созданных в такой среде, не теряя свойств системы реального времени увеличило бы реалистичность создаваемых разработчиками виртуальных сцен.
Объектом исследования является реализация инструмента, позволяющая производить булевы операции в реальном времени над двумя полигональными объектами. Предметами исследования являются методы булевых операций, способные производить вычисления в реальном времени.
Целью исследования является создание библиотеки на языке C# в игровом движке Unity для изменения топологической структуры игровых объектов путём применения логических операций.
Для реализации цели были поставлены следующие задачи:
• оценить существующие методы булевых операций над 3D объектами;
• выбрать наиболее подходящий для визуализации в реальном времени метод логических операций над полигональной сеткой;
• задать такую временную характеристики ПО как дедлайн для обеспечения работы в реальном времени;
• разработать алгоритм с использованием найденного метода;
• создать библиотеку для игрового движка Unity с помощью языка программирования C#;
• протестировать реализацию и дать оценку полученному результату.

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

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

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


В данной работе была выделена проблема изменения полигональных моделей при их соприкосновении с другими полигональными объектами. Так как создание универсального инструмента, позволяющего производить булевы операции над полигональными объектами, частично решает данную проблему, была поставлена цель создания библиотеки на языке C# в игровом движке Unity для изменения топологической структуры игровых объектов путём применения логических операций.
Все поставленные цели были достигнуты, а задачи были успешно выполнены. Были изучены новейшие исследования по изменению полигональных трёхмерных моделей с помощью логических операций над ними, выявлены достоинства и недостатки существующих методов решения выделенной проблемы. В данной работе была создана необходимая библиотека классов, способная выполнять быстрые булевы операции:
• объединения,
• разности,
• пересечения.
При условии дальнейшего развития данной работы возможно увеличение стабильности и скорости работы системы с высокополигональными объектами. Поиск новейших методов триангуляции и последующее их применение для полигонов, полученных при их разбиении с помощью, разделяющей плоскости. Создание генератора трёхмерных моделей для дальнейшего изучения достоинств и недостатков реализованной программы.



1. Kugurakova V., Khafizov M., Akhmetsharipov R., Lushnikov A., Galimova D., Abramov V., Madrigal O.C. Virtual surgery system with realistic visual effects and haptic interaction // ICAROB 2017: Proceedings of the 2017 International Conference on Artificial Life and Robotics, 2017. pp. 86-89.
2. Abramov V.D., Kugurakova V.V., Sultanova R.R., Talanov M.O., Civilskij I.V. Virtual Reality-Based Immersive Simulation for Invasive Surgery Training // European journal of clinical investigation, Vol. 48, 2018. pp. 224-225.
3. Boolean Compound Object [Электронный ресурс] // Autodesk knowledge network: [сайт]. [2018]. URL: https://knowledge.autodesk.com/support/3ds- max/learn-explore/caas/CloudHelp/cloudhelp/2019/ENU/3DSMax-Modeling/ files/GUID-3DBEB7C2-43CC-4B78-9463-5DD448FD921C-htm.html (дата обращения: 08.01.2019).
4. Boolean Modifier [Электронный ресурс] // Blender Manual: [сайт]. URL: https://docs.blender.org/manual/en/latest/modeling/modifiers/generate/ booleans.html (дата обращения: 08.01.2019).
5. Решения [Электронный ресурс] // Unity: [сайт]. [2019]. URL: https:// unity.com/ru/solutions (дата обращения: 04.01.2019).
6. Zhou Q., Grinspun E., Zorin D., Jacobson A. Mesh arrangements for solid geometry // ACM Transactions on Graphics (TOG), Vol. 35, No. 4, 2016. pp. 39-50.
7. Fogel E., Teillaud M. The computational geometry algorithms library CGAL // ACM Communications in Computer Algebra, Vol. 49, No. 1, 2015. pp. 10-12.
8. Alliez P., Fabri A. CGAL - the Computational Geometry Algorithms // ACM SIGGRAPH 2016 Courses, 2016. pp. 1-195.
9. Xiao Z., Chen J., Zheng, Y. Z.J., Wang D. Booleans of triangulated solids by a boundary conforming tetrahedral mesh generation approach // Computers & Graphics, Vol. 59, 2016. pp. 13-27.
10. Charton J., Kim L., Kim Y. Boolean operations between two colliding shells: a robust, exact, and simple method // Journal of Advanced Mechanical Design, Systems, and Manufacturing, Vol. 11, No. 4, 2017.
11. Wang Z.J., Lin X., Fang M.E., Yao B., Peng Y., Guan H., Guo M. Re2l: An efficient output-sensitive algorithm for computing Boolean operations on circular-arc polygons and its applications // Computer-Aided Design, Vol. 83, 2017. pp. 1-14.
12. Jiang X., Peng Q., Cheng X., Dai N., Cheng C., Li D. Efficient booleans algorithms for triangulated meshes of geometric modeling // Computer-Aided Design and Applications, Vol. 13, No. 4, 2016. pp. 419-430.
13. Feito F.R., Ogayar C.J., Segura R.J., Rivero M.L. Fast and accurate evaluation of regularized Boolean operations on triangulated solids // Computer-Aided Design, Vol. 45, No. 3, 2013. pp. 705-716.
14. Landier S. Boolean operations on arbitrary polygonal and polyhedral meshes // Computer-Aided Design, Vol. 85, 2017. pp. 138-153.
15. Barki H., Guennebaud G., Foufou S. Exact, robust, and efficient regularized Booleans on general 3D meshes // Computers & Mathematics with Applications, Vol. 70, No. 6, 2015. pp. 1235-1254.
16. Douze M., Franco J.S., Raffin B. QuickCSG: Arbitrary and faster boolean combinations of n solids // Inria-Research Centre Grenoble-Rhone-Alpes,
2015. pp. 1-41.
17. Schmidt R., Brochu T. Adaptive mesh booleans // arXiv preprint arXiv:1605.01760., 2016. pp. 1-10.
18. Hao J., Sun J., Chen Y., Cai Q., Tan L. Optimal Reliable Point-in-Polygon Test and Differential Coding Boolean Operations on Polygons // Symmetry, Vol. 10, No. 10, 2018. pp. 477-502.
19. Bernstein G., Fussell D. Fast, exact, linear booleans // Computer Graphics Forum, Vol. 28, No. 5, 2009. pp. 1269-1278.
20. 3D Theory - Binary Space Partitioning (BSP) tree [Электронный ресурс] // EuclideanSpace - Mathematics and Computing: [сайт]. [2017]. URL: https:// euclideanspace.com/threed/solidmodel/spatialdecomposition/bsp/index.htm (дата обращения: 14.05.2019).
21. Ranta-Eskola S., Olofsson E. Binary space partioning trees and polygon removal in real time 3d rendering // Uppsala master’s theses in computing science, 2001.
22. Naylor B.F. A Tutorial on Binary Space Partitioning Trees, 2004.
23. Мобильные игры [Электронный ресурс] // Unity: [сайт]. [2019]. URL: https://unity.com/ru/solutions/mobile (дата обращения: 17.05.2019).
24. Расширение редактора Unity через Editor Window, Scriptable Object и Custom Editor [Электронный ресурс] // habr: [сайт]. [2018]. URL: https:// habr.com/ru/post/431856/ (дата обращения: 17.04.2019).
25. Scripting API: Editor [Электронный ресурс] // Unity: [сайт]. [2019]. URL: https://docs.unity3d.com/ScriptReference/Editor.html (дата обращения:
15.04.2019) .
26. Schiavullo R. What Game Engine Should I Use?(Unreal Engine 4, Cry Engine V, Unity 5, Amazon Lumberyard, Frostbite, Source) // Virtual Reality, Vol. 5,
2018. pp. 1-11.
27. Руководство Unity [Электронный ресурс] // Unity: [сайт]. [2018]. URL: https://docs.unity3d.com (дата обращения: 12.11.2018).
28. Visual Studio Community [Электронный ресурс] // Microsoft: [сайт]. [2019]. URL: https://visualstudio.microsoft.com/ru/vs/community (дата обращения:
08.05.2019) .
29. Ritchie P. Practical Microsoft Visual Studio 2015. Berkeley: Apress, 2016. 209
pp.
30. Visual Studio 2017 version 15.7 Release Notes [Электронный ресурс] //
Microsoft Docs: [сайт]. [2018]. URL: https://docs.microsoft.com/en-us/ visualstudio/releasenotes/vs2017-relnotes-v15.7 (дата обращения:
25.09.2018) .
31. Jansson E.S.V. Performance Effect of Flyweight in Soft Real-Time Applications // eriksvjansson, October 2015. pp. 1-8.
32. Scripting API: Mesh [Электронный ресурс] // Unity: [сайт]. [2019]. URL: https://docs.unity3d.com/ScriptReference/Mesh.html (дата обращения:
02.05.2019) .
33. Topology [Электронный ресурс] // Polycount: [сайт]. [2018]. URL: http:// wiki.polycount.com/wiki/Topology (дата обращения: 02.12.2018).

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




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