Скрипт для создания IES для встроенных светильников на основе сферической проекции каустики.
PankovEA 10200

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

По просьбам заинтересованных я написал скрипт, упрощающий создание IES на основе каустики, описанный здесь. Теперь всё гораздо проще!

Качаем скрипт и перетаскиваем его в окно макса. Далее надо добавить его на панель инструментов. Заходим Customize -> User Interface ... -> Toolbars -> Category = #PankovScripts -> перетащить на панель "IES from caustics generator" -> запускаем:

 54bab4732ec7aabae96119dcb4ce1a51.jpg

Теперь я рассмотрю создание IES скриптом для встроенного светильника с отражателем и хрустальными свесами. Хочу отметить, что алгоритм действий может варьироваться в зависимости от ситуации и требуемого результата. Есть простор для экспериментов. Возможно я сам спустя некоторое время изменю методологию, но пока так:

Здесь есть некоторые особенности. Нам необходимо сделать расчёт каустики вместе со светильником и отражателем, и убрать все непрозрачные детали на свесах (они потом в сцене добавят свои тени, хотя можно и тени запечь, тогда светильник прийдётся вообще исключать из отбрасывания теней). Потом скрыть светильник, сохранить каустику в файл и запустить скрипт на выполнение.

Делаем по-шагово (описывать сцену буду менее подробно, если будут вопросы читать здесь):

1. Качаем светильник или похожий

2. Запускаем скрипт. Жмём Load scenes -> Render Caustic Scene -> Соглашаемся с изменением гамма коррекции "Adopt file's gamma..." -> удаляем тестовый образец светильника в сцене.

3. Мерджим светильник в сцену. Оставляем только один.

4. Выравниваем в начало координат таким образом, что бы камера оказалась в серединке стекляшек. А источник света необходимо поднять на место лампочки в отражателе.

5. У светильника оставляем только хрустали и отражатель. Отражатель выделяем из editPoly путём выделения по materialID=3 -> Инверсия выделения (Ctrl + I) -> Удаление.

f365083cff326651ea7b5dcadbb24f7e.png

6. Назначаем на них 2 материала соответственно один полностью прозрачный другой полностью отражающий. Они уже есть в редакторе материалов, можно просто перетащить на нужные объекты. На прозрачном материале НЕ должно стоять галочки "Affect Shadows"

7. Рендерим. При необходимости добиваеся приемлемого результата путём изменения параметра IOR в прозрачном материале и рендерим еще раз. Теперь не надо беспокоиться о пересветах. Карта рендерится с широким диапазоном.

f4bb446029555c7e496ec188a3bf82e6.jpg

Обращу внимание на яркий "забор" сверху рендера. Это отражатель, нам он не нужен в ИЕСке иначе можем получить в финале зайцев по сцене от чрезмерного освещения рефлектора. Поэтому танцуем с бубном:

8. Сохраняем карту каустики Render Setup -> GI -> Caustics -> Save To File...

Сразу отмечу, что такие манипуляции с сохранением каустики необходимо проделывать только в том случае если есть не прозрачные объекты. Для поностью прозрачных, можно сразу ренедрить в IES

9. Тут же меняем Mode = From File... и ниже указываем куда сохранили файл.

10. Скрываем всё кроме сферы и источника света. Выделяем сферу и ИС -> Инвертируем выделение Ctrl+I -> Правой кнопкой -> hide selection

11. В скрипте:

- по желанию забиваем/меняем данные светильника: Производитель, Модель, Тип лампы, Потребляемая мощность, Общий световой поток в люменах, Размер светильника в миллиметрах

- по желанию меняем детализацию IES файла, то есть разрешение рендеринга. Желательно в пропорциях 2:1, но можно произвольно.

- Жмём Create IES... -> указываем куда сохранить -> ждём завершения.

06e7795f96e8e9bae962e953a45955f9.jpg

ГОТОВО!!!

