Финальный рендер. Картинка кликабельна, можно зырить в 4k
Короче тут странная вёртска. На всякий случай поясню - в тексте всё идёт так: сначала картинка, а под ней серая подпись курсивом. Это не подзаголовок, а именно подпись к картинке.
Ладно, теперь суть - к созданию этого рендера меня привела случайная цепь событий. Делал я некоторую тачку, и там в поисковом фонаре надо было сделать френелевские линзы. Я сначала сделал их простейшей бамп текстурой, но смотрелось не очень. После этого решил сделать геометрией. Начал изучать, как вообще устроены линзы френеля, читать статьи, разбираться, и увлёкся. В итоге сделал прям по физике правильную линзу.
Линза собственной персоной
---
Полигонов жрёт немало. Но для правильного преломления — это необходимо.
---
И даже две линзы - одну собирающую, а вторую рассеивающую. Для теста попробовал замутить из них простейший бинокль - получилось.
Физикал коррект бинокль
---
Но хотелось посмотреть на поведение и траектории всех преломляемых лучей света. А это, как раз, хорошо видно в дымке/тумане. Но рендерить настоящий volume caustics - это одна из самых сложных и ресурcоёмких задач для рендер-движка. Попробовал вирей, но результат был так себе.
И тогда я начал перебирать рендер движки один за одним. По тем или иным причинам - максвелл не вывез, арнольд не вывез, октан не вывез, редшифт не вывез, корона с различными dev-настройками - не вывезла, люксрендер - на тот момент у него не было плагина для макса, да и вообще он какой-то криповый. И уже без всякой надежды, я поставил индиго - но на удивление он хорошо справился, спасибо алгоритму Bidirectional pathtracing with MLT.
Попутно вспомнился фильм "Железный Человек 2", где Тони, создавая новый элемент - чуть не спалил помещение лазером. Думаю - дай ка попробую сделать лазер.
Старина вирей слился
---
А вот индиго затащил.
А параллельный направленный пучок света от почти точечного источника - это вообще ад для тру pathtracing-движков. Да ещё и с объёмной каустикой. Но индиго более-менее справился с этим. Тогда я и подумал - а почему бы не сделать сцену с кучей разных элементов. И чтобы вся сцена освещалась одним лишь этим лазерным лучом, без всяких бэкграундных светяшек. Вообще, идея показалась мне прикольной - один единственный небольшой плэйн, который делает всё - лазерные лучи объёмной каустики, и глобалку, и преломления, и проекцию, и дисперсию, всё остальное.
Ну и начал городить вообще всё, что приходило в голову. Времени на каждый элемент уходило довольно много, потому что каждый рендер тест - это час. Ну то есть просто отрендерить малюсенькую картинку, чтобы посмотреть, работает ли этот элемент - час времени. Порой вообще оставлял рендериться на ночь, а утром смотрел, что получилось. Например таким образом отрендерены две картинки выше, с дисперсией, и с синим стеклом.
Типичный рендер-тест на ранних этапах просчёта. Абстракционизм.
---
Основная идея была в том, чтобы впихнуть как можно больше элементов в одну сцену. По итогу мы имеем:
1) Классическая дисперсионная призма. Ну то есть не совсем классическая, пришлось повозиться с формой и параметрами стекла, чтобы достичь от неё желаемого поведения. Концепт призмы с сердечком уходит корнями в тесты на движке FryRender, которыми я когда-то баловался. Тогда ещё в Rhinoceros это все моделировал. Кстати из той сцены и вытащил сплайн сердца, ну и немного допилил его.
2) Моё лого. Подумал: а как бы сделать большую объёмную фигуру из одного луча. Думал, думал, и придумал вот такой вариант, который мы видим в сцене. Отражения, и никакого мoшeнничecтва.
Логозавр
---
3) Изучая статьи про стекло и линзы - позаимствовал идею разделения светового пучка из зеркальных фотокамер. Там используется тот же принцип. Это позволило сцене не ограничиваться одним элементом, а наделать их целую кучу.
4) Бокс со светящимися кружочками. Тут мне хотелось сделать некий трафарет, но с более-менее равномерной яркостью всех элементов. Решилось это старым добрым диффузным рассеиванием, и frosted glass.
Тесты коробки
---
5) Три луча RGB. Это была одна из первых идей - чтобы луч разделялся на три, потом каждый из них окрашивался в цвет той стекляшки, через которую он проходил, a потом лучи уходили бы вверх, и упирались в диффузный потолок, таким образом создавая плавный красно-зелёно-синий градиент освещения сцены. На финальном рендере его почти не видно, из-за того что сам по себе первичный белый луч дал слишком много рассеянного света.
6) Проекция со смайлом возникла из того, что мне вспоминались всякие витражи на соборах, и бьющее в них солнце, создающее красивые разноцветные лучи. Но в этой сцене витражи смотрелись так себе, поэтому я заменил их на crazy-смайл. Однако для него требовался не луч, а некая площадь параллельных лучей, которые имитировали бы солнце. Тут то нам и пригодились наши fresnel lens, с которых всё и начиналось. Одной линзой рассеиваем пучок, а второй линзой делаем его снова параллельным, но уже на необходимой нам площади.
Тут опять видны отражённые обратно лучи, которые создавали проблемы. В частности на стене и полу справа виден смайл. Отчасти решил это «надетыми» на луч шайбами,которые про себя называл «ферритовые кольца»
---
7) Звезда возникла одной из последних, я её впихивал в сцену уже после того, как выставил камеру, и расставил все остальные элементы. Хотелось чего-то прикольного, сине-оранжевого. И чтобы лучи проходили сквозь друг друга, отражаясь от одного и того же зеркала, но по разной траектории. Пришла в голову идея вот такой вот звезды.
Один из ранних вариантов траектории луча
---
8) Сам лазер. Отдельным челленджем было создание направленного пучка параллельных лучей, т.к. индиго не поддерживает директ лайты. Пробовал несколько разных вариантов, но почти все из них либо не работали, либо отправляли рендертайм в космос. А что касается внешнего вида - технически это просто неприметный чёрный цилиндр, но хотелось чего-то более зрелищного, и потому я соорудил некий корпус. Изначально хотел, чтобы там ещё кругляши светились, но индиго не вывез нормального SSS при такой яркости источника света.
Индиго не находил paths до лайта. В итоге красные (по задумке) палки «не зажигались»
---
9) Ну и в последнюю очередь уже навёл суету, типа всяких этих подставок, предметов, кронштейнов, розеток, и прочего.
10) Были и другие идеи, но их не удалось реализовать. Они либо рендерились тысячу лет, либо просто не работали в индиго.
Попутно пришлось решить примерно миллион всевозможных проблем, которые постоянно возникали. Мне кажется вжвиую было бы проще и быстрее построить эту сцену.
Есть в финальном рендере и косяки, которые индиго не смог побороть. Их несколько, но они однотипные. Внимательный зритель их наверное уже обнаружил.
Если взглянуть на первое (и второе) слева стекло, то можно увидеть, что луча за ними не видно
---
На этом тесте видно, что индиго почему-то очень не хочет находить пути для преломлённого лазера. Если лазерный луч в прямой видимости - то пожалуйста, а вот за стеклом - в разы хуже. И даже отражённый лазерный луч он очень неохотно ищет.
Вот так оно рендерилось. В куче мест не видно луча в отражениях и преломлениях.
---
А вот так оно должно выглядеть. Куча отражений/преломлений луча, и никаких безумных засветов на полу.
---
Ну и вишенка на торте. Время рендера в 4k составило 720 часов. То есть ровно месяц. На один кадр. Для каких-нибудь ILM это конечно изи катка, но на то они и ILM.
Выражаю благодарность коллеге Константину , финальный кадр рендерился на его компе, а не на моём.
Ладно, люкс-рендер попробую позже. Но какой-то он мутный. Прям мутный.
...прикол, в редакторе статей всё выглядит лучше, чем готовый текст после публикации - размеры шрифтов меняются, подписи под картинками улетают, всё смотрится непропорционально и хаотично, за штоооооо