Render.ru

Как отлаживать генерацию каустики?

ПЗ

Знаток
Рейтинг
51
#1
Постоянно сталкиваюсь с проблемами при обсчете рефрактивной каустики. Либо получаю не то, что хочу, либо вообще ничего не получаю. Бывает, генерация десятков тысяч фотонов укладывается в час, а бывает, простейшая тестовая сцена с несколькими десятками фотонов умирает навсегда. Массу вопросов вызывают мессаги типа "No photons stored after emitting....". Не раз попадал, когда собственным глазом могу отследить путь фотона от источника до объекта, а диагностический рендер показывает пустоту, будто и нет никаких фотонов. Короче, результат процесса для меня пока непредсказуем. С азами знаком, включать "Generate caustics" в свойствах объекта я не забываю :)))

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

ПЗ

Знаток
Рейтинг
51
#4
Да, если сам компоную прозрачный материал, то в качестве фотонного шейдера ставлю что-нибудь вроде Dielectric Material или Photon(basic). Photon Volume, если я правильно понимаю хелп, для рефрактивной каустики не особо нужен. Но я, если сцена не очень тяжелая, иногда и его назначаю (Parti Volume). А если материал A&D, то там вроде все уже назначено.

Основная проблема одна - хочу научиться отлаживать генерацию фотонной карты без проведения длительных проб и ошибок. Есть какие-то способы трассировать это дело?

Проблему с отсутствием каустики на материалах SSS я уже описывал. А вот, например, до предела упрощенная сцена. Старая работа с цветком. Я оставил один лепесток и несколько капелек на нем, освещенных фотометрическим источником. Хотел, чтобы капельки отбрасывали каустические блики. Сцена рендерится через раз. Малейшая смена настроек заставляет ее умирать на долгие часы. Каустики либо нет вообще, либо появляется не везде. Все текстуры я постарался убрать, если вдруг ругнется на несуществующий путь - смело игнорировать :)



Сцена: http://www.filehoster.ru/files/cx8462
 

ПЗ

Знаток
Рейтинг
51
#5
Вообще, вопросов по каустике у меня масса:
- надо ли чем-то ограничивать сцену, чтобы фотоны не улетали в бесконечность? Если надо, то как быть с экстерьером? Как быть со Skylight?
- как влияют площадные источники света на генерацию фотонов? Фотоны испускаются по всей площади источника или только из центра?
- как влияет Maximum Sampling Radius и Maximum Num. Photons Per Sample на сглаженность каустики? Если я задам радиус фотона больше, чем генерирующий объект (радиус большой, а прозрачные капельки маленькие), будет ли каустика?
- если увеличить Average Caustic Photons per Light, можно ли уменьшить Maximum Num. Photons Per Sample?
-Decay влияет только при отражении фотонов от предметов, или их энергия затухает с дальностью от источника?
- какие настройки при изменении позволяют не генерировать по-новой карту фотонов?

Буду признателен как за прямые ответы, так и за интересные ссылки по теме. Мне, почему-то в основном азы попадаются :)))
 

iliveagain

Пользователь сайта
Рейтинг
2
#6
- надо ли чем-то ограничивать сцену, чтобы фотоны не улетали в бесконечность?

Надо. Иначе от фотонов толку не много. Либо требуется руками твикать и настраивать сцену так чтобы конкретные источники света рассеивали фотоны в конкретных направлениях.

- Если надо, то как быть с экстерьером? Как быть со Skylight?

Никак. В этом случае лучше использовать IBL и BDPT.

- как влияют площадные источники света на генерацию фотонов? Фотоны испускаются по всей площади источника или только из центра?

Со всей площади. Но не всегда с геометрической площади источника света. Что, впрочем, не так уж и важно в итоге.

- как влияет Maximum Sampling Radius и Maximum Num. Photons Per Sample на сглаженность каустики? Если я задам радиус фотона больше, чем генерирующий объект (радиус большой, а прозрачные капельки маленькие), будет ли каустика?

