Уроки: 3ds Max

Не хватает памяти при рендере V-ray?



Добрый день.

Меня зовут Илья aka iLyxa. Занимаюсь CG уже более 5 лет. Живу и работаю в Киеве. В этот уроке хочу рассказать о том, как выполнить качественную визуализацию в 3d Studio Max + VRay, когда ресурсы компьютера не позволяют этого.

Совсем недавно, выполняя визуализацию интерьера комнаты, я столкнулся с проблемой недостатка оперативной памяти, при рендере vray’ем. И нашел решение, которое предоставлю вашему вниманию сейчас.

Сцена представляла собой интересным образом совмещенные зал, гостиную и кухню. Всё это занимало более 100 кв.м. Вся абсолютна мебель выполнена в классическом стиле + на всех окнах были гардины и портьеры. Еще было 3 огромных люстры с сотнями мелких стекляшек и пару десятков лампочек на каждой.

ИТОГО:  3 млн. полигонов и 2 млн. геометрии одновременно присутствовали в сцене. Файл *.max  занимал около 100 Мб в не сжатом виде.

“UNHANDLED EXCEPTION: Memory allocation failure; …”   многим знакомое сообщение об ошибке VRay. Мне посчастливилось его увидеть только при рендере сцены с самыми простыми настройками vray’я и при разрешении картинки 320х240. Когда ставил что-то большее – 3D Studio Max 9 SP2 просто закрывался во время просчета Глобального освещения или уже во время прорисовки самой картинки, а сообщение об ошибке писалось в C:/vraylog.txt.

Железо, на котором выполнялся рендер:

   Intel Core Quad Q6600 2.4 Ghz (это 4 ядра)

   4 планки памяти по 1Gb DDR-II 800Mhz  +  3 Gb файл подкачки.

   Видеокарта Asus GeForce 8600 GTS 256Mb

   Windows XP 32bit  L

К сожалению, как позже выяснилось на практике, Windows XP 32bit  не может полноценно использовать оперативную память объемом более 2,7Gb, поэтому мои 4 Гб оперативки просто гуляли.

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

  1. Как учил hrwraith в недавнем уроке (ссылка на урок), или немного иначе, нужно прописать в файле C:/boot.ini после примерно вот такой строчки «multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect»  добавить «/3GB /useuptime», без кавычек. Это позволит Windows не стеснятся и использовать больший объем оперативной памяти компьютера на процесс, после перезагрузки.
  2. Вторая рекомендация – не использовать карты и материалы Raytrace.
  3. Если объект сцены содержит в себе до 1 млн. полигонов, то его можно перевести в VrayProxy. Делается это так:

      

    Включение опции Automatically create proxies автоматически создаст на месте экспортируемого объекта его образ. Если объект, который вы переводите в Прокси состоит из более чем 1 млн. полигонов, то ошибка недостатка памяти вероятно снова появится.

  4. Один из простейших способов решения проблемы – скрыть (Hide) все объекты сцены, которые не попадают в поле зрения камеры. Неоднократно приходилось его использовать, но без особого удовольствия, при рендере, например 10 видов одной сцены, нужно было для каждой камеры убирать/добавлять объекты сцены, следить за отражающими поверхностями. 

  5. Наша проблема, если смотреть на нее прямо, заключается в том, на старте рендера сцены vray просит у windows выделить, например 10Gb оперативной памяти как в моем случае было, а это не возможно, поэтому и возникает ошибка приложения или какого-то модуля.  Бывает ошибка выскакивает на разных этапах рендера - просчеты карт глобального освещения, дисплейса, фотонов, рейтрейс …  

    Разработчики Vray предусмотрели решение в такой ситуации - Dynamic Memory, но оно почему-то не работало у меня нормально.

    Я устанавливал значение лимит Dynamic memory limit, наблюдая через Диспетчер задач за объемом используемой оперативной памяти до рендера и в момент вылета ошибки или автоматического закрытия Max’a. Теперь vray запрашивает у операционной системы ровно столько ресурсов, сколько ему нужно на определенном этапе и мы задаем критический лимит. Не со всеми 3D сценами это работало у меня, а когда работало – рендер длился крайне медленно.

  6. Работать под Windows XP 64 bit – не пробовал, но бывалые тридешники на форумах пишут что это их спасало в данной ситуации.

Если способы, описанные выше, не избавили от ошибки,  а вставляя дополнительные планки памяти уже некуда:

Итак, основная часть.

