Оптимизация сцены для быстрого рендера в Corona

Автор
Сообщение
На сайте c 05.05.2016
Сообщений: 23
Санкт-Петербург

Заметка обновлена 04.03.2018

Салют

Решил вставить свои пять копеек и сформулировать комплекс процедур для лечения долгого рендера, т.к. обычно советуют что-то одно и это редко меняет положение дел.

Для существенного увеличения скорости рендера нужно сделать несколько процедур:

1. Зайти в File>References>Asset tracking и прописать пути для текстур, ies, hdri. Пути не должны содержать кириллических букв, т.е. должны быть написаны латиницей. Чем короче путь, тем быстрее стартует рендер.

2. По возможности конвертировать модели в Editable Poly. Либо в Editable Mesh, однако у этого формата отсутствует настолько же эффективная система сглаживания; вариант подойдет для отдаленных объектов. 

3. Приаттачить разные элементы моделей друг к другу.

4. Для Corona render выставить diffuse level 0,7 для белых материалов; 0,6 - 0,5 для светлых текстур, 0,4 - 0,3 для текстур средних тонов, 0,2 - 0,1 для темных текстур. Для металлов ставится 0.

Upd. В новых версиях короны, начиная с 1.5, по моим наблюдениям, текстуры стали отображаться корректно в диапазоне 0,8-1,0, а так же пропал эффект сильного выбеливания темных текстур при указанных значениях. Лишний шум при высоких значениях diffuse level теперь тоже не наблюдается. В связи с этим пункт 4 более не актуален. Единственное правило, у металлов, зеркал и стекол diffuse level равен 0.

5. Lightmixer замедляет старт рендера. Чем больше LightSelect'ов, тем дольше и старт соответственно. Для каждого LightSelect'а денойзинг применяется отдельно, что увеличивает время на денойзинг.

6. Множество групп в группах тоже замедляет старт.

7. Hdri от Питера Гутрие жестко шумят и приходится дольше ждать пока шум уйдет. Жестко от слова очень, хотя не тестировал все его карты, а только парочку. 

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

9. Не выкручивать интенсивность самосветящихся материалов. Светлячки обеспечены.

Upd. На данный момент разработчики утверждают, что объекты с CoronaLightMtl (с галочкой emit light) являются полноценными источниками света, однако советуют не делать для таких объектов плотную сетку чтобы облегчить просчет.

10. Даже используя Lightmix лучше заранее всё равно подогнать интенсивность источников света к необходимому соотношению, иначе, опять же, лишние шумы.

11. Перевод в прокси в corona лично для меня пока что находится под вопросом в плане ускорения старта, но навигацию во вьюпорте он облегчает.

12. Использование галочки Caustics в параметрах материала стекла существенно увеличивает время просчета.

13. Denoising (шумоподавление), совместно с Lightmix, бывает длительным, если создано много Lightselect, т.к. процесс денойзинга применяется отдельно к каждому Lightselect'у. Счет идет на минуты.14. Использовать CoronaPortalMtl. Рендер в целом идет ощутимо шустрее. Строгих правил по установке портала нет, есть несколько рекомендаций: портал не желательно пересекать с геометрией. Края портала соответствуют краям оконного проема. Портал не должен иметь толщину, т.е. это плейн.

Лайфхак: при первом запуске рендера нужно выставить небольшое разрешение, после того как рендер начнется, остановить его. Поставить необходимое разрешение и запустить просчет снова.

P.S. Это все приемы которые сходу вспомнил. Некоторые из них очень действенные. К примеру, прописывание путей в одной моей сцене сократило примерное время ожидания почти в двое. Но лучший результат достигается с учетом использования всего и сразу. Дополняйте, если что-то упустил.

P.P.S. С выходом новых версий короны некоторые пункты могут стать не актуальны, как пункт 4, либо частично потерять актуальность. Пожалуйста, если вы не согласны с каким либо пунктом, не нужно оскорблять или высмеивать меня. Мои наблюдения основаны на личном опыте использования данного движка, поэтому могут не совсем совпадать с реальным положением дел. За точной информацией обратитесь к технической документации от разработчиков (Чего многие, уверен, делать не будут, ибо проще зайти на форум).

На сайте c 17.07.2008
Сообщений: 322
С-Петербург
Цитата Revered:
Не совсем так. Источник шумов - это очень яркие объекты малой площади. Лучше всего это решать через рейсвич материал. Кстати это справедливо и например для плафонов и рассеивателей ламп. Об этом даже у разрабов было в одном из видосов.