Теперь протестируем как удачно у нас получилось. Желательно открыть новый макс.

В скрипте: Load scenes -> Render Test Scene

1. В источнике света указываем нахождение файла IES. Пробуем...

48b96a98f2d0c0f30e3081e9fca7a61c.jpg

Теперь посмотрим как будет смотреться с геометрией:

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

3. Теперь источник света должен быть на месте где была камера, то есть не в отражателе, а по серединке хрусталиков. Иначе не получится нужного эффекта.

4. Рендерим и смотрим. Если что-то не нравится, возвращаемся в незакрытый макс и корректируем. Менять можно IOR хрусталиков, степень отражения рефлектора, геометрию, положение и размер ИС и т.д.

022a69b4a251fdc8e3184c805bc11603.jpg

Для сравнение с простым источником света

4c88c1a644c2e09a32652fdfe90c37b6.jpg

Таким образом видим, что отражатель сформировал пучёк света на полу.

Если блики кажутся слишком контрастными, можно поиграть с размером ИС, сожержащего IES. Например на рендере ниже я увеличил размер с 5мм до 30мм (В отличии от короны, в вирее, это повлияет только на тени, карта IES при этом размываться не будет. Поэтому придётся варьировать размер светильника при расчёте каустики):

0b46094ff1f5918f6ed3a1069dab9d9c.jpg

Всех заинтересованных прошу тестировать и рапортовать о багах в комментариях или в личку. А так же высказывайте свои пожелания.

Комментарии (62)