Этот способ рендеринга не ускорил процесс, но позволил всё таки получить картинку 2500х1500 при наличии в сцене 3 млн. полигонов, при высоких настройках качества просчета картинки.

  1. Запускаем Backburner Manager. Он обычно устанавливается вместе с установкой 3DS Max.

    Если появится окно настроек, просто жмем ОК, соглашаемся с стандартными настройками.

  2. Запускаем Backburner Server, там же в меню находится.

    В настройках снимаем отметку возле Automatic Search, и вводим свой локальный IP 127.0.0.1.

    Таким образом, на вашем компьютере запущен Менеджер, готовый принять задание на рендер от 3D Max, и отправить часть задания на Сервер, для его обработки. Именно разбиение задание 2500х1500 например на части позволит практически любому «железу» обработать сцены повышенной сложности.  Так же есть Backburner Monitor для наглядного слежение я за происходящим процессом (запускать по желанию).

  3. Открываете свою сцену в 3D Max, устанавливаете желаемые настройки рендера, и главное, отметить в настройках Net Render, что позволит отправить рендер задание к Backburner Manager, а не выполнять его самостоятельно.

     В Render Output укажите куда сохранять результат, обязательно.

  4. Жмем кнопку Render, и переходим к пожалуй самым важным настройкам.     
    1. Убираем отметку возле Automatic Search
    2. Вписываем свой IP 127.0.0.1
    3. Справа будет кнопка Connect – выполняем поиск и подключение к Менеджеру. Справа появится список доступных серверов.
    4. !! Ставим отметку возле Split Scan Lines. По кнопке Define можно задать настройки разделения изобращения по высоте или по кол-ву полос. Вся большая картинка будет разделена на горизонтальные полосы высотой Strip Height, что позволит вашему компьютеру обрабатывать полосу за полосой, без появления ошибки и отказа :)   А если ошибка и будет возникать, просто увеличьте количество линий.

    5. Жмете Submit и можете наблюдать постепенную прорисовку сцены. Но я предпочитаю спать пока идет рендер
  5. Задание полностью отправлено Менеджеру, и теперь вы можете закрыть свою сцену и 3DS Max. Backburner Server запустит еще один процесс 3DS Max и свернет его автоматически до завершения Рендеринга.

Все полосы сохраняются в ту папку, в которую вы указали сохранить Render Output, а потом сливаются в одну картинку, по завершению процесса. Вуа-ля

На этом всё! 

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

Спасибо за прочтение.

--

С уважением,

Илья. (4all.ilyxa@gmail.com)

193821 Автор:
Актуальность: 544
Качество: 496
Суммарный балл: 1040
Выбор Публики
Голосов: 242 оценки

Отзывы посетителей:

2 3 4 5 6 7 8 | След.
аватар
 
kassiopeya 2 0

Как включить net render нашла, но теперь такая же ошибка вылетает как у Никиты.

Цитирую Никита Меделец:
Что-то у меня не получается http://www.imageup.ru/img286/950415/untitled-1.jpg Error retrieving configuration file пишет после включения Render такую штуку. Что делать, кто подскажет? Винда 7, макс 2009 64 разрядный
Цитирую Никита Меделец:
Что-то у меня не получается http://www.imageup.ru/img286/950415/untitled-1.jpg Error retrieving configuration file пишет после включения Render такую штуку. Что делать, кто подскажет? Винда 7, макс 2009 64 разрядный

аватар
 
kassiopeya 2 0

А как быть с 2014 максом? Там нет галки Net Render. Что тепер выполняет ее функцию?

аватар
 
iLyxa 111 0

Уроку 6 лет)) Рад что он пригодился!

Цитирую Марьяна Чупла:

Мой вопрос отпал) Спасибо огромное за урок - очень помог, на данный момент для меня это единственный выход!! C ноутбуком с 3 гб по-другому просто нереально


аватар
 
Марьяна Чупла 1 0

Мой вопрос отпал) Спасибо огромное за урок - очень помог, на данный момент для меня это единственный выход!! C ноутбуком с 3 гб по-другому просто нереально

аватар
 
Марьяна Чупла 1 0

Всё получилось, кроме одного - где указать путь к папке для сохранения? Кнопка save file не активна, максимум, что смогла сделать - указать путь к файлу, точнее сам будущий файл (выбрала ненужный файл tif с последующей заменой на будущий рендер) Но после рендера открыла тот файл, а он как был изначальным файлом, так и остался(( Сам прроцесс рендера видела по полосам, а вот куда это все сохранилось и сохранилось ли вообще - не знаю

аватар
 
Пако 2 0
Автору спасибо!) Полезный тутор)
аватар
 