Согласен, как один из вариантов. Хотя и считаю рейсвич  материалы неким фарисейством, все-таки пытаемся избавляться от фейка, а тут чистейший фейк :))) Что касается плафонов, то тут все проще: галочка на тин но рефракшн и вот вам счастье. И рефракция есть, и шум минимален.

На сайте c 14.06.2012
Сообщений: 15032
Москва

О, тут собрание адептов скрипта имени Diffuse Level = 0.8 ?

Заблудшие души )))

На сайте c 23.09.2009
Сообщений: 7392
Киев
Цитата Yehat:
Diffuse Level = 0.8

0,7, Михаил, ну как можно было такое ляпнуть? Вот откуда вы взяли 0,8? С потолка?

Только 0,7 - это выверенная цыфра, подтвержденная множеством исследований специалистами в данном вопросе. 

   И кстати, есть еще один секрет, но его все скрывают. Если понизить левел везде до 0,01 - вопще летать будет все, отвечаю.

На сайте c 15.09.2013
Сообщений: 238

Пути не должны содержать кириллических букв, т.е. должны быть написаны латиницей. Чем короче путь, тем быстрее стартует рендер.

Really?

Автор, скажите пожалуйста, какой у вас опыт работы в 3Ds max?
На сайте c 17.07.2008
Сообщений: 322
С-Петербург
По-поводу кириллических путей и русских названий в текстурах и названиях. На вашем компьютере это может быть не критично, но вот при упаковке файла в архив, вы видели что архиватор делает с кириллическими именами? А теперь предположим, что вы делаете часть большого проекта, и это все отправляется на просчет на рендер-ферму. Тогда вам за русофильство еще и штрафы выкатят, т.к. никто на ферме вам вручную заново пути прописывать не будет, а вы из своего кармана оплатите просчет с потерянными картами. 3D MAX давно обучен понимать русские символы, но вот зарубежному серверу вы это не объясните.
На сайте c 23.09.2009
Сообщений: 7392
Киев
Цитата DoCentttt:
Если понизить левел везде до 0,01 - вопще летать будет все, отвечаю

Вот пруф. Сверху альбедо на 1, снизу - улучшенное 0,01 альбедо. Обратите внимание на время и количество пассов до уровня шума 2 процента. Очевидно же, что чем ниже альбедо - тем быстрее рендер.

3b3e9f5ea42754571f427e5a224eb26e.jpg

Пользуйтесь на здоровье таким лайфхаком - Альбедо 0,01. Кто посмелее - можете использовать альбедо 0,001, ну или 0,0001 - это уже как позволяет ваша настройка по количество знаков после запятой.

На сайте c 24.06.2014
Сообщений: 4146

OFFTOP

DoCentttt, ждем "Corona Render 2.0", я почти уверен что "Ondra" основным нововведением сделает возможность использовать 0.0 множитель и тогда заживем ! Ух как заживем smiley-biggrin.gif

UPD Ох, вот это промашка вышла ! 0.0 ведь уже можно использовать, а я и не знал ! Ладно, тогда ждем когда можно будет этот множитель в минус загонять, -1.0 для начала было бы отлично, в перспективе конечно было бы все же лучше -10... Что-бы материалы как-бы всасывали в себя лишний свет в помещениях smiley-crazy.gif

На сайте c 23.09.2009
Сообщений: 7392
Киев
Цитата Earanak:
возможность использовать 0.0 множитель

Так можно ж уже. Но это, конечно, для самых-самых смелых и тех, кто сильно-сильно торопиться, чтоб отрендерить.

На сайте c 10.12.2009
Сообщений: 5680
Kalevan
Цитата Lumer:
Согласен, как один из вариантов. Хотя и считаю рейсвич материалы неким фарисейством, все-таки пытаемся избавляться от фейка, а тут чистейший фейк :))) Что касается плафонов, то тут все проще: галочка на тин но рефракшн и вот вам счастье. И рефракция есть, и шум минимален.

Что изменит галочка Thin для рефракции на плафонах, если плафоны делаются при помощи Translucency? (тут должна быть картинка с задумчивым раптором но лень искать)Касаемо фейков - наша цель не от фейков избавиться а сделать красивую и правдоподобную картнику, максимально снизив рендертаймы по возможности. Можно всё "физичненько" оставить - ну будет считаться пару тыщ пассов ок, а можно чуть-чуть помочь движку и заметно снизить количество вычислений в некоторых местах.