Будет но размытая. Вообще стоит помнить одно простое правило - для диффузных фотонов обычно имеет смысл увеличивать такие параметры как количество фотонов для интерполяции и радиус фотона в то время как для каустических фотонов наоборот уменьшать (поскольку каустики это обычно концентрация фотонов в определенных местах).

Между тем из всего есть исключения. Например, каустика от идеальной зеркальной сферы, направленно рассеивающей фотоны от площадного источника света :)

- если увеличить Average Caustic Photons per Light, можно ли уменьшить Maximum Num. Photons Per Sample?

В общем случае нет. Эти вещи независимы. Вы выпускаете все больше и больше фотонов, но чтобы качество каустики улучшалось (меньше шума, четче форма) вам также требуется все больше фотонов на сэмпл.

-Decay влияет только при отражении фотонов от предметов, или их энергия затухает с дальностью от источника?

Влияет только на затухание энергии по мере удаления от источника света. Не физично, но удобно :)
 

Mamvel

Активный участник
Рейтинг
11
#8
Не принципиально же каустику генерить основным источником, поставьте копию без дифуза поближе, только для каустики, сразу все считает.
 

ПЗ

Знаток
Рейтинг
51
#9
IBL это Image-Based Lighting. HDRI как карта освещения, проще говоря. BDPT не знаю :))))

Идея с дополнительным источником мне понравилась. С наскока не получилось, но я еще попытаюсь, должно работать по-идее. А компьютер не умрет от кучи (в общем случае) дополнительных источников света?

Надо ли указывать Generate Caustics в свойствах объекта-источника света? По моим наблюдениям, эта галка у светильника ни на что не влияет. Как на самом деле?
 

ПЗ

Знаток
Рейтинг
51
#10
- Если надо, то как быть с экстерьером? Как быть со Skylight?

Никак. В этом случае лучше использовать IBL и BDPT.
Вот этого я не понял. Если я ограничу экстерьерную сцену сферой или кубом, то куда мне прикрутить HDRI для имитации неба? Можно поставить в свойствах объекта-ограничителя сцены Pass-Through для FG, но небо все равно будет не видимым?
 

iliveagain

Пользователь сайта
Рейтинг
2
#12
Цитирую:- Если надо, то как быть с экстерьером? Как быть со Skylight?

Никак. В этом случае лучше использовать IBL и BDPT.

Вот этого я не понял. Если я ограничу экстерьерную сцену сферой или кубом, то куда мне прикрутить HDRI для имитации неба? Можно поставить в свойствах объекта-ограничителя сцены Pass-Through для FG, но небо все равно будет не видимым?
Зачем Вы хотите обязательно ограничить сцену какой-либо геометрией?

На IBL нод (зависит от Вашего приложения и версии интеграции) назначается карта неба, которая освещает Вашу сцену и, одновременно, видна первичным и вторичным лучам.

FG вместе с IBL лучше не использовать в случаях если карта освещения содержит локализованные яркие области (как например солнце) генерящие почти четкие тени. Если карта освещения более менее равномерная тогда смело используйте FG :)
 

Mamvel

Активный участник
Рейтинг
11
#13
А компьютер не умрет от кучи (в общем случае) дополнительных источников света?
Можно в принципе, на каждую капельку директ поставить, с точно окружающим радиусом. Будет почти 100% контроль над количеством фотонов, все попадут куда надо. Следовательно, лишних фотонов выпускаться не будет и скорость увеличится.
Идея не моя http://3dcenter.ru/forum/index.php?showtopic=97036
 

ПЗ

Знаток
Рейтинг
51
#14
Идея понятно, будем творчески переосмыслять :)

На IBL нод (зависит от Вашего приложения и версии интеграции) назначается карта неба, которая освещает Вашу сцену и, одновременно, видна первичным и вторичным лучам.
В МАКСе ноды скрыты где-то в недрах. Мы просто ставим объект неба, который освещает сцену. На него и назначается HDRI. Если я экстерьерную сцену ограничу объемом (помещу внутрь куба, сферы и т.п.), соответственно, как у меня небо снаружи куба будет видно первичным лучам?
 
Сверху