Научная статья на тему 'РЕАЛИЗАЦИЯ ПРОЦЕССОВ СОЗДАНИЯ 3D-АНИМАЦИЙ ДЛЯ ЦИФРОВЫХ МАКЕТОВ ИЗДЕЛИЙ СРЕДСТВАМИ OPEN CASCADE'

РЕАЛИЗАЦИЯ ПРОЦЕССОВ СОЗДАНИЯ 3D-АНИМАЦИЙ ДЛЯ ЦИФРОВЫХ МАКЕТОВ ИЗДЕЛИЙ СРЕДСТВАМИ OPEN CASCADE Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
75
8
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
3D-МОДЕЛИРОВАНИЕ / АНИМАЦИЯ / ЦИФРОВЫЕ МАКЕТЫ ИЗДЕЛИЙ / OPEN CASCADE / QT / РЕНДЕРИНГ / СИНХРОНИЗАЦИЯ / ИНТЕГРАЦИЯ / ВИЗУАЛИЗАЦИЯ / АЛГОРИТМ РЕНДЕРИНГА / ОПТИМИЗАЦИЯ ПРОИЗВОДИТЕЛЬНОСТИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ахлестин А.И., Юров А.Н., Чижов М.И.

3D-моделирование и анимация необходимы в современных производственных процессах, особенно при создании цифровых макетов изделий. Однако, несмотря на обширные возможности программного обеспечения Open Cascade в области 3D-моделирования, в функционале геометрического ядра отсутствует создание анимации. Рассмотрены методики, позволяющие реализовать процессы создания 3D-анимаций с помощью вспомогательного программного обеспечения - Qt. Создание анимации основано на необходимости постоянного конечного представления объекта. Это означает, что каждое изменение на сцене - будь то перемещение объекта или изменение его свойств - требует немедленного отображения на экране. Это задача требует значительной вычислительной мощности и оптимизации алгоритмов рендеринга. Важным аспектом процесса создания 3D-анимаций для цифровых макетов изделий является синхронизация работы между Open Cascade и Qt. Указанные инструменты были выбраны из-за их гибкости и функциональности. Однако их взаимодействие требует детального контроля и управления. Приводятся примеры сложностей, которые возникли в ходе работы, и предлагаются возможные пути их решения. Это включает в себя вопросы, связанные с совместимостью данных между двумя системами, различия в методах обработки 3D-моделей, а также сложности в визуализации и создании плавной анимации. Также подчеркивается значимость реализации стабильного и эффективного алгоритма конечного представления изображений цифровых моделей, что критично для достижения реалистичного и плавного воспроизведения анимации. Рассматриваются различные подходы к решению этой проблемы, включая использование буферизации и методов оптимизации производительности. Реализация выполнена для операционных систем Windows с 64 разрядной архитектурой

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

IMPLEMENTATION OF 3D ANIMATION CREATION PROCESSES FOR DIGITAL PRODUCT LAYOUTS BY MEANS OF OPENCASCADE

3D modeling and animation are necessary in modern production processes, especially when creating digital product layouts. However, despite the extensive capabilities of the Open Cascade software in the field of 3D modeling, there is no animation creation in the functionality of the geometric core. The paper considers techniques that allow to implement the processes of creating 3D animations using the auxiliary software - Qt. The creation of animation is based on the need for a constant final representation of the object. This means that every change in the scene- whether it's moving an object or changing its properties-requires immediate display on the screen. This is a task that requires significant computing power and optimization of rendering algorithms. Additionally, an important aspect of the process of creating 3D animations for digital product layouts is the synchronization of work between Open Cascade and Qt. These tools were chosen for their flexibility and functionality. However, their interaction requires detailed control and management.The article provides examples of difficulties that have arisen in the course of work, and suggests possible ways to solve them. This includes issues related to data compatibility between the two systems, differences in 3D model processing methods, as well as difficulties in visualizing and creating smooth animations. The importance of implementing a stable and efficient algorithm for the final representation of digital model images is also emphasized, which is critical for achieving realistic and smooth animation reproduction. The article discusses various approaches to solving this problem, including the use of buffering and performance optimization methods. The implementation is made for Windows operating systems with 64-bit architecture