На сайте c 15.09.2013
Сообщений: 238
Цитата Lumer:
По-поводу кириллических путей и русских названий в текстурах и названиях. На вашем компьютере это может быть не критично, но вот при упаковке файла в архив, вы видели что архиватор делает с кириллическими именами? А теперь предположим, что вы делаете часть большого проекта, и это все отправляется на просчет на рендер-ферму. Тогда вам за русофильство еще и штрафы выкатят, т.к. никто на ферме вам вручную заново пути прописывать не будет, а вы из своего кармана оплатите просчет с потерянными картами. 3D MAX давно обучен понимать русские символы, но вот зарубежному серверу вы это не объясните.

Я к тому что на время рендера это будет так же влиять как разница между заглавными буквами или строчными.

По поводу отправки клиенту или на рендер-ферму, то просто используйте Cyrillic Paths Fix, что бы избежать русских кириллических символов:

http://3ddd.ru/forum/thread/show/3ddd_cyrillic_paths_fix 

На сайте c 21.04.2015
Сообщений: 204
Томск
Всем привет. Задалась вопросом, можно ли конвертнуть как-то текстуры виреевские в корону. Осваиваю корону. У меня куст светиться с виреевскими текстурами. Как это можно исправить?)
На сайте c 01.06.2010
Сообщений: 983
Тольятти
вместе с короной есть стандартный конвертер. Находится в скриптах.  Только после конвертирования надо тщательно проверить материал, особенно френель часто скачет.
На сайте c 10.12.2009
Сообщений: 5680
Kalevan
Цитата D.D.Daria:
Всем привет. Задалась вопросом, можно ли конвертнуть как-то текстуры виреевские в корону. Осваиваю корону. У меня куст светиться с виреевскими текстурами. Как это можно исправить?)

Можно изучить теорию материалов и нюансы их создания в каждом из этих рендеров. поможет 100%

На сайте c 24.06.2014
Сообщений: 4146

Ума не приложу, зачем, почему - но я захожу каждый день в эту тему, на протяжении более месяца в ожидании что бы автор рассказал нам про множитель Diffuse и его связь с Albedo в Corona-Render-е.

Наверное я просто наркоман и упоролся smiley-sad.gif

На сайте c 05.05.2016
Сообщений: 23
Санкт-Петербург
Цитата Earanak:

Ума не приложу, зачем, почему - но я захожу каждый день в эту тему, на протяжении более месяца в ожидании что бы автор рассказал нам про множитель Diffuse и его связь с Albedo в Corona-Render-е.

Наверное я просто наркоман и упоролся smiley-sad.gif

Я уже рассказал. Все, что я могу сделать, это предоставить рендеры на сравнение, но что-то я не вижу тут интереса, я предлагал, но никто эту идею не поддержал.

На сайте c 24.06.2014
Сообщений: 4146

MaximRodnov, дело в том что разницы никакой не будет. Приглушать текстуру вручную в Photoshop, или приглушать через Output, или через Color Correction/Composite, без разницы. Множитель делает то-же самое по сути. Темнит текстуру. От того уровень 'альбедо' конкретного материала снижается, от того и скорость рендера меняется да и на Элементе 'альбедо' пропадают красные оттенки (если они были).

Так что еще раз - разницы никакой не будет если текстура изначально КОРРЕКТНАЯ. Т.е не высветленная, т.е если в ней исключено освещение так-сказать (например если это фототекстура). Делать ее ЕЩЕ темнее занижая еще и множителем вы просто снизите этот условно-называемый альбедо ниже нужного, да выйдет рендер еще быстрее но это будет не корректно.

Сам по себе множитель никаким образом не влияет на корректность альбедо. Это банальный множитель (смеситель Diffuse с черным цветом). Почти все новички Коронщики путаются и внушают себе что этот множитель это нечто такое что нужно по таблице подбирать smiley-biggrin.gif Типа если вы ставите текстуру снега то это значит множитель нужно ставить 0,75 а если белая бумага то 0,65 а если штукатурка то 0,45... Ну так вот, это нифига не так работает. Если вы приглушите вручную текстуру или например зададите ей вручную смешивание или она изначально корректная то множитель нету никакого смысла трогать.

Вы почитайте другие подобные темы по Короне и Альбедо. Прям тут на 3DDD, в разделе блогов и форума. Вы не один такой, много начинающих Коронщиков думаю так-же как и вы, и уже 100 раз обсуждался этот момент. Раз-за-разом, одно и то-же.

Вот CeBeP_2012 хорошо и четко написал :

http://3ddd.ru/forum/thread/show/albedo_v_corona#post556056 

Да и вообще почитайте актуальные темы и блоги здесь на 3DDD...

На сайте c 23.09.2009
Сообщений: 7392
Киев

Earanak, люди просто не могут понять, что альбедо - это совокупность характеристик, а не один какой то параметр.

