Главная
АИ #6 (241)
Статьи журнала АИ #6 (241)
Подходы к оптимизации рендеринга сложных анимаций в веб-интерфейсах

10.5281/zenodo.14870114

Подходы к оптимизации рендеринга сложных анимаций в веб-интерфейсах

Рубрика

Информационные технологии

Ключевые слова

оптимизация рендеринга
сложные анимации
WebGL
ReactJS
нейронные сети
Image-Based Rendering
производительность интерфейсов
GPU-ускорение
DOM-оптимизация
асинхронные вычисления
Gaussian Splatting

Аннотация статьи

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

Методология работы включает проведение анализа ранее опубликованных по данной теме научных статей других исследователей. Результаты показывают, что сочетание различных методов, например, предварительная интерполяция ключевых кадров, динамическое управление частотой кадров, использование GPU для рендеринга сложных эффектов, позволяет снизить задержки, повысить плавность анимаций. Технологии ReactJS, D3 обеспечивают оптимизацию работы с DOM-деревом, нейросетевые алгоритмы открывают возможности для обработки объемных сцен в реальном времени.

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

Текст статьи

Введение

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

Источники, в которых рассматриваются особенности оптимизации рендеринга анимаций в веб-интерфейсах, охватывают различные методы, от традиционных алгоритмов до применения нейросетевых технологий. В связи с чем работы в этой области возможно условно разделить на три направления: оптимизация алгоритмов и веб-браузеров, использование WebGL, ReactJS, D3, применение нейросетевых методов, объемного рендеринга.

В области оптимизации алгоритмов и технологий веб-браузеров научная работа, авторами которой являются Brekalo S., Pap K., Trstenjak B. [1, с. 14049-14055] посвящена рассмотрению алгоритмов, направленных на улучшение рендеринга в браузерах. В работе уделяется внимание использованию аппаратного ускорения, управлению потоками данных. Авторы подчеркивают необходимость применения адаптивных алгоритмов изменения уровня детализации, а также систем предварительной загрузки данных для уменьшения задержек при отображении сцены.

Оптимизация рендеринга с помощью WebGL, ReactJS, D3, описанная авторами Wang Z., Yang L. [2, с. 1360-1365] исследует способы оптимизации WebGL для работы с крупными сценами, акцентируя внимание на применении шейдеров для управления геометрической сложностью, распределении вычислений между процессором и графическим процессором. В работе Chebanyuk O., Mushynskyi M. [3, с. 157-177] рассматриваются методы оптимизации игровых движков, включая упрощение геометрии, использование фреймворков для кэширования текстур.

В публикации Pavić F., Brkić L. [7, с. 1753-1758], Chub I., Demchenko K. [8, с. 15-21] уделяется внимание работе с экосистемами ReactJS и D3, управлению состоянием компонентов, оптимизации структуры DOM. Меморизация, виртуальный DOM признаются методами для повышения производительности веб-приложений, использующих графику с интерактивными элементами.

Современные разработки включают нейросетевые методы для улучшения рендеринга, например, Büsching M. et al. [5, с. 8016-8026] предложили систему FlowIBR, которая оптимизирует динамическую визуализацию сцен с помощью предварительного обучения, методов Image-Based Rendering. Lombardi S. et al. [6, с. 1-13] представили модель смешивания объемных примитивов, способствующую снижению вычислительной нагрузки при обработке объемных данных.

Работа Tao Y., Wang R. [4, с. 32-47] сочетает алгоритмы трассировки лучей с распределенными вычислениями, что способствует сокращению времени отклика при рендеринге анимаций. Niemeyer M. et al. [9, с. 1-18] предлагают метод Gaussian Splatting, который повышает точность, скорость рендеринга через использование радиансных полей. Zhao F. et al. [10, с. 1-17] предлагают метод моделирования и рендеринга анимаций с помощью нейросетей для обработки 3D-мешей.

В свою очередь источник [11], информация, содержащаяся в котором размещена на сайте MDM web docs осуществляется сравнение margin против transform в реализации анимаций в веб-интерфейсах.

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

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

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

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

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

Результаты исследований

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

При проектировании анимаций следует учитывать несколько факторов. Сложные анимации способны оказывать влияние на производительность устройства, особенно при ограниченных ресурсах. Разработчики применяют различные методы для снижения нагрузки на систему, включая использование аппаратного ускорения, ограничение числа анимированных объектов, контроль частоты кадров [1, с. 14049-14055].

