Распределенная визуализация |
Распределенная визуализация (Distributed endering - DR[1]) - это техника распределения одного задания по визуализации одного кадра (одного изображения) по многим компьютерам в сети. Что бы сделать это существует несколько подходов, но основная идея заключается в том, что бы уменьшить время визуализации за счет разделения различных потоков данных процесса визуализации и раздачи каждому участнику различных данных этого задания. Наиболее общий способ решения этой задачи - разделить визуализируемый кадр на связанные группы сэмплов и дать по нескольку групп каждой машине для визуализации. Затем взять результаты и объединить их в окончательное изображение.
Обратите внимание, что V-Ray RT всегда использует распределенную визуализацию, даже когда работает на одной машине (через локальный сервер визуализации).
V-Ray RT использует DR. Он делит кадр на группы сэмплов и распределяет их между участниками распределенной визуализации. Это полностью делается через протокол TCP/IP (это стандартный протокол для Интернета и, таким образом, наиболее общий протокол, который поддерживается на уровне сетевого оборудования). Самому V-Ray RT не требуется дополнительных общих файлов или каталогов (однако в действительности вам может понадобиться сделать общий доступ к некоторым файлам или каталогам, содержащим растровые изображения (текстуры) и другие дополнительные файлы, используемые при визуализации). Управление распределением разделено на клиентов визуализации (Render Clients) и серверы визуализации (Render Servers).
Клиенты визуализации
Клиент визуализации это плагин V-Ray RT для 3ds Max на компьютере, где сейчас работает пользователь, и с которого запускается визуализация. Он делит кадр на группы сэмплов, распределяет эти группы между Серверами визуализации и собирает результаты снова вместе. Собранные результаты объединяются и показываются в пользовательском интерфейсе 3ds Max как только это становится возможным. Обратите внимание, что сам плагин V-Ray RT не выполняет какой-либо визуализации внутри 3ds Max.
Серверы визуализации
Сервер визуализации - это программа (исполняемый файл) сервера визуализации V-Ray RT, запущенная на компьютере пользователя, или на компьютере, который является частью, так называемой "render farm" - "фабрики визуализации". Сервер визуализации запрашивает у клиента визуализации данные, обрабатывает их и посылает результат обратно. Если сервер визуализации запущен на пользовательской машине (там же, где запущен клиент визуализации), то он называется локальным сервером визуализации (local DR render server). Если сервер визуализации расположен на другой машине, то он называется удаленным сервером визуализации (remote DR render server).Серверы визуализации основываются на модифицированной версии V-Ray Standalone и работают как независимые приложения, которые обмениваются информацией с клиентом визуализации через протокол TCP/IP. Если в процессе визуализации происходит какой-то сбой, клиент визуализации останется работоспособным и не вызовет краха 3ds Max. Это спасет несохраненную работу дизайнера от потери.
Сеть
Сеть - это связь между клиентом и серверами визуализации. Она должна поддерживать протокол TCP/IP для работы V-Ray RT, даже если для визуализации не используется дополнительных машин. Обратите внимание, что в настоящее время IPv6 не поддерживается. Клиент и серверы должны быть "видимыми" друг для друга через сеть, даже если они находятся в разных частях мира. Чем больше в сети серверов визуализации, тем большая полоса пропускания сети может требоваться, т.к. пересылается больше данных между клиентом и серверами.
Одна лицензия на V-Ray RT позволяет вам использовать до 10 машин для распределенной визуализации. Клиент визуализации и все серверы визуализации должны быть иметь возможность соединиться к работающему серверу лицензии V-Ray. Для дополнительной информации см. раздел Лицензирование.
Перед тем, как вы сможете использовать распределенную визуализацию с V-Ray RT, вы должны установить и запустить серверы визуализации V-Ray RT на одной или нескольких машинах в вашей сети. Запус и остановка серверов визуализации может быть выполнен несколькими способами:
Диалог настроек распределенной визуализации появляется при нажатии кнопки Render Servers на вкладке V-Ray RT диалога настройки визуализации.
- Добавить сервер - эта кнопка позволяет вам вручную добавить сервер посредством ввода его IP-адреса или сетевого имени.
- Удалить сервер - эта кнопка удаляет из списка отмеченные серверы.
Auto-start local slave - - включение этой опции будет принуждать визуализатор V-Ray RT автоматически запускать локальный сервер визуализации (на этой же машине). Обратите внимание, что это может замедлить работу 3ds Max, если у вас только одно процессорное ядро. Если эта опция выключена, то пользователь должен зарегистрировать дополнительные серверы визуализации, которые будут использоваться вместо локального. Локальный сервер визуализации будет автоматически закрыт, когда вы выйдете из 3ds Max.
Настройки распределенной визуализации V-Ray RT сохраняются в отдельном файле конфигурации, а не в сцене 3ds Max. Этот файл называется vrayrt_dr.cfg и расположен в каталоге 3ds Max plugcfg (который обычно расположен в каталоге настроек локального пользователя).
Есть несколько настроек V-Ray RT, которые могут помочь оптимизировать интерактивную производительность на различных конфигурациях "фабрики визуализации". Есть несколько различных способов проверить насколько эффективно работает ваша "фабрика", но самый простой из них - проверить (например через Windows Task Manager) загрузку процессора на серверных машинах: она должна быть около 95-100%. Если процессоры не полностью загружены, то лучше дать им побольше работы: делать больше сэмплов на группу. Вы можете это сделать увеличив параметр Rays per pixel с 4 до 6, 8, 12, 16, 24 или даже до 32. Это потребует большей работы для обработки одного пикселя. Настройте этот параметр в соответствии с вашей "фабрикой" и сценой.
Если вы хотите увеличить скорость трассировки лучей, но потерять в интерактивности, вы можете увеличить параметр Ray bundle size до 128, 256 или 512. Это уменьшит пропускную способность сети за счет пересылки большего количества информации в одном блоке. (This will reduce the network bandwidth needed by sending more information in a single block.)
Так же, как и при распределенной или сетевой визуализации с обычным визуализатором V-Ray, если вы в сцене используете какие-то внешние файлы (например текстуры или фотометрические .ies-файлы), вы должны удостовериться, что все серверы визуализации имеют доступ к этим файлам. Это может быть сделано несколькими способами:
- Файлы могут быть скопированы локально на каждый сервер визуализации и размещены по одному и тому же пути;
- Файлы могут быть сохранены на общем сетевом ресурсе (network share) и доступ к ним будет осуществляться по именам файлов в формате UNC;
- Файлы могут быть сохранены на сетевом диске (network mapped drive), который определен на всех серверах визуализации.
Если вы храните файлы на сетевом ресурсе (на общем сетевом ресурсе или на сетевом диске - не важно), помните, что не-серверные версии операционной системы Windows* имеют ограничения на количество одновременно открытых файлов при доступе через сеть. Результатом этого может быть появление на визуализируемом изображении случайно расположенных прямоугольных артефактов, возникших в те моменты, когда сервер визуализации не смог загрузить по сети какой-то из файлов.
Альтернативное расположение ресурсов для серверов визуализации V-Ray RT может быть указано с помощью переменной окружения VRAY_ASSETS_PATH. Эта переменная действует и на текстуры, и на фотометрические файлы. Переменная может содержать и несколько путей, разделенных символом "точка с запятой" (';') под ОС Windows или символом "двоеточие" (':') под ОС Linux и Mac OS X.
Перевод © Black Sphinx, 2011. All rights reserved.