Оптимизация сцены для быстрого рендера в 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 05.03.2011
Сообщений: 2505
Krasnodar
Цитата MaximRodnov:
шара в сцене рядом и установить у одного из них level на 1, а у второго на 0,1, то материал последнего будет не только темнее, но и более контрастным и с более четким рисунко

От меня минус. Бред полнейший. Ты физику учил? Конечно блин от темного материала будет меньше отраженного света. Ты тупо делаешь текстуру темнее и она соответственно дает более приглушенные отскоки. Пол форума тебе толдычат. Дело твое. 

На сайте c 24.05.2009
Сообщений: 9359

А че забыли про сетевой рендер? Он капец как тупит при старте и окончании, а чем больше рендер компьютеров, тем ситуация усугубляется.

Поэтому для настройки рендера быстрей и удобней использовать только мощности локального компьютера. Касается не только короны.

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

Привет, решил поднять тему так как перечитав ее не нашел ответа на свой вопрос,

работаю с большими экстерьерными сценами где много зелени и прочих объектов, 

на компе установлено 48 гб оперативки 1333 скорость, когда сцена в оперативке занимает места меньше чем 48гб то интерактив стартует долго конечно, но он хотя бы стартует и можно как то работать , но когда размер сцены в оперативке переваливает за это число то это просто убийство какое то комп виснет и отказывается работать, видимо он выгружает из оперативки на жесткий диск и гоняет объекты туда сюда с чем и связано торможение компа, выключение слоев не помогает все равно вся сцена грузится в оперативку. пока единственным для себя выходом нашел выгружать из сцены слои с которыми не провожу никаких изменений так сцена меньше весит и жрет меньше оперативы, потом перед рендером слои опять добавляю и отправляю уже на рендер на более мощный комп на котором 64гб оперативки там все быстрее грузит конечно же, может кто знает какие нибудь пути решения данной проблемы в короне?? может сами объекты как то оптимизировать чтобы они меньше занимали места в оперативке или что то в этом роде, вообщем накидайте советов а я попробую сделать все что вы сказали

На сайте c 24.05.2009
Сообщений: 9359
nikkyone, почитайте про XRef Object, должно чуть-чуть помочь. Ну и старайтесь пользоваться плагинами RailClone, Forest Pack они сильно помогают облегчить сцену. Правда рабочие только лицензионные.
На сайте c 22.09.2014
Сообщений: 21
Москва
прошу прощения что вопрос не в ту тему немного задал нашел на форуме тему как раз по моему вопросу https://3ddd.ru/forum/thread/show/ochien_dolghii_start_riendiera#  прочитал ее всю, так что можете не отвечать, хоть там и на старых коронах разбирались пример, впринципе уже все понятно, что ничего с этим не сделаешь только оптимизация и оптимизация, никакой волшебной галочки там нет)))
На сайте c 09.02.2007
Сообщений: 138

Про mesh и poly - mesh! Poly по сути - улучшенная для моделинга версия mesh (но не в Maya) mesh - легче и проще.

Сколлапсенный в мэш объект - идеален! Поскольку это база для генерации rendermesh. Грубо говоря перед просчетом сцены - все объекты со всеми модификаторами (smooth, turbosmooth, uvw map, bend, shell.. и тд) конвертируются в mesh, который и хранится в оперативной памяти (помимо уже загруженных максом). Опять же - ГРУБО ГОВОРЯ, poly, даже без модификаторов проходит ту же процедуру. Сам rendermesh - совокупность мешей из сцены.

Proxy - для вьюпорта однозначно плюс! С той поры когда стало возможным отображение fullmesh во вьюпорте, это скорее оптимизированный для рендер движка mesh объект - некий xRef. И тут  примерно тот де механизм загрузки в память, что и у инстанс объекта - описываются: геометрия объекта, текстурные координаты,ID материалов, групп сглаживания, параметры crease и точка пивота (собственно mesh), это загружается один раз далее идет описание только пивотов этого объекта в сцене - xyz, scale, rotate. Остальное - бубен разработчика движка. И тут для нас важно - 1000 000 полигонов в одном объекте который размножен 1000 раз и имеет в памяти 1000 записей о координатах, масштабе, повороте? или 1 объект в 1000 полигонов с миллионом координат для каждого? Например: для 1000 инстанс-боксов хаотично расположенных будет 1000 описаний их положения в сцене +описание 6 полигонов геометрии, или это один объект 6000 поликов с одной записью о координатах - вьюпорту проще последнее, рендеру без разницы, но если этот 6к объект размножен еще 1000 000 раз - то экономия оперативной памяти при рендеринге налицо. Это все примитивное описание, не затрагивает многих факторов. Но тем не менее.

Вывод/совет - instance - наше фсе! И в материалах тоже - для любителей 4-6к текстур актуально, два абсолютно идентичных материала, при copy ( отдельно или в составе multisub mat) будут восприниматься как ДВА разных, но если это инстанс маты то - читаться как один! И запись о пути к файлу текстуры одна и текстура один раз будет в памяти описана.

Про Albedo! Настраивайте свет в сер мате - все! Diffuse level спорный, хотя и работающий!!! (не смотря на критику) метод. Нужно лишь понимать что, это еще и прямая зависимость между базовым цветом/текстурой и абсолютно черным цветом если Diffuse level 0. Каждая текстура или цвет будут смешиваться с черным в пропорции указанной в Diffuse level. Куда проще настроить параметры камеры. Для мэтров фотошопа - этот спор сводится к вопросу ВЫ О ЧЕМ? 0_о! Особенно если исходник 32 bit (exr, hdri, tiff...)

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

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

Я фиг знает как там точно все устроено. Но суть сводиться к этому :