Анимации в веб-интерфейсах возможно классифицировать по их воздействию на архитектуру браузерного рендеринга, ниже на рисунке 1 будут отражены категории анимаций.

image.png

Рис. 1. Категории анимаций в веб-интерфейсах [1, с. 14049-14055; 3, с. 157-177; 8, с. 15-21]

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

  1. Изменения в DOM, затрагивающие геометрические параметры элементов, запускают перерасчёт компоновки. Что вызывает потери производительности при наличии сложной структуры страницы с множеством дочерних элементов. Например, анимация таких параметров, как ширина, высота или отступы, способна инициировать перерасчёт всей иерархии. Чтобы снизить затраты, рекомендуется работать с такими свойствами, которые влияют лишь на композитные слои, например, трансформациями, прозрачностью.
  2. Изменения визуальных атрибутов элементов, таких как цвет, тени, текстуры, требуют их повторной отрисовки. Эти процессы становятся затратными при обновлении больших областей экрана, например фонов с градиентами, крупных изображений. В таких случаях перерисовка существенно влияет на производительность.
  3. При использовании аппаратного ускорения для обработки композитных слоёв графический процессор сталкивается с перегрузкой, если обновляется большое количество слоёв одновременно. Это приводит к снижению общей производительности при одновременной обработке нескольких слоёв [7, с. 1753-1758; 8, с. 15-21].

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

image.png

Рис. 2. Методы оптимизации рендеринга анимаций в веб-интерфейсах [2, с. 1360-1365; 3, с. 157-177; 5, с. 8016-8026]

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

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

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

Динамическое управление частотой кадров позволяет адаптировать анимацию к возможностям системы. Этот метод полезен в случае пиковых вычислительных нагрузок, например, при рендеринге большого числа движущихся объектов. Это помогает поддерживать плавность анимации, не перегружая систему [5, с. 8016-8026; 6, с. 1-13]. Пример реализации:

image.png

Рис. 3

Частые изменения структуры DOM ведут к перерасчёту макета, перерисовке элементов, что отрицательно сказывается на производительности. Процесс улучшения рендеринга анимаций в веб-интерфейсах требует использования современных инструментов, обеспечивающих плавность работы и высокую производительность. Для работы с анимациями применяют GPU-акселерацию. Графический процессор эффективно обрабатывает анимации, связанные с преобразованием элементов, прозрачностью. Свойства, такие как transform, opacity, передаются на графический процессор, исключая перерасчёт макета. CSS-свойство will-change позволяет браузеру заранее оптимизировать обработку элементов, готовя их для рендеринга на графическом уровне.

Для минимизации перерасчётов макета важно использовать такие свойства, как translate, scale, которые воздействуют только на композицию. В то время как параметры, такие как width, height, top, left, требуют перерасчёта страницы, что увеличивает нагрузку.

Для уменьшения перерисовок стоит упрощать графические эффекты, такие как тени, градиенты. Техники, как clip-path, overflow: hidden, ограничивают области видимости элементов, находящихся за пределами экрана, исключая ненужные вычисления [2, с. 1360-1365; 3, с. 157-177].

Для управления изменениями DOM, стилей используют DocumentFragment, что минимизирует операции с DOM. Вместо инлайновых стилей предпочтительно менять классы, что даёт возможность браузеру эффективно пересчитывать стили. Для синхронизации анимаций с частотой обновления экрана используют requestAnimationFrame, который предотвращает пропуски кадров.

API, такие, как Web Animations API, позволяют создавать анимации с минимальной нагрузкой на систему, используя возможности браузера, что даёт преимущество в производительности по сравнению с традиционными JavaScript, CSS-анимациями. Intersection Observer запускает анимации, когда элемент становится видимым в пределах экрана, экономя ресурсы на элементах, которые не видны.

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

Динамическая адаптация частоты кадров помогает снизить нагрузку на систему. Для второстепенных эффектов частоту можно уменьшить до 30 кадров в секунду или ниже, оставив 60 FPS для ключевых анимаций. requestIdleCallback выполняет фоновые задачи без влияния на главные анимации, что способствует улучшению производительности [4, с. 32-47].