И еще не умеют слышать и слушать других людей  - что, на мой взгляд, намного хуже, чем простое непонимание. Просто забей) Неблагодарное это дело - спорить с упёртыми. Ну разве что поугорать.

На сайте c 05.05.2016
Сообщений: 23
Санкт-Петербург

Earanak,

Меня поражает ваша, и не только ваша, невнимательность, в посте я НЕ написал, что diffuse level - это альбедо. Это вы сами придумали и мне это утверждение приписали. В одном из сообщений я пояснил, что этот множитель регулирует количество рассеяного света. Не абстрактного света, а вполне реального, ну то есть виртуального, не суть. Не знаю как для вас, но для меня слвершенно очевидно, что разные материалы отражают разное количнство света, и если поставить два черных шара в сцене рядом и установить у одного из них level на 1, а у второго на 0,1, то материал последнего будет не только темнее, но и более контрастным и с более четким рисунком, а тень, которую отбросит этот шар, будет более глубокая и менее выбеленная. Не знаю почему вы называете это Альбедо, да и не хочу знать.

По поводу грамотно отрегулированных текстур - только этот факт, сам по себе, не делает реалистичными материалы, поэтому у многих артеров работы в галерее все замыленные и выбеленные, даже пост в фш не спасает. Такие работы - брак. Зато теги ставят "corona". Как будто это автоматом делает работу на голову выше.

Вообще, то что корона легче и в ней ничего делать не надо - это миф.

На счет коэффициентов, приведенных мной в топике - это усредненные цифры, для примера. Я придерживаюсь мнения, что правильно выставив множитель, материал будет выглядеть реалистичным в любой сцене.

На сайте c 10.12.2009
Сообщений: 5680
Kalevan
Цитата MaximRodnov:
На счет коэффициентов, приведенных мной в топике - это усредненные цифры, для примера. Я придерживаюсь мнения, что правильно выставив множитель, материал будет выглядеть реалистичным в любой сцене.

На самом деле мы работаем в гамме 2.2 что как бы по определению уводит картинки и текстуры в более светлые тона. И кстати ничего плохого в этом нет - добавить контраста на посте гораздо проще чем адекватно убрать контраст избыточный. А сырые картинки с рендера и должны выходить слегка washed-out без откровенных провалов по тёмным участкам и откровенных пережигов по светлым, таким образом мы получаем на выходи из рендер-движка максимум информации. Потом на пост-обработке мы уже решаем что делать с этой избыточной информацией.

На сайте c 24.06.2014
Сообщений: 4146

Я-то думал 'порофлить', а тут оказывается "тяжелый случай". Ладно, удаляю тему с закладок. Считайте дальше что этот множитель творит чудеса и влияет хотя-бы на что-то, кроме затемнения текстуры или цвета в Diffuse слоте...

Цитата MaximRodnov:
если поставить два черных шара в сцене рядом и установить у одного из них level на 1, а у второго на 0,1, то материал последнего будет не только темнее, но и более контрастным и с более четким рисунком, а тень, которую отбросит этот шар, будет более глубокая и менее выбеленная.

Просто какой то абсурд... Никакой разницы не будет. Ни по отдельности при 0.1/1.0, ни если их рядом поставить. GI отражает от них ровно столько же света, само собой при соответствии цвета срезанного 0.1 множителем и при сопоставлении с 1.0 множителем. Вообще, никакой разницы не будет.

0.1 (RGB 200/200/200) == 1.0 (RGB 20/20/20) - выходят два абсолютно одинаковых шарика с одинаковыми светоотражающими свойствами. В том числе это видно на Рендерэлементах (SourceColor/Albedo/Indirect).

0.1 (RGB 100/100/100) == 1.0 (RGB 10/10/10)

0.1 (RGB 255/255/255) == 1.0 (RGB 25/25/25)

0.1 (RGB 10/10/10) == 1.0 (RGB 1/1/1)

Абсолютно то-же самое относиться и к ТЕКСТУРАМ. Просто на примере RGB легче было показать, если темнить текстуру через RGB Output или в Photoshop или через Composite Map, ну или через Color Correction - результат абсолютно идентичен изменению Diffuse Multiplier-а.

0fb97689b4ec3392fed980830ed2fb00.jpg

Берете Рендер-Элемент SourceColor/Albedo/Inderect, и зажатой правой кнопкой мышки водите по Corona-Фреймбуферу и сравниваете цвета у шариков. Ну и визуально сравниваете в VFB-History - вообще никакой разницы нету. В скорости рендера тоже.

Source Color Элемент :

fddfa614d957cdec7d914b6531aed94f.jpg

Читают эту тему: