Авторы: Бондаренко А. О., Анохина И. Ю., Лазебная Л. А.
Источник: XIV Международная научно-техническая конференция студентов, аспирантов и молодых ученых «Информатика, управляющие системы, математическое и компьютерное моделирование - 2023»
Бондаренко А. О., Анохина И. Ю., Лазебная Л. А. Улучшение производительности рендеринга в Blender 3D. Рассмотрены методы улучшения производительности рендеринга, проведён их анализ. Основные методы применены на практике.
Blender 3D – это мощный инструмент для создания трехмерной графики и анимации, который используется в различных отраслях, таких как архитектура, игровая индустрия, реклама и мультимедиа. Однако, при работе с крупными и сложными проектами, производительность рендеринга в Blender 3D может стать серьезной проблемой.
Рендеринг в Blender 3D может занимать много времени и потреблять большое количество ресурсов, таких как процессор, память и видеокарта. Это может замедлить процесс создания проекта и увеличить время ожидания результатов рендеринга. Кроме ого, если ресурсы компьютера не используются эффективно, то это может привести к сбоям и неожиданным ошибкам.
В связи с этим, важно искать способы оптимизации процесса рендеринга в Blender 3D, чтобы улучшить производительность и сократить время, необходимое для создания высококачественных визуализаций и анимации.
Существует множество методов оптимизации производительности рендеринга в Blender 3D. Рассмотрим некоторые из них.
Cycles и Eevee – это два разных рендер-движка в Blender.
Cycles – это физический рендер-движок, который использует трассировку путей для создания изображения. Он создает очень реалистичные изображения с высоким качеством освещения и материалов. Однако, рендеринг с помощью Cycles может занять много времени, так как трассировка путей является достаточно вычислительно сложным процессом.
Eevee – это нереалистичный рендер-движок, который использует растеризацию для создания изображения. Он создает быстрые рендеры, которые отлично подходят для интерактивных сцен, таких как игры, визуализации архитектуры, а также для создания анимаций и других проектов, где быстрый рендер является важным фактором.
Использование GPU (Graphics Processing Unit) вместо CPU (Central Processing Unit). CPU – это микропроцессор, который выполняет все основные вычисления и управляет работой компьютера в целом. CPU обычно имеет от 2 до 16 ядер (в некоторых случаях до 32 ядер), которые могут обрабатывать данные последовательно. GPU – это специализированный процессор, который специализируется на обработке графики и параллельных вычислений. GPU обычно имеет сотни и даже тысячи ядер, которые могут обрабатывать данные параллельно, что делает его более эффективным для работы с графикой, видео и другими задачами, требующими одновременной обработки большого объема данных. Blender 3D позволяет использовать как центральный процессор, так и графический процессор для рендеринга. Выбрать процессор можно во вкладке «Настройки рендеринга» как показано на рисунке 1.
Рисунок 1 - Выбор процессора
GPU более эффективен в работе с параллельными вычислениями и способен обрабатывать большой объем данных быстрее, чем CPU. Также большинство современных графических процессоров поддерживают технологии CUDA и OpenCL, что позволяет использовать их для ускорения рендеринга. Ещё одним плюсом является возможность подключения нескольких графических процессоров (в SLI- или CrossFire-конфигурации), что позволяет получить еще более высокую производительность. Однако, такой метод имеет и минусы, например, ограниченное количество видеопамяти: графические процессоры обычно имеют меньшее количество оперативной памяти, чем центральные процессоры, что может ограничить количество деталей и сложность сцены при рендеринге. Помимо этого, использование GPU может привести к высокому тепловыделению, поэтому требуется хорошая вентиляция и система охлаждения. [1]
Ещё один способ ускорить рендеринг – использование оптимизированные настройки рендеринга. Blender 3D предоставляет множество параметров для настройки процесса рендеринга. Некоторые настройки, такие как разрешение изображения и количество сэмплов, могут быть оптимизированы для ускорения рендеринга. Например, снижение разрешения изображения может ускорить процесс рендеринга за счет уменьшения количества вычислений.
Сэмплы – это количество точек в 3D-сцене, на которых происходит расчет освещения и цвета при рендеринге. Большее количество сэмплов дает более точный и детализированный результат рендеринга, но в то же время требует больше времени для обработки и увеличивает время рендеринга. При использовании движка Cycles и Eevee настройка параметра выглядит как показано на рисунках 2 и 3 соответственно.
Рисунок 2 - Настройка параметра при использовании движка Cycles
Рисунок 3 - Настройка параметра при использовании движка Eevee
В Blender 3D, количество сэмплов можно настроить в настройках рендеринга. Оптимальное количество сэмплов зависит от сложности сцены и требуемого уровня детализации. Если установить слишком маленькое количество сэмплов, то рендеринг может выглядеть зернистым и недостаточно детализированным. Если же установить слишком большое количество сэмплов, то рендеринг будет занимать слишком много времени, что неэффективно. [2]
Кроме того, в Blender 3D существует ряд техник, которые помогают снизить количество необходимых сэмплов, что позволяет ускорить процесс рендеринга без потери качества. Например, такими техниками могут быть Denoising (фильтрация шума) при использовании движка Cycles, или Ambient Occlusion (эффект теней от окружающих объектов) при использовании движка Eevee. Они также настраиваются в разделе рендеринга. Параметр Denoising и Ambient Occlusion показаны на рисунках 4 и 5 соответственно.
Рисунок 4 - Параметр Denoising
Рисунок 5 - Параметр Ambient Occlusion
Аналогично настройкам материалы и освещение также должны быть оптимизированными. Некоторые материалы и типы освещения могут быть более ресурсоемкими, чем другие. Использование более простых материалов и освещения может значительно улучшить производительность.
Однако, стоит отметить, что использование оптимизированных материалов и настроек освещения может не дать оптимальных результатов в каждой ситуации и может потребоваться индивидуальная настройка в зависимости от конкретной сцены и требований к рендерингу.
Для большего ускорения модель должна быть оптимизирована. Blender 3D может работать с большим количеством полигонов и деталей, но это может привести к замедлению рендеринга. Использование более простых моделей или оптимизация существующих моделей может ускорить процесс рендеринга.
Использование дополнительных программных решений, таких как рендеринг на удаленных серверах или использование распределенного рендеринга. Эти решения могут улучшить производительность и сократить время рендеринга за счет использования дополнительных ресурсов. [3]
В качестве примера рассмотрим простую модель – пончик. Материалы для неё оптимизированы так как их предоставил Blender.
В первом примере используется движок рендеринга Cycles с применением Denoising, параметр max samples – 4096, микропроцессор CPU. Длительность рендеринга составила 53 секунды как показано на рисунке 6.
Рисунок 6 - Результаты первого примера
Во втором примере количество сэмплов было снижено до 3040. Длительность рендеринга составила 49 секунд, однако, становится заметно потерю качества картинки.
Рисунок 7 - Результаты второго примера
В третьем примере используется движок рендеринга Cycles с применением Denoising, параметр max samples – 4096, микропроцессор GPU. Длительность рендеринга значительно сократилась – 18 секунд как показано на рисунке 8.
В четвёртом примере используется движок рендеринга Eevee с применением Ambient Occlusion, количество сэмплов – 64, микропроцессор GPU. Длительность рендеринга составила 4 секунд, но картинка стала плоской и менее реалистичной как показано на рисунке 9.
Рисунок 8 - Результаты третьего примера
Рисунок 9 - Результаты четвёртого примера
В работе рассмотрены и проанализированы методы улучшения производительности рендеринга в Blender 3D. Основные методы ускорения рендеринга были рассмотрены на практике. Наиболее подходящими оказались параметры: движок рендеринга Cycles с применением Denoising, параметр max samples – 4096, микропроцессор GPU.
1. Готтье, Л. Базовый Blender 3D. [Текст]/ Готтье Л. // ДМК Пресс, 2020. – С. 25.
2. Муллэн, Т. Освоение Blender. [Текст] / Муллэн Т. // Эксмо, 2020. – С. 6.
3. Ускорение рендеринга в Cycles [Electronic resource] / Интернет-ресурс. – Режим доступа: www/ URL:https://blender3d.com.ua/4-sposoba-yvelichit-skorost-renderinga-v-cycles/