Для тестирования и профилирования применяют инструменты, такие как вкладка Performance в DevTools, которая помогает выявить узкие места. Lighthouse предоставляет отчёты с рекомендациями, а FPS Overlay отслеживает плавность рендеринга в реальном времени. Эти меры дают возможность выявить области, требующие доработки [9, с. 1-18; 10, с. 1-17].

Теперь, когда были рассмотрены основные аспекты с анимациями в веб-интерфейсах, стоит рассмотреть практический пример. В данном примере будет рассмотрен процесс использование инструмента Waterfall, который позволяет наглядно выявить различия между анимациями с применением свойства margin и transform, а также как эти различия влияют на производительность и визуальное восприятие анимации. Ниже на рисунке 4 представлен экран анимации, который обладает двумя контроллерами: кнопка «start/stop» для запуска и остановки анимации и радиокнопки для выбора свойства, с помощью которого происходит анимация: margin, или transform.

image.png

Рис. 4. Экран анимации, который обладает двумя контроллерами: кнопка «start/stop»

Далее рассмотрим этапы рендеринга на временной шкале (Waterfall) (рис. 5.)

image.png

Рис. 5. Этапы рендеринга на временной шкале (Waterfall)

На рисунке 4 показаны сжатые этапы рендеринга Waterfall. Как можно заметить, большая часть графика заполнена зелёным цветом – это говорит о том, что затрачивается достаточное количество ресурсов на отрисовывание. Ниже на рисунке 6 продемонстрирована частота кадров.

image.png

Рис. 6. Частота кадров

Как видно из рисунка 5 средняя частота на примере – 46.67fps. Это ниже, чем желаемые 60fps. Однако, ещё хуже то, что частота кадров нестабильна – есть этапы, где частота кадров снижается до 16 fps. Далее рассмотрим процесс оптимизации рендеринга в «Use transform». Ниже на рисунке 7 продемонстрированы этапы рендеринга временной шкалы (Waterfall).

image.png

Рис. 7. Этапы рендеринга временной шкалы (Waterfall)

В сравнении с версией, которая использует margin, видно меньше зелёного, но намного больше фиолетового цвета. Это говорит о том, что вместо paint, в данном случае тратятся ресурсы на этапы layout или style recalculation. Далее на рисунке 8 будет продемонстрирована частота кадров.

image.png

Рис. 8. Частота кадров

В сравнении с версией, которая использует margin, показатели fps здесь выглядят достаточно хорошо. Средняя частота кадров близка к 60fps, а стабильность fps, за исключением падения в начале значительно выросла. Исходя из представленных данных видно, что, используя transform, заметно улучшилась производительность приложения. А инструменты разработчика помогли это осуществить [11].

Ниже в таблице будут описаны существующие подходы к оптимизации рендеринга сложных анимаций в веб-интерфейсах.

Таблица

Подходы к оптимизации рендеринга сложных анимаций в веб-интерфейсах (составлено автором)

Метод/Подход

Описание

Преимущества

Недостатки

Применение

Будущие тенденции

Влияние на рендеринг

Использование CSS-анимаций

Браузеры оптимизируют такие анимации на уровне рендеринга.

Легкость в использовании, высокая производительность, аппаратное ускорение.

Ограниченные возможности по сложным эффектам.

Для простых анимаций, таких как переходы между состояниями элементов, движения объектов.

Растущее использование переменных и CSS-перезапускаемых анимаций.

Упрощение кода, снижение нагрузки на процессор и улучшение производительности интерфейсов.

Использование Web Animations API

API для точного управления анимациями, интеграция с JavaScript.

Гибкость, контроль над анимацией, интеграция с другими веб-технологиями.

Требует JavaScript, который сложен для новичков.

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

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

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

Оптимизация с помощью requestAnimationFrame

Использование requestAnimationFrame для обновления анимации, синхронизация с кадровой частотой.

Высокая производительность, минимизация «дёргания», синхронизация с экраном.

Требует дополнительной логики.

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

Интеграция с современными API для параллельной работы с графикой.

Повышение качества анимации, снижение нагрузки на систему, снижение латентности.

Использование Canvas/WebGL

Для рендеринга сложных анимаций с использованием пикселей, например, при создании игр или графики.

Высокая производительность, большая гибкость в рендеринге.

Требует наличия ресурсов, сложность в реализации.

Для визуализаций, игр, анимаций с большим количеством объектов.

Популярное использование WebGL 2.0 и WebGPU для улучшения производительности рендеринга.