0
Maketer
Респект, человек!)
0
formatov347
Комментарий удален
+11
PankovEA
Не успел оформить... теперь всё путём!!!
0
Borisus
Спасибо большое за труды.
+2
ygoryan
Монстр!
0
islam9589
Ты просто крут, у меня все)
0
architect14
Молодцы ребята!
0
Margherita2014
thanks
0
rnax
Результат очень хороший! Спасибо за труд!
+7
PankovEA
Благодарствую. Интересно посмотреть на результаты пользователей. Хоть автоматизация сделана, процесс все равно остаётся творческим. Много параметров влияет на результат: начиная от геометрии, расположения ИС и его размера заканчивая материалом и трюками с сохранением каустики и скрыванием объектов.
И у каждого будут свои результаты.
0
lih_81
Мужик сказал, мужик сделал! Теперь можно баловаться с хрусталем. Спасибо тебе!
+10
deez
3д электрик )
Спасибо за труд
0
Blajen2007
АЩЕ МУЖИК! =-)
0
Pavel2010
Великолепно! *вынимаю наушник!
0
bambook
Да вы человек дела, редкость нашего времени!!
0
pannochka6
Привет!
Возникли сложности с установкой - что значит: "перетащить на панель"?
перетащила в меню справа (это единственное место в которое перетаскивается)), что дальше? ничего не произошло..
0
pannochka6
пардон, нашла))
0
TRAFFIC_rus
Автор маньяк, это понятно. ))
Мне интересно, кто-нибудь из простых смертных это уже опробовал?
Просто, с утра, в понедельник ... сами понимаете. %)
0
Dmitry_Lebedev
Рендер не суть какой юзать?
+4
PankovEA
Сейчас настроено на вирей. В принципе всё равно каким рендерить, лишь бы каустику считал. Скрипт запускает на рендер с текущими настройками и закидывает получившуюся картинку в IES. Использовать так же можно на любом движке, поддерживающем IES
0
Dmitry_Lebedev
Дай Бог Вам здоровья!!!
0
Charlyxxx
Ух ты! Крутяк!
+1
booka80
Автору много, много счастья! Пусть будет мир в твоем доме! И за труды праведные, да не иссякнет твой денежный поток )))
+1
PankovEA
Благодарю, очень приятно. :)) Такого отклика я не ожидал. Слова поддержки очень важны, значит я не зря старался.
0
polka.life
Да Вы очень молодец!
При случае попробую обязательно!
+3
sxela
Это просто гениально! Думаю, у нас действительно есть мартовский фаворит.))
В недалеком будущем ожидаю от автора постов вроде "Мне не понравилось, как реализована в вирее\короне\ментале такая-то фишка, вот небольшой урок о том, как написать свой рендер движок.)
+2
PankovEA
Прям рассмешили :D
На самом деле есть еще один момент. Который бы хотелось поправить в вирее. Например в короне хорошо реализовано управление светимостью материала (альбедо). В вирее тоже надо бы такое добавить, что бы у людей не получались такие тухлые рендерыhttp://3ddd.ru/forum/thread/show/nie_dostatochno_kontrastnaia_i_krasivaia_kartinka 
Тоже думаю реализовать в качестве скрипта.
0
gidraaa
Автор, Вы мне взорвали мозг первым уроком, а сейчас просто добили его остатки вторым))))... я не знаю, осилю ли, но вам огромнейшее спасибо!!!
+3
Generasim
Моделлеры светильников могут теперь правдоподобные ИЕС добавлять к модели.
+1
PankovEA
Вот мне интересно. Есть же уже подобные IESки, которые целый рисунок отбрасывают. Их же уже как-то делали. И уже кто-то решил вопрос "как это делается".
0
Generasim
Возможно эти кто-то мысленно попрекают тебя за утечку информации в люди.) Но ты все равно крут! Как говорили, такое прочесть, понять и использовать уже трудно, не то что придумать это.
0
Mare_NNN_a
Какой Вы молодец! Уважаю!+55555555! :)
0
pletenka
Огромное спасибо!
0
samserius
Очень ценный инструмент, Спасибо!
+1
Special
Автор гений! А еще ты можешь на этом много заработать!
0
PankovEA
:D Любопытно, а можно по подробнее. А то гениальность прёт, а с деньгами туган.
0
Mr.Absent
и это не удивительно! Ведь ссылка "поддержать здесь" в скрипте никуда не ведет!:)
0
PankovEA
Я не могу за день всё успеть. Пока руки не дошли оформить эту страницу. Пока еще не решил, какая именно должна быть поддержка. Вот вы все меня здесь и сейчас поддерживаете. И это очень важно!
Хочу обратить внимание, что это beta версия, значит могут быть баги. Есть еще мысли по улучшению скрипта.
0
ateko
Здорово, но вот еще бы видео для наглядности
0
pavel2405
Да, видео было б к месту.
0
PankovEA
Хм... в прошлом моём посте люди отзывались, что им по-шагово удобнее.
Нет у меня опыта видео писать.
0
In-design
Ты просто мегачеловек! Огромная благодарность!!!
0
пек
СПАСИБО !!!!!!!!!!!!!!!!!!!
0
Terletskyi_VS
Претендент на похвалу месяца !!!
+2
In-design
Предлагаю выплатить замечательному человеку призовой фонд за два месяца сразу (предыдущий месяц вроде как пропускали).
0
ygoryan
поддерживаю, хорошая идея!
0
werbaq
ТЫ КРУТ!
0
architect14
Как вариант танца с бубном по поводу светлого забора отражателя думаю можно сделать отражатель невидимым для камеры )
0
PankovEA
Думаю да. Надо попробовать. Главное чтобы каустика при этом считалась. Если получится подправлю в уроке.
0
rudnikov2006
Опишу с какими проблемами я столкнулся(часов 6 экспериментировал).
1. Шумная карта ies(шумел низ карты, да и верх). http://my.jetscreenshot.com/21125/20160322-lfdo-453kb 
Шумит пасс каустики, но ни увеличение фотонов в настройках рендера, ни увеличение любых параметров в vray lights properties не дало никаких результатов - пока не разобрался. На рендере это выливается в грязь на стенах в пассе lighting(те шумит именно светильник, а пятна здоровые как от gi). Картинка с шумом чуть ниже.

