Источник света испускает лучи в камеру или камера выпускает лучи в источник света?

27 Dec, 2014 globator
27 Dec, 2014 # Re: Источник света испускает лучи в камеру или камера выпускает лучи в источник света?
Здравствуйте ребята. Я читал статью про глобальное освежение на сайте. Статья 👍

Но потом когда перешел на конкретные алгоритмы, на пример Irradiance Map, там говорится что лучи идут от камеры и потом отскакивает на сцене. Я запутался в одном :| А как же лучи от источников света? Настройки Irradiance Map влияют на лучи от камеры или от источника света?

30 Dec, 2014 Anton (Staff Author)
30 Dec, 2014 # Re: Источник света испускает лучи в камеру или камера выпускает лучи в источник света?
Привет!

Если говорить об «лучах и камерах», то вообще то в грамотном CG алгоритме все просчитывается относительно камеры, кроме фотонной кроты разве что, ведь зачем считать лучи которые в камеру не попали? Тебе как пользователю нет разницы с какой стороны идёт проверка попадания в нее. Луч от лайта летит в сцену и «проверяет» не попал ли он в камеру или наоборот, камера «щупает» сцену своими лучами и определяет не освещается ли конкретная видимая точка лайтом. Разумеется во втором случае просчет более оптимальный, пусть и с необходимостью выпускать доп. лучи из камеры, так как в этом случае расчет берутся только «полезные» лучи, эффект от которых будет виден на рендере и не тратиться вычислительное время на лучи которые «улетели» в пространство прочь от сцены или не видны из за каким-то объектом.

Если мыслить «реальным миром», то по идее должно быть так:
- Лайт выпустил луч
- Луч попал на поверхность и отразился
- Отраженный от поверхности луч попал в камеру
- Камера записала его цвет
- Мы получили пиксель на финальном рендере
То есть именно лайты должны проверять не попадают ли их лучи в камеру.

Тогда то и становиться вопрос, а что же делать с лучом который в камеру не попал и на рендере мы его не увидим? Выходит, что просчитывать его придется. Что в свою очередь, повлечет за собой огромные траты ресурсов, вне зависимости увидим ли их результат или нет, будут ли видны эти лучи на рендере или будут. То есть, внесении в сцену источника света автоматически усложняет ее просчет на кол-во лучей выпускаемых этим источников даже если 99.99% этих лучей не попадут в камеру и не будут видны на рендере.
Это не очень разумно 😁

Именно поэтому, «разумные» алгоритмы рендеринга действуют «от обратного», то есть:
- Камера выпускает луч (он не световой и не несет в себе информации от освещенности, не путать с лучом от лайта, он просто «щупательный») в видимую часть сцены перед собой
- Попавши в видимую камерой точку в сцене он проводит прямую линию до всех источников света в ней и «смотрит» есть ли беспрепятственное попадание в лайт, то есть не закрыт ли он препятствием (геометрией в сцене)
- Если проведённая прямая (тоже точно такой же луч по сути), попадает в лайт, то просчитываемой точке в сцене передаться его освещенность (становиться ярче в зависимости от яркости лайта), если нет, то яркость точки не меняется.
- Камера записывает цвет точки
- Мы получили пиксель на финальном рендере

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

Как работает уже каждый отдельный алгоритм GI, уже расписано в уроках. Просто имей ввиду, что это независимые Render Elements для компоузинга финального рендера.

Если у тебя есть более конкретные вопросы, то задавай их более буквально и мы постараемся помочь 😉

27 Dec, 2014 globator
1 Jan, 2015 # Re: Источник света испускает лучи в камеру или камера выпускает лучи в источник света?
Спасибо большое. Объясняете бомба 👍

9 Jan, 2015 Дмитрий
9 Jan, 2015 # Re: Источник света испускает лучи в камеру или камера выпускает лучи в источник света?
Я запутался. Если Light Cache вторичка, почему он считается первым? Вид он должен знать куда попадают лучи Irradian Map что бы корректно все рассчитать 🙄

30 Dec, 2014 Anton (Staff Author)
9 Jan, 2015 # Re: Источник света испускает лучи в камеру или камера выпускает лучи в источник света?

Привет!

Очень важный момент, которой обаятельно нужно уяснить, это то что каждый эффект в финальном изображении 3d рендеринга – отдельный, порой вообще независимый от других, рендер-элемент. То, что ты видишь в финале, не есть результатом присчитывания цвета каждого пикселя путем прямого логичного изменения цвета. Нет такого что сначала считается прямой свет, потом из него его первый отскок, потом из первого отскока прямого света второй отскок и т.д., и только потом записывается цвет пикселя.

