Няма памет при изобразяване на V-ray

Казвам се Иля, известен още като iLyxa. Занимавам се с CG повече от 5 години. Живея и работя в Киев. В този урок искам да говоря за това как да извърша висококачествено рендиране в 3d Studio Max + VRay, когато компютърните ресурси не го позволяват.

Съвсем наскоро, докато изобразявах интериора на стая, се натъкнах на проблема с липсата на RAM при изобразяване на vray. И намерих решение, което сега ще представя на вашето внимание.

Сцената представляваше интересна комбинация от хол, хол и кухня. Всичко това заемаше повече от 100 кв.м. Всички абсолютни мебели са направени в класически стил + имаше пердета и завеси на всички прозорци. Имаше и 3 огромни полилея със стотици малки парчета стъкло и няколко дузини електрически крушки на всеки.

ОБЩО: 3 милиона полигони и 2 милиона геометрии присъстваха едновременно в сцената. Файлът*.max беше около 100 MB некомпресиран.

„НЕОБРАБОТЕНО ИЗКЛЮЧЕНИЕ: Грешка при разпределението на паметта; …” познато съобщение за грешка на VRay. Имах късмета да го видя само при изобразяване на сцена с най-простите vray настройки и при разделителна способност на картината 320x240. Когато задавах нещо повече, 3D Studio Max 9 SP2 просто се затваряше по време на рендирането на Global Illumination или още по време на чертането на самото изображение и се изписваше съобщение за грешка в C:/vraylog.txt.

Хардуерът, на който е извършено рендирането:

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

4 памети по 1Gb DDR-II 800Mhz + 3Gb суап файл.

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

Windows XP 32bitL

За съжаление, както по-късно се оказа на практика, Windows XP 32bit не може да използва напълно повече от 2,7 Gb RAM, така че моите 4 GB RAM просто се разхождаха.

Ще опиша моето решение на проблема по-късно, но първо: има няколко прости стъпки, които могат да разрешат проблема с паметта.

Активирането на опциятаАвтоматично създаване на проксита автоматично ще създаде изображение на мястото на експортирания обект. Ако обектът, който конвертирате в прокси, се състои от повече от 1 милион полигони, тогава грешката за недостиг на памет вероятно ще се появи отново.

Един от най-простите начини за решаване на проблема е даскриете (Hide) всички обекти в сцената, които не са в зрителното поле на камерата. Трябваше да го използвам многократно, но без много удоволствие, когато изобразих например 10 изгледа на една сцена, беше необходимо да премахна / добавя обекти на сцена за всяка камера, да наблюдавам отразяващи повърхности.

Нашият проблем, ако го погледнете директно, е, че в началото на изобразяването на сцената vray иска от windows да разпредели например 10Gb RAM, както беше в моя случай, но това не е възможно, поради което възниква грешка в приложението или някакъв модул. Понякога се появява грешка на различни етапи на изобразяване - грешни изчисления на картите на глобалното осветление, изместване, фотони, проследяване на лъчи ...

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

Зададох лимита наДинамична памет, като наблюдавах количеството RAM, използвано през диспечера на задачите, преди рендиране и по време на грешка или автоматично затваряне на Макс. Сега vray иска от операционната система точно толкова ресурси, колкото са ѝ необходими на определен етап, и ние задаваме критичен лимит. При мен не работи с всички 3D сцени, а когато се получи, изобразяването беше изключително бавно.

  • Работете подWindows XP64 бита - не съм пробвал, но изпитахTrideshniki във форумите пишат, че ги е спасил в тази ситуация.
  • Ако описаните по-горе методи не са се отървали от грешката и няма къде да вмъкнете допълнителни ленти с памет:

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

    Този метод на изобразяване не ускори процеса, но все пак позволи да се получи изображение 2500x1500 при наличие на 3 милиона полигона в сцената, с високи настройки за качество на изобразяване на изображението.

      СтартирайтеBackburner Manager. Обикновено се инсталира с инсталацията на 3DS Max.

    Ако се появи прозорецът с настройки, просто щракнете върху OK, съгласни сме със стандартните настройки.

    СтартирамеBackburner Server, той се намира в същото меню.

    В настройките премахнете отметката отАвтоматично търсене и въведете своя локаленIP 127.0.0.1.

    По този начин мениджърът работи на вашия компютър, готов да приеме задача за рендиране от 3D Max и да изпрати част от задачата на сървъра за обработка. Това е разделянето на задача от 2500x1500 на части, например, което ще позволи на почти всеки хардуер да обработва сцени с повишена сложност. Има иBackburner Monitor за визуално проследяване на протичащия процес (работи по желание).

    Отворете сцената си в 3D Max, задайте желаните настройки за рендиране и най-важното, проверетеNet Render в настройките, което ще ви позволи да изпратите задача за рендиране доBackburner Manager, а не да го правите сами.

    ВRender Output укажете къде да запишете резултата, ако е необходимо.

  • Натиснете бутонаRender и преминете към може би най-важните настройки.
  • Премахнете отметката отАвтоматично търсене
  • Въведете вашия IP127.0.0.1
  • Вдясно ще има бутонСвързване - търсим и се свързваме с Мениджъра.Вдясно ще се появи списък с налични сървъри.
  • !! Поставете отметка до Разделяне на сканирани линии. Като щракнете върху бутонаДефиниране, можете да зададете настройките за разделяне на изображението по височина или по броя на лентите. Цялата голяма картина ще бъде разделена на хоризонтални ивици с височинаВисочина на лентата, което ще позволи на вашия компютър да обработва лента по лента,без грешки и повреди :) И ако възникне грешка, просто увеличете броя на редовете.
  • НатиснетеИзпращане и можете да наблюдавате постепенното изобразяване на сцената. Но предпочитам да спя, докато рендирането е в ход
  • Заданието е изцяло предадено на мениджъра и вече можете да затворите вашата сцена и 3DS Max.Backburner Server ще стартира друг процес на 3DS Max и ще го минимизира автоматично, преди изобразяването да завърши.
  • Всички ивици се записват в папката, където сте указали да запазитеRender Output, и след това се обединяват в едно изображение, когато процесът приключи. Готово

    Това е!

    Надявам се, че този урок ще ви позволи да получите нещо, което не е било налично преди. Единственият въпрос е времето.