Низкие значения интенсивности от 1.0 до 10.0 + Высокое значение экспозиции - меньше шумов.

Высокие значения интенсивности от 100.0 до 1000.0 + Низкое значение экспозиции - более шумов.

При условии что результат сравнения по освещенности будет 1 в 1, конечно-же.

Стоит ли заморачиватся с тестами и сравнениями или это изначально "прохладная история" ?

На сайте c 08.05.2016
Сообщений: 571
Цитата Earanak:

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

Я фиг знает как там точно все устроено. Но суть сводиться к этому :

Низкие значения интенсивности от 1.0 до 10.0 + Высокое значение экспозиции - меньше шумов.

Высокие значения интенсивности от 100.0 до 1000.0 + Низкое значение экспозиции - более шумов.

При условии что результат сравнения по освещенности будет 1 в 1, конечно-же.

Стоит ли заморачиватся с тестами и сравнениями или это изначально "прохладная история" ?

1 в 1 быть не может: понижая экспозицию ты автоматически получаешь глухие тени а увеличивая множитель источника света - более плоские света.

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

orion27, вообще не понял об чем речь.

Экспозиция это ведь тупо множитель яркости. Как он может влиять на тени если Корона рендрит в линейном пространстве ? В супер пересвеченной сцене - понижая экспозицию мы не теряем деталей. И в тёмной сцене повышая экспозицию мы тоже не теряем деталей. Или я чет не понял про что вы... Типа я попробовал умножить в 100 раз силу источникам света и тупо сделал меньше экспозицию и получил идентичный результат как и был раньше. Только не понял ускорился ли рендер или нет и повлияло ли это как то на шумы.

Сделал так :

x100 к Силе светильников всех, включая Environment/Бэк/SelfIllumination множители.

Была экспозиция 2.0, сделал -4.0 - и ничего страшного с тенями не произошло.

Получился +/- одинаковый результат. Что-бы получить прям 1 в 1 результат пришлось бы подбирать экспозицию, типа -4.17 или около того. Но не суть...

P.S. Я изначально скептически относился к этой теме. Все что изменилось это значения Original Linear RGB в VFB... И лучи от источников света на весь вьюпорт smiley-biggrin.gif

UPD Попробовал умножить в 10 000 раз интенсивность. Ничего не изменилось.

На сайте c 21.04.2009
Сообщений: 1215
Ангарск
Ещё чуть-чуть ускоряется рендер, если итерации турбосмуз =0, ставится галка при рендере, и выставляется там. Именно ускоряет сам рендер, пусть немного, но всё же. К тому же так же облегчает навигацию во вьюпорте.
На сайте c 25.04.2008
Сообщений: 2359
Цитата Crooked:
Ещё чуть-чуть ускоряется рендер, если итерации турбосмуз =0, ставится галка при рендере, и выставляется там. Именно ускоряет сам рендер, пусть немного, но всё же. К тому же так же облегчает навигацию во вьюпорте.

вот только в турбосмусс для короны эта калка не работает и рендерит она с исходными итерациями ) потому и ускоряет

На сайте c 21.04.2009
Сообщений: 1215
Ангарск
GorillaZ, перед постом я сделал тест текущей модельки. 1 вариант с итерацией 2 - время 2.52. 2 вариант с итерацией 0, включенной галкой и там 2 - время 2.49. Результат сглаживания и уровень шума одинаковый. Попробуйте.
На сайте c 24.06.2014
Сообщений: 4144

GorillaZ, зачем пугать то так )) Проверил, галочка работает. 3Ds Max 2017 + 1.7 RC7

Всегда ей пользовался и на 1.3 и на 1.5 короне, типа стоит 0 Итераций, а Рендер-Итерации 1-3.

Если бы она не работала, наверное я-бы заметил угловатые диваны и прочие объекты smiley-biggrin.gif

На сайте c 25.04.2008
Сообщений: 2359

ну...может в новых версиях короны уже прикрутили...в старых же я намучился когда в рендере вылазила несглаженная модель

тоже проверил, работает на 1.6. спасибо

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

Здравствуйте коллеги!

Вопрос: влияют ли объекты, которые непосредственно в кадр не попадают, на время рендера? Стоит ли прятать объекты, которые не в кадре, с целью ускорения?

На сайте c 27.02.2016
Сообщений: 78
Санкт-Петербург
Цитата Slazzo:

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

Из вышесказанного, можно сделать вывод, что скрывать предметы в сцене не имеет смысла? Правильно я понял?

На сайте c 23.09.2009
Сообщений: 7392
Киев
Цитата Slazzo:
Фруструм оптимизаций

Какой такой фруструм оптимизаций? Это что-то связано с фрустрацией?

На сайте c 11.03.2017
Сообщений: 14
Киев
Я как новичек давай пробовать все и сразу, т.к. оптимизация сцены просто необходима, все тормозит и во вьюпорте и рендер на 300 пассов занимает 5 часов! (комп у меня хороший стоит, собирался спец для работы с максом) Вообщем сделала только хуже( попереводила все в меш, покрутила дифьюз и все сцена умерла( Теперь чтоб даже камеру подвигать надо набраться терпения( Товарищи помогите! можете я заплачу за сдельную работу- так сказать - за оптимизацию этой сцены?
На сайте c 17.12.2015
Сообщений: 1098
Mozart:


Пожизненный бан
Цитата vlada_design:
рендер на 300 пассов занимает 5 часов

это норма

На сайте c 10.12.2009
Сообщений: 5680
Kalevan
Цитата vlada_design:
рендер на 300 пассов занимает 5 часов!

А зачем 300 пассов когда в последних версиях короны хватает и 80?

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