Primary и Secondary Bounces, это отдельные рендер-элементы, которые просчитываться каждый отдельно в свое изображение а потом, как слои в Photoshop, накладываются один на другой при формировании финального рендера. То есть, отдельно считается прямой свет, затем записывается в рендер-элемент, отдельно считаются и GI составляющие и записываются каждая в свой рендер-элемент, после чего сливаются в финале.

Теперь что касается последовательности их просчета. Логично бы считать, что просчитав прямой свет, рендер предает эту информацию далее движку Primary Bounces, которой из просчитанных направления и цвета прямых лучей, формирует первый отскок. Затем, передает эту информацию движку Secondary Bounces, которой в свою очередь из уже просчитанного первичного отскока аналогично формирует последующие. Тогда получается, что качество Primary Bounces на прямую зависит от качества просчета прямого света, а качество Secondary Bounces, прямо зависит от качества Primary Bounces и просчета прямого света вместе взятыми. Другими словами, если карта PB, например Irradiance map размытая и не точная, то SB, например Light Cache, будет еще хуже. Верно?

А вот и нет 😁 Качество «вторички» не зависит от «первички» ибо каждый рендер-элемент считается отдельно!
Ты спрашиваешь, почему LC стоящий во вторичке, считается перед IM стоящим на первичке? Но почему ты не спрашиваешь, чего же перед IM не считается сначала прямой свет, а спокойно воспринимаешь его просчет во время финального рендеринга уже после просчета вторичного освещения?

Хочу сказать, что конкретной информации непосредственно от разработчиков V-Ray, поясняющей «внутреннюю кухню» работы их рендерера негде нет. По крайней мере мне неизвестно где ее взять. Тем не менее, по функциям и сути работы можно предположить, что Light Cache, для просчета вторичных отскоков, САМОСТОЯТЕЛЬНО просчитывает и прямой свет, и первичный отскок. Именно поэтому, на LC превью (галочка Show calc. Phase) мы видим, пусть шумное, но уже вполне полноценное изображение, очевидно содержащие и прямой свет, и первичный отскок в том числе. Именно поэтому, LC может предавать информацию о прямом свете (Store direct light) финальному рендеру 😁 Судя по всему, именно по этим причинам он и просчитывается первым, чтобы, в случае необходимости, последующие просчеты могли использовать его информацию для своих нужд. Те мне менее, если они не используют эту инфорцию, он мог бы просчитываться и после Irradiance map, просто разработчики не парились со сменой очередности в зависимости от активированных галочек в настройках Light Cache. Просто сделали его просчет первым и все.

Что касается Irradiance map, то вот она не умеет самостоятельно просчитывать для себя то же что и Light Cache, поэтому работать может только в Primary Bounces. Где она берет информацию прямых лучах? Наверняка тоже как то просчитывает их сама. В официальном хелпе есть некие поясняющие картинки, например:

Тем не менее конкретное текстовое пояснение отсутсвует.


27 Dec, 2014 globator
11 Jan, 2015 # Re: Источник света испускает лучи в камеру или камера выпускает лучи в источник света?
Тоже хотел задать этот вопрос. Теперь все понял. Спасибо вам ребята!

27 Dec, 2014 globator
13 Jan, 2015 # Re: Источник света испускает лучи в камеру или камера выпускает лучи в источник света?
А как собственно посмотреть на эти ячейки который создает алгоритм Light Cache? Что бы сделать сравнение. Как здесь:


В уроке тоже показывается :|

30 Dec, 2014 Anton (Staff Author)
13 Jan, 2015 # Re: Источник света испускает лучи в камеру или камера выпускает лучи в источник света?
Привет!

То, что ты видишь на картинке и в уроке - сделано специально, чтобы показать что будет если просчетом ячейки (Sample) занимается мало лучей. Для этого нарочно увеличивается размер ячеек (Sample size) и уменьшается количество лучей (Subdivs) уточняющие цвет отдельной ячейки.

Комментировать

Имя:  


Анти-спам (отметьте пункты, с которыми Вы согласны, и уберите отметку, с которыми - нет)
Да, я спам-бот.
Да, я человек.
Правила Пользования Сайтом

RenderStuff © 2008