Юлия Клабукова 1 0
Цитирую PushKEN:



Имена файлов должны быть английскими буквами (и пути видимо тоже)
аватар
 
moviesman 7 0
Хороший урок Илья!!!

Скажите, я правильно понимаю, что последнее (менеджер) можно вообще использовать как постоянный способ для визуализации, так как я понимаю оптимизируется ресурс машины на просчет картинки!?...
Или все же этот способ только в крайних случаях желательно использовать...
аватар
 
Master_ATG 1 1
Уменя при попытке нажать disconnect ошибка
connection refused - service not installed on host computer
аватар
 
Никита Меделец 2 0
Что-то у меня не получается http://www.imageup.ru/img286/950415/untitled-1.jpg Error retrieving configuration file пишет после включения Render такую штуку. Что делать, кто подскажет? Винда 7, макс 2009 64 разрядный
аватар
 
Gaisina Svetlana 19 0
Цитирую Zuzechka:



присоединяюсь к вопросу о старых job... или подскажите в какой стороне искать..
аватар
 
PushKEN 2 0
Подскажите, а что значит invalid XML structure , пишет в тесте менеджера сразу после его запуска и судя по всему поэтому не может потом подключится
аватар
 
Сергей Антонов 29 0
Гигантющщщее Спасибо!!!!!!!!!!!!!
аватар
 
Zuzechka 11 0
Цитирую Zuzechka:
Подскажите, как убрать старые jobs из списка, т.к. если среди них есть незавершенные, то по умолчанию они начинают выполняться сразу же после запуска сервера.
Желательно, как это сделать вручную, потому что я нашла как автоматически удалить из списка successfully completed jobs, но они мне и так не мешают.


Кажется нашла. Это делается через Backburner Monitor, если кому-то интересно.
аватар
 
Zuzechka 11 0
Подскажите, как убрать старые jobs из списка, т.к. если среди них есть незавершенные, то по умолчанию они начинают выполняться сразу же после запуска сервера.
Желательно, как это сделать вручную, потому что я нашла как автоматически удалить из списка successfully completed jobs, но они мне и так не мешают.
аватар
 
iLyxa 111 0
Думаю, что в семерке, от бут.ини толку мало будет.
Но вот всё же, есть офф справка: http://support.microsoft.com/kb/833721/ru

Да вообще, просто используйте виндовс 7 х64, и всё само собой будет работать.. и 6 и 8гб хорошо шуршат.
аватар
 
DRIMER 1 0
Класс, а на семёрке как сделать? Там этот boot.ini перебазировали и фиг изменишь чего, только через всякие утилиты, а как ими пользоваться не вкуриваю. Кто-нибудь напишите, как там распределить, а то 4 гигабайта и никак - вылетает через несколько секунд.
аватар
 
Zuzechka 11 0
Спасибо большое за урок. Мне помогло. Хочу добавить, что если включен UAC (контроль учетных записей пользователей) в Windows, то сервер нужно запускать "от имени администратора", иначе будет ругаться на отсутствие достпа к dll-ям.
аватар
 
Алекс Борис 2 0
лично у меня-коннект не происходит,имя сервера не появляется,и урок плохой-внутренних настроек самих менеджера и сервера даже не коснулись....http://3ddd.ru/modules/myarticles/article.php?storyid=66&storypage=0-вот здесь более подробно все описано.но у меня тоже не пошло как только не пробовал.....что интересно сам бэкбёрнер монитор задачи мои отправленные показывает,но-пишет-NOT STARTED((((кто по-человечески с чувством и толком может объяснить что и как?копец,уже голова квадратная и проект надо отдавать....
ПС.a Superender-ерунда это сплошная,как и у кого он вообще заработал представить не могу(((да,с виду все красиво-режет на кусочки там и тд,но-то ошибка какая-то вылетает,то картинку в полосочку выдает-не склеивает обратно то что сам же и разрезал....по крайней мере на 2011и2010м иаксах не пашет нормально однозначно....
аватар
 
Филипп Борщ 12 0
хо-хо! читаем вот ето: http://forum.antichat.ru/showthread.php?t=120248 Обойти ограничение в 1.2gb RAM на процесс (XP-32)
2 3 4 5 6 7 8 | След.
Зарегистрируйтесь, чтобы добавить комментарий.
Эту страницу просмотрели: 971 уникальных посетителей