Текст научной работы на тему «РЕАЛИЗАЦИЯ ПРОЦЕССОВ СОЗДАНИЯ 3D-АНИМАЦИЙ ДЛЯ ЦИФРОВЫХ МАКЕТОВ ИЗДЕЛИЙ СРЕДСТВАМИ OPEN CASCADE»

DOI 10.36622/VSTU.2023.19.3.008 УДК 544.42

РЕАЛИЗАЦИЯ ПРОЦЕССОВ СОЗДАНИЯ 3Б-АНИМАЦИЙ ДЛЯ ЦИФРОВЫХ МАКЕТОВ ИЗДЕЛИЙ СРЕДСТВАМИ OPEN CASCADE

А.И. Ахлестин, А.Н. Юров, М.И. Чижов

Воронежский государственный технический университет, г. Воронеж, Россия

Аннотация: 3Б-моделирование и анимация необходимы в современных производственных процессах, особенно при создании цифровых макетов изделий. Однако, несмотря на обширные возможности программного обеспечения Open Cascade в области 3D-моделирования, в функционале геометрического ядра отсутствует создание анимации. Рассмотрены методики, позволяющие реализовать процессы создания 3D-анимаций с помощью вспомогательного программного обеспечения - Qt. Создание анимации основано на необходимости постоянного конечного представления объекта. Это означает, что каждое изменение на сцене - будь то перемещение объекта или изменение его свойств - требует немедленного отображения на экране. Это задача требует значительной вычислительной мощности и оптимизации алгоритмов рендеринга. Важным аспектом процесса создания ЗБ-анимаций для цифровых макетов изделий является синхронизация работы между Open Cascade и Qt. Указанные инструменты были выбраны из-за их гибкости и функциональности. Однако их взаимодействие требует детального контроля и управления. Приводятся примеры сложностей, которые возникли в ходе работы, и предлагаются возможные пути их решения. Это включает в себя вопросы, связанные с совместимостью данных между двумя системами, различия в методах обработки 3D-моделей, а также сложности в визуализации и создании плавной анимации. Также подчеркивается значимость реализации стабильного и эффективного алгоритма конечного представления изображений цифровых моделей, что критично для достижения реалистичного и плавного воспроизведения анимации. Рассматриваются различные подходы к решению этой проблемы, включая использование буферизации и методов оптимизации производительности. Реализация выполнена для операционных систем Windows с 64 разрядной архитектурой

Ключевые слова: 3Б-моделирование, анимация, цифровые макеты изделий, Open Cascade, Qt, рендеринг, синхронизация, интеграция, визуализация, алгоритм рендеринга, оптимизация производительности

Введение

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

Анимация в ЗБ-моделировании дает возможность визуализировать процессы перемещения и обеспечить функциональность моделируемого изделия, что может быть критически важно во многих областях I применения, например, в машиностроении, архитектуре, медицинской сфере при изготовлении подвижных протезов и т. д. Вследствие этого, проблема отсутствия инструментов для создания анимаций в Open Cascade требует своего решения.

В данной статье предлагается инноваци-

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

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

В целом, использование Open Cascade в сочетании с Qt для создания ЗБ-анимаций открывает широкие возможности для применения цифровых макетов изделий. Это не только упрощает процесс демонстрации работы изделий, но и позволяет создавать более точные и информативные модели.

© Ахлестин А.И., Юров А.Н., Чижов М.И., 202З

Инструменты геометрического ядра для проектного решения

Для создания анимации в функции использован следующий набор классов, входящих в состав Open Cascade и Qt, которые облегчают процесс анимации объектов.

Класс AIS_Shape представляет геометрическую форму для отображения и взаимодействия. Объекты типа AIS_Shape используются для представления отображаемых объектов в контексте визуализации [1].

Класс gp_Vec представляет трехмерный вектор и используется для работы с координатами объектов. В реализации объекты gp_Vec используются для определения начального и конечного положений объектов во время анимации [2].

Класс gp_Trsf представляет преобразование в трехмерном пространстве. gp_Trsf используется для обновления положения объекта во время анимации [3].

Класс QTimer предоставляет функционал для управления временными интервалами и сигналами. Он используется для запуска анимации и обновления положения объектов с определенным временным интервалом [4].

