Як отрендеріть величезне зображення на слабкому комп'ютері
Як отрендеріть величезне зображення на слабкому комп'ютері
У дуже багатьох трідешніков часто постає питання (а не те, що ви подумали): «Як отрендеріть зображення високої роздільної здатності на комп'ютері з малою кількістю оперативної пам'яті?»
У цій статті я покажу, як вирішити цю задачу за допомогою мережевої візуалізації всього на одному комп'ютері (слабенькому) з використання безкоштовної утиліти Backburner, яка входить до складу будь-якої версії 3ds Max.
Тепер про те, що таке «слабкий комп». Слабкість при візуалізації, перш за все, визначається обсягом оперативної пам'яті. Оскільки, навіть при дуже слабкому процесорі з маленькою тактовою частотою (і великому обсязі оперативки) фінальну картинку ви рано чи пізно (добу, тиждень, місяць) отримаєте. А ось якщо ситуація буде протилежна (мало оперативки і самий наворочений проц), то рендер зовсім може не початися або впаде (обірветься) на середині через маленький обсяг ОЗУ.
Зараз рідко зустрінеш стаціонарні комп'ютери з об'ємом пам'яті менше 2 гігабайт. Але ось ноутбуки і нетбуки з таким обсягом - це норма. А часто доводиться працювати саме на останніх двох (мобільність, розтуди її прогрес).
І навіть якщо у вашому розпорядженні шість гигов оперативки, то складну сцену з безліччю величезних текстур і купою геометрії буде важкувато (або зовсім нереально) візуалізувати на шість і більше тисяч пікселів.
При невеликому обсязі оперативки можна ще викрутиться за рахунок збільшення свопу, але це не завжди працює. Та й збільшувати так можна не до нескінченності. Плюс своп працює ЗНАЧНО повільніше, ніж оперативна пам'ять.
Багато 3D-художники і 3D-дизайнери навіть не підозрюють, що маючи всього одну машину в наявності можна використовувати мережевий рендер. І не просто використовувати його заради забави, а вирішувати таким чином дуже нагальну проблему - візуалізувати ДУЖЕ великі картинки.
Для початку, якщо ви працюєте з великими картинками, то ви повинні використовувати 64-бітну версію 3ds Max. Оскільки тільки так ви зможете використовувати ВРЮ оперативку, яка у вас є, а не тільки 2 Гб (або 3 Гб, якщо ви прописали в файлі boot.ini ключ / 3GB), як у випадку 32-бітової версії.
Тепер про те, як налаштувати Backburner.
Спочатку ви повинні його встановити (це в тому випадку, якщо ви при установці 3ds Max прибрали галочку з пункту «Встановити Backburner»).
Відкривайте вашу супер-сцену в 3ds Max.
Далі заходимо в Пуск -> Autodesk -> Backburner і запускаємо Manager.
Якщо у вас відразу відкрилося вікно Backburner Manager General Properties, то ви залишаєте все настройки за замовчуванням і тиснете OK. Якщо відкрився Backburner Manager, то заходите в меню Edit -> General Settings і перевіряєте, чи все там у вас стоїть за умовчанням. Жмакаем OK і згортати вікно Менеджера.
До речі, якщо ви хочете рендерить вашу картинку на більш ніж одному комп'ютері, то Менеджер потрібно запустити тільки на одному з них.
Заходимо в Пуск -> Autodesk -> Backburner і запускаємо Server.
Знову ж, перевіряємо чи все настройки стоять за замовчуванням і згортати Server. Міняти тут також нічого не потрібно (хіба що можна поставити галочку Automatic Search для автоматичного пошуку Менеджера).
У разі, коли вам потрібно рендерить на більш ніж одній машині, то Server потрібно запускати на кожній з них. А в поле Enter Manager Name or IP Address потрібно буде вказати ім'я або айпішник тієї машини, на якій запущений Manager (або поставити галочку Automatic Search).
Останнє, що потрібно зробити при підготовчих роботах - це запустити Monitor (Пуск -> Autodesk -> Backburner -> Monitor).
Далі, у вікні Backburner Queue Monitor натискаємо на саму верхню ліву кнопочку Connect і єднаємося з localhost (тобто з нашим комп'ютером). Знову ж таки, все настройки за замовчуванням.
Після успішного з'єднання ви повинні внизу побачити поточне з'єднання.
Якщо воно не з'явилося, значить щось не так. Може фаєрвол не пускає, може у вас кілька мережевих підключень і Manager шукається не там, де потрібно чи якісь інші причини.
Відкриваємо наш 3ds Max з уже повністю готовою сценою, викликаємо по F10 Render Setup і ставимо галочку Net Render.
Тиснемо кнопку Render. Вискакує вікно Network Job Assignment, де і відбуватиметься найголовніше таїнство - поділ всієї картинки на смуги.
На малюнку вище потрібно поставити галочку Split Scan Lines, щоб розділити всю вашу величезну картинку на горизонтальні смуги, які будуть визуализироваться по черзі. Висоту цих смужок потрібно вибирати в залежності від того скільки вам потрібно заощадити пам'яті. Чим тонше смужка, тим менше знадобиться пам'яті для її візуалізації. Зараз перейдемо до налаштування смужок. Для цього натисніть кнопочку Define (навпроти галочки Split Scan Lines) - відкриється вікно налаштування смужок Strip Setup.
На скріншоті вище у мене, чомусь, що не влізло повністю дозвіл 8000 x 6000 pixels (видно тільки 8000 x). Але кількість смужок (Number of Strips) і їх висоту (Strip Height) Backburner розраховує вірно. Ці два параметри взаємопов'язані. Тобто якщо я вкажу висоту 100 пікселів, то кількість смужок автоматично зміниться на 60.
Також ви можете налаштувати такий параметр як перекриття смужок (Overlap). Тобто на скільки пікселів одна смужка буде налазить на наступну. Це стане в нагоді, якщо у вас з якихось причин помітний стик між смужками, то тоді в Photoshop'е можна накласти ці смужки один на одного з плавним переходом по прозорості.
Висоту смужок можна задавати в пікселях і в процентах.
Ще я знімаю галочку Delete Temporary Images Upon Completion (Видаляти смужки по закінченню рендеру). Хіба мало, може стануть в нагоді.
Після настройки смужок натискаємо кнопку Connect (для з'єднання з manager'ом) і після з'єднання тиснемо кнопку Submit (ці кнопки знаходяться у вікні Network Job Assignment). Усе!
Далі ви можете працювати над іншим проектом або відпочивати, а Backburner сам отрендеріть все смужки і в кінці склеїть їх в одну величезну картинку.
Саме ці два завдання висять зараз у вас в черзі в вікні Backburner Queue Monitor (якщо ви вже натиснули Submit).
Точно таким же чином можна візуалізувати ці смужки на багатьох машинах з'єднаних в мережу. Просто потрібно на кожній машині запустити Server.
Таким чином, навіть маючи в своєму розпорядженні один стаціонарний комп'ютер + один ноутбук + один нетбук (як в моєму випадку) можна в три рази скоротити час візуалізації, якщо налаштувати мережевий рендер. Причому малий обсяг оперативної пам'яті тут не перешкода. А ось три додаткових ядра по 1.6 ГГц не завадять (на ноут двоядерний процесор і на нетбуці одноядерний).
Уточнення! Якщо ви використовуєте Mental Ray, то потрібно попередньо прорахувати Final Gather і Photon maps (для каустики і глобалкі). Те ж саме стосується Vray - потрібно попередньо прорахувати Light cache і / або Irradiance map.
Це потрібно зробити, щоб для ВСІХ смужок підтягувалися однакові ці файли. Інакше буде видно шов при стику різних смужок, оскільки кожен раз при прорахунку нової смужки будуть заново прораховуватимуться і ці карти.