Способствует повышению производительности, возможность рендеринга сложных сцен на веб-страницах.

Оптимизация рендеринга анимаций в веб-приложениях требует учёта множества факторов, связанных с производительностью, взаимодействием компонентов системы. Одним из решений является использование свойства will-change, которое заранее информирует браузер о предстоящих изменениях в элементах. Избыточное количество слоёв на странице увеличивает нагрузку на графический процессор, что влечёт за собой дополнительное потребление ресурсов, снижая общую производительность. Увеличение числа слоёв требует дополнительных вычислений, что сказывается на отклике интерфейса.

Заключение

В рамках статьи был проведен подробный анализ методов оптимизации рендеринга анимаций в веб-интерфейсах. Рассмотрены алгоритмические методы управления состоянием компонентов, использование графических процессоров для ускорения вычислений, а также технологии WebGL, ReactJS, D3, нейросетевые подходы, такие как Image-Based Rendering, Gaussian Splatting.

Анализ показал, что комбинированные методы, которые объединяют традиционные подходы к управлению DOM-структурами с нейросетевыми технологиями, дают оптимальные результаты. Использование GPU для ускорения процессов рендеринга снижает задержки, улучшает плавность анимаций.

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

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

  1. Brekalo S., Pap K., Trstenjak B. Enhancing Rendering Performance in Complex Visualizations by using Optimization Techniques and Algorithms in Browser Environments // Engineering, Technology & Applied Science Research. – 2024. – Vol. 14. – №. 3. – P. 14049-14055.
  2. Wang Z., Yang L. Performance optimization methods for large scene in WebGL // Sixth International Conference on Computer Information Science and Application Technology (CISAT 2023). – SPIE, 2023. – Vol. 12800. – P. 1360-1365.
  3. Chebanyuk O., Mushynskyi M. Rendering Optimization Approach for Game Engine Development // International Journal “Information Theories and Applications. – 2021. – Vol. 1. – №. 2. – P. 157-177.
  4. Tao Y., Wang R. Animation Rendering Optimization Based on Ray Tracing and Distributed Algorithm. – 2024. – Vol. 21 (13). – P.32-47.
  5. Büsching M. et al. Flowibr: Leveraging pre-training for efficient neural image-based rendering of dynamic scenes // Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. – 2024. – P. 8016-8026.
  6. Lombardi S. et al. Mixture of volumetric primitives for efficient neural rendering // ACM Transactions on Graphics (ToG). – 2021. – Vol. 40. – №. 4. – P. 1-13.
  7. Pavić F., Brkić L. Methods of Improving and Optimizing React Web-applications // 2021 44th International Convention on Information, Communication and Electronic Technology (MIPRO). – IEEE, 2021. – P. 1753-1758.
  8. ChubI., Demchenko K.Optimizing the productivity of solutions built with the help of ReactJS and D3 libraries // Bulletin of Kharkov National Automobile and Highway University. – 2024. – Vol. 104. – P. 15-21.
  9. Niemeyer M. et al. Radsplat: Radiance field-informed gaussian splatting for robust real-time rendering with 900+ fps // arXiv preprint arXiv:2403.13806. – 2024. – P. 1-18.
  10. Zhao F. et al. Human performance modeling and rendering via neural animated mesh // ACM Transactions on Graphics (TOG). – 2022. – Vol. 41. – №. 6. – P. 1-17.
  11. Производительность анимации и частота кадров. [Электронный ресурс] Режим доступа: https://developer.mozilla.org/ru/docs/Web/Performance/Animation_performance_and_frame_rate (дата обращения: 25.01.2025).

Поделиться

104

Алексеев П.. Подходы к оптимизации рендеринга сложных анимаций в веб-интерфейсах // Актуальные исследования. 2025. №6 (241). Ч.I.С. 21-29. URL: https://apni.ru/article/11323-podhody-k-optimizacii-renderinga-slozhnyh-animacij-v-veb-interfejsah

Обнаружили грубую ошибку (плагиат, фальсифицированные данные или иные нарушения научно-издательской этики)? Напишите письмо в редакцию журнала: info@apni.ru
Актуальные исследования

#8 (243)

Прием материалов

22 февраля - 28 февраля

осталось 7 дней

Размещение PDF-версии журнала

5 марта

Размещение электронной версии статьи

сразу после оплаты

Рассылка печатных экземпляров

19 марта