Классы std::random device, std::mt19937

[5] и std::uniform_real_distribution используются для генерации случайных чисел. Они применяются для генерации случайной точки на поверхности сферы, куда перемещается каждый объект.

Проектирование модуля

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

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

Схема [6] представления визуальных объектов при помощи классов AIS_Shape и AIS_InteractiveObject, изображена на рис. 1.

Рис. 1. Представление визуальных объектов

Для создания эффекта разборки было решено перемещать каждую деталь по случайным направлениям. Для этого был использован генератор случайных чисел из стандартной библиотеки C++. Генератор был инициализирован с использованием аппаратного источника случайности, и для каждой детали были генерированы случайные координаты точки на поверхности сферы. [7]

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

Рис. 2. Визуальное представление случайных точек

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

Для обновления позиции каждой детали во время анимации использовался класс gp_Trsf, представляющий трехмерное преобразование. Класс AIS_Shape содержит методы для работы с локальным преобразованием объекта, и с использованием данных методов позиция каждой детали обновлялась на каждом

шаге анимации.

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

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

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

Для корректного отображения анимации в Open Cascade с использованием Qt был внедрен потоковый рендеринг. Потоковый рендеринг позволяет выполнять рендеринг сцены в отдельном потоке, что предотвращает блокировку пользовательского интерфейса и обеспечивает более плавную и отзывчивую анимацию.

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

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

Упрощенная схема всей функции представлена на рис. 3.

На рис. 4 можно увидеть сборку до применения алгоритма анимации, а на рис. 5 - после.

Создание массивов для хранения объектов Запуск таймера

Добавление отображаемых объектов в массивы Создание условий для проверки перемощения в теле таймера

Создание генератора случайных чисел Создание таймера

Генерация случайных точек на поверхности сферы Установка начальных и конечных координат

Рис. 3. Схема алгоритма

Заключение

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

С помощью данной функции и интеграции Open Cascade с платформой Qt, пользователи получают широкие возможности для эффективного и гибкого создания 3D-анимаций, упрощая процесс демонстрации работы изделий и создавая более точные и информативные модели.

Литература

1. AIS_Shape Class Reference // Open CASCADE Technolgy URL: https://dev.opencascade.org/doc/refman/ht ml/class_a_i_s_shape.html (дата обращения: 15.05.2023).

2. gp_Vec Class Reference // Open CASCADE Technology URL: https://dev.opencascade.org/doc/refman/html/class gp_vec.html (дата обращения: 15.05.2023).

3. gp_Trsf Class Reference // Open CASCADE Technology URL: https://dev.opencascade.org/doc/refman/html/class gp_trsf.html (дата обращения: 15.05.2023).

4. QTimer Class Reference // QT Documentation URL: https://doc.qt.io/qt-6/qtimer.html (дата обращения: 15.05.2023).

5. Matsumoto, M., Kurita, Y. Twisted GFSR Generators // Research Institute for Mathematical Sciences Kyoto University. - 1992. - С. 179-194.

6. AIS_InteractiveContext Class Reference // Open CASCADE Technology URL: https://dev.opencascade.org/doc/ref man/html/class_a_i_s___interactive_context.html (дата обращения: 15.05.2023).

7. Копытов Н.П. Равномерное распределение точек на поверхностях и его применение в исследованиях структурно-неоднородных сред: дис. кандидата физ. мат. наук наук: 05.13.18. Екатеринбург, 2015. 121 с.

Поступила 19.05.2023; принята к публикации 21.06.2023 55

Рис. 4. Целевая сборка

Рис. 5. Целевая сборка после применения анимации разборки

Информация об авторах

Ахлестин Андрей Игоревич - студент, Воронежский государственный технический университет (394006, Россия, г. Воронеж, ул. 20-летия Октября, 84), e-mail: ahlestin.and@yandex.ru, тел. +7(953)611-57-79

Юров Алексей Николаевич - канд. техн. наук, доцент, Воронежский государственный технический университет (394006, Россия, г. Воронеж, ул. 20-летия Октября, 84), e-mail: kitp@vorstu.ru, тел. +7(951)548-63-12

