ЦКП ВВР ПГНИУ

Суперкомпьютерный центр Пермского университета

Инструменты пользователя

Инструменты сайта


man:blender

Работа с Blender

Что делать до использования?

Перед использованием необходимо загрузить модуль:

module load blender/2.77a 

Где расположен в системе?

Blender установлен в:

 /shared/opt/blender/2.77a/ 

Запуск на CPU


Запуск рендера на CPU производится следующей командой:

 blender -noaudio -b <путь к исходному файлу *.blend> -E CYCLES -o <путь выходного файла> -f <кол-во кадров>

В команде использованы след. ключи:

  • noaudio - нет звукового потока
  • b - использование background
  • E - использование выбранного движка для рендера
  • o - путь вывода
  • f - рендер кадров (frames), не анимации.

Для просмотра всех ключей и справки необходимо выполнить команду:

 blender --help 

Примечание. Запускать рендер, используя CPU можно и на управляющем узле, так и на вычислительном.

Запуск на GPU


Для того, чтобы запустить рендер на GPU необходимо написать скрипт на языке python (*.py). Скрипт должен содержать следующие строки:

import bpy
bpy.context.user_preferences.system.compute_device_type = 'CUDA'
bpy.context.user_preferences.system.compute_device = 'CUDA_MULTI_0'
bpy.data.scenes["Scene"].cycles.device = 'GPU'

Примечание. Значение 'CUDA_MULTI_0' показывает, что рендер будет производиться на всех свободных картах GPU. Также возможно использование значения 'CUDA_0', которое показывает, что рендер будет производиться на одной карте GPU.

После того, как скрипт создан, путь к нему необходимо указать в команде запуска с помощью ключа P:

 blender -noaudio -b <путь к исходному файлу *.blend> -E CYCLES -o <путь выходного файла> -P <путь к скрипту> -f 1 

Примечание. Рендер, с использованием GPU, возможен только с вычислительного узла.

Как запустить рендер с дополнительными настройками, которые нельзя указать ключами


Все интересующие настройки необходимо написать в скрипт на языке python. Ниже приведен пример скрипта:

import bpy
#User Preferences.System.Compute device
bpy.context.user_preferences.system.compute_device_type = 'CUDA'
bpy.context.user_preferences.system.compute_device = 'CUDA_MULTI_0'
#Scene.Render.Device.
bpy.data.scenes["Scene"].cycles.device = 'GPU'
#Scene.Render.Animation                     
bpy.ops.render.render(animation=True)          
#Scene.Dimensions.Resolution.X                     
bpy.data.scenes["Scene"].render.resolution_x = 1280 
#Scene.Dimensions.Resolution.Y               
bpy.data.scenes["Scene"].render.resolution_y = 800
#Scene.Dimensions.Resolution.Percentage               
bpy.data.scenes["Scene"].render.resolution_percentage = 100
#Scene.Dimensions.Frame Range.Start frame
bpy.data.scenes["Scene"].frame_start = 0
#Scene.Dimensions.Frame Range.End Frame
bpy.data.scenes["Scene"].frame_end = 3000
#Scene.Dimensions.Frame Range.Frame step
bpy.data.scenes["Scene"].frame_step = 1
#Scene.Dimensions.Frame Rate
bpy.types.Menu.framerate_presents = 24
#Scene.Output.File format
bpy.data.scenes["Scene"].render.image_settings.file_format = 'PNG'
#Scene.Output.Color mode
bpy.data.scenes["Scene"].render.image_settings.color_mode = 'RGB'
#Scene.Output.Color depth
bpy.data.scenes["Scene"].render.image_settings.color_depth = '16'
#Scene.Sampling
bpy.types.Menu.Sampling_presets = 'Final'
#Scene.Sampling.Samples.Render
bpy.data.scenes["Scene"].cycles.samples = 24
#Scene.Sampling.Samples.Preview
bpy.data.scenes["Scene"].cycles.preview_samples = 12
#User Preferences.System.Anisotropic filter
bpy.context.user_preferences.system.anisotropic_filter = 'FILTER_16'

После написания скрипта необходимо указать его при запуске с ключом -P.

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

Оптимизация


До этого раздела запуск рендера предполагал использование одного вычислительного узла.

Как запустить рендер, используя все вычислительные узлы МВК ПГНИУ-Кеплер?

Вопрос оптимизации был решен следующим образом. Имеется возможность, используя скрипты рендерить на каждом вычислительном узле определенное кол-во кадров. Например, на первом вычислительном узле будут рендериться с 0 по 613 кадр:

bpy.data.scenes["Scene"].frame_start = 0
bpy.data.scenes["Scene"].frame_end = 613
bpy.data.scenes["Scene"].frame_step = 1

А на втором, с 614 по 1227 кадр:

bpy.data.scenes["Scene"].frame_start = 614
bpy.data.scenes["Scene"].frame_end = 1227
bpy.data.scenes["Scene"].frame_step = 1

И так далее.

Как запустить выполнение на разных вычислительных узлах?

Запуск производится с управляющего узла с помощью планировщика задач bsub. Пример команды (в примере используется логирование, используя утилиту tee):

bsub -m "compute000" "blender -noaudio -b Scene.blend -E CYCLES -o ~/blender_results_node000/ -P exercise_gpu000.py -a |tee ~/blender_results_node000/exercise_log_000"
man/blender.txt · Последние изменения: 23.11.2016 12:15:26 — faubert