2. макс не корректно понял ies когда я увеличил ее разрешение до 722*362(те в 2 раза) - светильник светил только на половину, при этом при выборе ies выдал ошибку. Horizontal angles must be listed in ascending order. http://my.jetscreenshot.com/21125/20160322-wqed-173kb 
Тут же виден шум
3. Самая главная проблема - сделать точно так как будет в жизни очень проблематично - небольшие неточности в геометрии - уже все по другому(я экспериментировал на сложном светильнике).
http://вашсвет24.рф/image/upload/2014/05/82/825ab83215e1279a265c699bb19e29b06259b4ad.jpg
Чуть двигаешь камеру при рендере ies(буквально пару мм - уже результат совсем другой, так же и с размером/высотой установки источника света, так же с ior светильника).

Но в целом резюмирую - отличная штука. Иеску можно сделать за минуту, и она будет возможно не идеально точная, но гораздо лучше чем ничего.
0
PankovEA
Благодарю за тестирование.
1. Что касается мелкого шума. Попробуйте изменить диаметр поиска сэмплов каустики Render setup -> GI -> caustics -> seach dist. Это сгладит результат. Ну и конечно накручивание Caustic subdivids.
По поводу шума от GI я писал уже, что необходимо скрывать отражатель для записи IESки, иначе очень яркое пятно с потолка будет разбрасывать зайцев по сцене. Комментом выше по этой теме.
2. Ошибка в коде. Буду исправлять
3. Об этом я писал, что процесс достаточно творческий. Реалистичность так же зависит от профессионализма рисующего. Всё как в обычной визуализации интерьера. Просто работать с одним светильником или с нагруженной сценой это небо и земля. А проблемы все те же. Кстати камеру надо располагать там где будет потом стоять IES источник света.
0
JaxxTrend
Когда читал инструкцию подумал, нужен скрипт. Не долго ждать пришлось =)
+1
PankovEA
Так многие подумали, решил не затягивать. Куй железо пока есть интерес к теме.
0
Irishthief
Спасибо за скрипт большое!!!

P.S.: Интересно, а когда получится делать всё это без скриптов?
Ну, то есть, когда разработчики добавят все эти не такие уж и многочисленные инструменты в программу, чтобы не нужно было "а теперь мы вот сюда вводим значение" и "переустановите BIOS"?
Конечно, я утрирую, но раньше и E-Mail отправляли посмотрите-в-интернете-как, а теперь это секунды занимает.
0
PankovEA
Пожалуйста, скрипт еще необходимо дорабатывать. Будут "баги" - отписывайтесь в комментарии.
Думаю никогда. Данный скрипт реализует фэйк, а сейчас разработчики двигаются к физически корректному рендерингу. Поэтому реальная каустика. остаётся надеяться, что либо железо повысит свою производительность, либо разработчики придумают, как считать каустику быстрее ... или и то и другое. Тогда будет минимум настроек и максимум результата.
0
AlexeyLed
Спасибо, полезный скрипт,
+1
PankovEA
Запекается значение яркости пикселя. Прямой свет можно делать, а можно не делать в зависимости от настройки сцены. Скрипт не контролирует этот процесс. В моём примере, в тексте, прямой свет запекается: Я сохранил каустику в файл и скрыл все объекты, оставив при этом ИС. Таким образом у меня получилась менее контрастная карта.
0
ambiouse
Спасибо, человечище! Это действительно гениално) И да, я бы посоветовал скрипт запостить на script spot и добавить ссылку на "поддержать", хоть вебмани туда укажи кошелек.
0
AlexDonRumata
Круть, наконец попробывал, спасибо!
0
JustFindMe
спасибочки огромное ) сначала непонятно, а потом все получается )))
0
mavrusha
Спасибо огромное !!!! Прямо необходимый скрипт !!!
0
lampaalladina
Merci!