Чижов Михаил Иванович - д-р техн. наук, профессор, Воронежский государственный технический университет (394006, Россия, г. Воронеж, ул. 20-летия Октября, 84), e-mail: kitp@vorstu.ru, тел. +7(910)240-87-65

IMPLEMENTATION OF 3D ANIMATION CREATION PROCESSES FOR DIGITAL PRODUCT LAYOUTS BY MEANS OF OPENCASCADE

A.I. Akhlestin, A.N. Yurov, M.I. Chizhov

Voronezh State Technical University, Voronezh, Russia

Abstract: 3D modeling and animation are necessary in modern production processes, especially when creating digital product layouts. However, despite the extensive capabilities of the Open Cascade software in the field of 3D modeling, there is no animation creation in the functionality of the geometric core. The paper considers techniques that allow to implement the processes of creating 3D animations using the auxiliary software - Qt. The creation of animation is based on the need for a constant final representation of the object. This means that every change in the scene- whether it's moving an object or changing its properties-requires immediate display on the screen. This is a task that requires significant computing power and optimization of rendering algorithms. Additionally, an important aspect of the process of creating 3D animations for digital product layouts is the synchronization of work between Open Cascade and Qt. These tools were chosen for their flexibility and functionality. However, their interaction requires detailed control and management.The article provides examples of difficulties that have arisen in the course of work, and suggests possible ways to solve them. This includes issues related to data compatibility between the two systems, differences in 3D model processing methods, as well as difficulties in visualizing and creating smooth animations. The importance of implementing a stable and efficient algorithm for the final representation of digital model images is also emphasized, which is critical for achieving realistic and smooth animation reproduction. The article discusses various approaches to solving this problem, including the use of buffering and performance optimization methods. The implementation is made for Windows operating systems with 64-bit architecture

Key words: 3D modeling, animation, digital product layouts, Open Cascade, Qt, rendering, synchronization, integration, visualization, rendering algorithm, performance optimization

References

1. "AIS_Shape Class Reference", Open CASCADE Technology, https://dev.opencascade.org/doc/refman/html/class_a_i_s_shape.html (accessed: 15.05.2023).

2. "gp_Vec Class Reference", Open CASCADE Technology, https://dev.opencascade.org/doc/refman/html/classgp_vec.html (accessed: 05/15/2023).

3. "gp_Trsf Class Reference", Open CASCADE Technology, https://dev.opencascade.org/doc/refman/html/classgp_trsf.html (accessed: 15.05.2023).

4. QTimer Class Reference // QT Documentation URL: https://doc.qt.io/qt-6/qtimer.html (accessed: 05/15/2023).

5. Matsumoto M., Kurita Y. "Twisted GFSR Generators", Research Institute for Mathematical Sciences Kyoto University, 1992, pp. 179-194.

6. "AIS_InteractiveContext Class Reference", Open CASCADE Technology, available at: https://dev.opencascade.org/doc/refman/html/class_a_i_s_interactive_context.html (accessed: 15.05.2023).

7. Kopytov N.P. "Uniform distribution of points on surfaces and its application in studies of structurally inhomogeneous media" ("Ravnomernoye raspredeleniye tochek na poverkhnostyakh i yego primeneniye v issledovaniyakh strukturno-neodnorodnykh sred"): Cand. of Physical and Math. Sci. diss., 05.13.18, Yekaterinburg, 2015, 121 p.

Submitted 19.05.2023; revised 21.06.2023

Information about the authors

Andrey I. Akhlestin - Student, Voronezh State Technical University (84 20-letiya Oktyabrya str., Voronezh 394006, Russia), e-mail: ahlestin.and@yandex.ru , tel.: +7(953)611-57-79

Alexey N. Yurov - Candidate of Technical Sciences, Associate Professor, Voronezh State Technical University (84 20-letiya Oktyabrya str., Voronezh 394006, Russia), e-mail: kitp@vorstu.ru , tel.: +7(951)548-63-12

Mikhail I Chizhov - Doctor of Technical Sciences, Professor, Voronezh State Technical University (84 20-letiya Oktyabrya str., Voronezh 394006, Russia), e-mail: kitp@vorstu.ru , tel.: +7(910)240-87-65

available at: available at: available at:

i Надоели баннеры? Вы всегда можете отключить рекламу.