Оптимизация сцены для быстрого рендера в 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 18.11.2014
Сообщений: 245
Таджикистан

ну круто,че,спасибо тебе,добрый человек...безвозмездно делиться знаниями не каждому дано))

Ps насчет прописывания путей--у меня часто бывает,что текстуры хранятся в неск местах,для сбора коих я в опред момент делаю ресурс коллектор (Resource Collector--там где молоток,и кнопка More) и вроде все текстуры собираются в 1 месте,а как потом в ассэт трекинге их обновить,чтоб он уже не искал их в предыдущих местах?

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

Уточнения:

2. По возможности конвертнуть модели в Editable Mesh, а не поли.

4. "Для Corona render выставить diffuse level 0,7 для белых материалов; 0,6 - 0,5 для светлых текстур, 0,4 - 0,3 для текстур средних тонов, 0,2 - 0,1 для темных текстур. Для металлов ставится 0" - это бред. ЗАчем в темной текстуре еще и левел уменьшать? Вы не понимаете, что такое дифьюз левел и зачем его уменьшают.

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

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

   Но вы можете не прислушиваться, спорить я не буду. Это всего лишь моя точка зрения на ваши советы.

На сайте c 28.09.2011
Сообщений: 785

спасибо за советы! 

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

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

МОжете какие-то другие, Качественные посоветовать?

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

Уточнения:

2. По возможности конвертнуть модели в Editable Mesh, а не поли.

4. "Для Corona render выставить diffuse level 0,7 для белых материалов; 0,6 - 0,5 для светлых текстур, 0,4 - 0,3 для текстур средних тонов, 0,2 - 0,1 для темных текстур. Для металлов ставится 0" - это бред. ЗАчем в темной текстуре еще и левел уменьшать? Вы не понимаете, что такое дифьюз левел и зачем его уменьшают.

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

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

   Но вы можете не прислушиваться, спорить я не буду. Это всего лишь моя точка зрения на ваши советы.

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

Есть у меня и вопросы:

1. В чем преимущество editable mesh перед editable poly? на сколько мне известно, mesh имеет несколько недостатков косательно геометрии модели в целом и её отображения в частности

2. По поводу Diffuse level это даже не вопрос. Попытаюсь объяснить свою точку зрения.

Параметр Level отвечает за рассеивание света и его поглощение материалом. Чем светлее материал, тем больше света он рассеивает, тем выше должен быть параметр level. Темные материалы поглощают бОльшую часть света и отдают малую. При завышенных значениях Level, изображение выбеливается и замыливается, создается впечатление, что пропадает "глубина" изображения, тени также выбеливаются, что выглядит неестественно, особенно при большом количестве темных и не слишком светлых материалов.

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

MaximRodnov, Editable Mesh весит ощутимо меньше чем Editable Poly в оперативной памяти и по-моему даже немного меньше весит в видео-памяти. Возьмите модельку потяжелее, конвертните ее в Mesh/Poly, сохраните файл-сцену и сравните размер. Так-же запустите "Tools -> Channel Info..." и сравните количество данных которые хранит в себе Poly объект и Mesh.

Вообще все подряд конвертировать в фактическую геометрию это не всегда хорошая идея, бывает что параметрическая геометрия (с модификаторами) легче для ОЗУ, даже с учетом того что она все равно компилируется в Mesh перед рендером. По ситуации конечно-же.

RGB 100/100/100 = (1.0 Diffuse Level) = Одинаковый результат = RGB 200/200/200 = (0.5 Diffuse Level)

Множитель сам по себе не задает никакого уровня "Альбедо". Он просто режет выставленный цвет или текстуру в Diffuse. Его не всегда удобно использовать и если текстура изначально корректная то его трогать и вовсе не нужно. Ну а уровень условного "Альбедо" выходящего за рамки нормы можно и на глаз определить.

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

спасибо за советы! 

МОжете какие-то другие, Качественные посоветовать?

Конечно, VP HDRI Skydomes от Vizpark™ у меня на хорошем счету. Конечно, шума немного больше, чем от связки Corona sun + sky, но в целом не так критично

На сайте c 24.06.2014
Сообщений: 4139
Не знаю как там в Короне, но в Вирее есть практика использования двух HDRI. Одна меньшего разрешения, смазанная Blurr-ом прилично так, иногда на ней можно солнце оставить 'без блюра' или дорисовать вручную в HDR-диапазоне, так-же в ней подкручен немного контраст (через Inverse Gamma например, для четких теней). Другая версия этой-же HDRI идет в полном разрешении, без Blurr-а, используется она для отражений в материалах. Шумы они как-бы появляются от высокого разрешения HDRI текстуры которая стоит в слоте освещения и из-за разницы интенстивности каждого пикселя в ней появляются шумы в сцене, когда она смазанная то шумов само-собой меньше. Ну а разницу именно в освещении вы не заметите, проверенно.
На сайте c 05.05.2016
Сообщений: 23
Санкт-Петербург
Цитата Earanak:

RGB 100/100/100 = (1.0 Diffuse Level) = Одинаковый результат = RGB 200/200/200 = (0.5 Diffuse Level)

Множитель сам по себе не задает никакого уровня "Альбедо". Он просто режет выставленный цвет или текстуру в Diffuse. Его не всегда удобно использовать и если текстура изначально корректная то его трогать и вовсе не нужно. Ну а уровень условного "Альбедо" выходящего за рамки нормы можно и на глаз определить.

Цифры которые Вы приводите верны, но только для "голых" материалов, без текстуры.

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

MaximRodnov, да я к тому что сам по себе множитель нафиг не нужен если текстура или указанный RGB цвет корректный изначально. Сам по себе множитель не делает из текстур и цветов корректного "Альбедо". Все что он делает это затемняет текстуру/цвет. Но опять-же, если она корректная то множитель сделает ее просто еще темнее чем нужно.

UPD Ой всё, просто "ой всё", очередной коронщик принимающий множитель за уровень Альбедо.

На сайте c 05.05.2016
Сообщений: 23
Санкт-Петербург
Цитата Earanak:
MaximRodnov, да я к тому что сам по себе множитель нафиг не нужен если текстура или указанный RGB цвет корректный изначально. Сам по себе множитель не делает из текстур и цветов корректного "Альбедо". Все что он делает это затемняет текстуру/цвет. Но опять-же, если она корректная то множитель сделает ее просто еще темнее чем нужно.

Повторюсь, параметр левел это не "яркость" сама по себе, а количество рассеивающегося света, отраженного от поверхности.

Темнее материал только кажется.

На сайте c 23.09.2009
Сообщений: 7392
Киев
Цитата Earanak:
UPD Ой всё, просто "ой всё", очередной коронщик принимающий множитель за уровень Альбедо.

Соглашаюсь и тоже ухожу от бесполезной дискуссии. Это уже даже не смешно.

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

   Повторяю вопрос: Зачем темной битмапе еще и крутилку понижать?

Я готов привести вам примеры,  если необходимо. Но придется подождать, в ближайшее время буду занят.

На сайте c 12.03.2013
Сообщений: 1005
Ростов-на-Дону

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

Советую блюрить все хдрки, как от Питера Гатри, так и другие, тогда никакого шума от них не будет. и если нам не нужны жесткие тени, то можно ещё уменьшить её раза в 4, тогда скорость запуска рендера ещё увеличится

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

 коронщик принимающий множитель за уровень Альбедо.

Дело-то в том, что выкрученный Diffuse level, как его ни называй, альбедо или по-другому, но он сильно влияет скорость рендера. Как минимум это - факт. Если все же необходимы тесты, то я готов их провести и выложить результаты, только это займет какое-то время.

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

Текстуры нужно нормальные готовить. Диффуз левел вообще не надо трогать за ОЧЕНЬ редкими исключениями.

Про ХДРки от Гутри - полная лажа, отлично работают сколько ими пользуюсь.

Вообще аффтар накатал адскую простыню ниачом, а кое какие советы даже наоборот вредные. А секрет быстрого рендера в Короне (кстати как и в любом другом рендере) прост:

- аккуратная геометрия

- настройка светильников со значениями максимально близкими к реальным

- нормально настроенные материалы.

Всё! И никаких вжух-вжух не надо.

На сайте c 16.02.2015
Сообщений: 456
Интернет
Цитата MaximRodnov:
Пути не должны содержать кириллических букв, т.е. должны быть написаны латиницей.

Программы либо понимают кириллицу и работают с ней, либо нет. На скорость это не влияет.

На сайте c 10.12.2009
Сообщений: 5680
Kalevan
Цитата booka80:
Программы либо понимают кириллицу и работают с ней, либо нет. На скорость это не влияет.

Макс понимает, но не любит кириллические символы. На скорость это конечно не влияет, просто могут быть разные неприятные глюки из-за этого.

 
На сайте c 17.07.2008
Сообщений: 322
С-Петербург

Есть рациональные моменты. К примеру: группы в группах. Действительно, чем больше объектов и групп в сцене - тем медленнее рендер, это проверено. По-поводу прокси, их имеет смысл использовать, когда у вас в сцене многократно повторяется тяжелая геометрия. Скажем, мягкая мебель, лепные элементы, светильники и т.п. Тогда вы по сути выносите за скобки сам объект и распределяете по сцене объект-ссылку на него. НО! Это не влияет на рендер, а лишь упрощает и ускоряет работу во вьюпорте, т.к. вам не нужно держать лишние миллионы полигонов в сцене. Но при рендере вся эта геометрия все равно грузится в память с конвертацией в треугольники, и прокси-объекты лишь помогают вам ее быстрее загрузить. А вот и существенные моменты, о которых не сказано.

1. Препятствия для прохождения прямого света. Если в кадре не участвует окно, не включайте тюль, стекла в окнах в процесс расчета освещения. Это существенно уменьшает количество шума и позволяет получить чистую картинку при меньшем кол-ве пассов.

2. Отключение галочки эмиттера в настройках самосветящихся материалов. Любой лайтмат со включенным имиттером - это источник шума, освещайте сцену только источниками.

3. Недостаточное освещение сцены. В сцене 1-2 источника в местах расположения ламп, и крохотное окно. Ошибка: максимально накрутить источники, поднять экспозицию в посте. Правильное решение (вариант): добавить декоративные акцентные источники освещения, типа вспышка. В реальной жизни так красивые кадры и делаются, устанавливаются дополнительные источники освещения.

4. Проверяйте внимательно геометрию сцены на наличие объектов с вывернутыми нормалями, незамкнутой геометрией. Для короны это самый главный генератор шума, который не уйдет ни при каких значениях пассов.

5. "Перемудрили с материалом". Есть любители накрутить сложные шейдеры с использованием материала Blend. Тут нужно быть аккуратным, в отдельных случаях такие шейдеры могут в 2-3 раза увеличить время рендера, в особенности, если оба смешиваемых шейдера имеют криво настроенные карты отражений.

Всем быстрых и чистых рендеров!

На сайте c 10.12.2009
Сообщений: 5680
Kalevan
Цитата Lumer:
2. Отключение галочки эмиттера в настройках самосветящихся материалов. Любой лайтмат со включенным имиттером - это источник шума, освещайте сцену только источниками.

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

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