2016-03-02 5 views
0

я кодирования двунаправленного трассировка пути к школе в C++ и у меня есть несколько вопросов (я не нахожу полезные объяснения в Интернете)Двунаправленная трассировка пути вопросы

1) Почему EyePath имеет еще один Vertice?

2) Когда я вычисляю прямое освещение во время создания EyePath, нужно ли учитывать значение предыдущей вершины? Я прошу об этом, потому что я видел это на коде, но это кажется странным.

3) Я не очень хорошо понимаю, как соединить оба пути. Случайно ? Все со всеми? На данный момент я случайно соединяю одну вершину с другой.

4) Книга PBRT реализует вклад в соответствии с длиной Eyepath и LightPath. Нужно ли мне это делать, зная, что все объекты в моей геометрии рассеяны?

5) Являются ли новые лучи случайным образом генерируемыми в полушарии при каждом отскоке?

Все объекты рассеиваются.

На данный момент я получаю этот результат с 15 образцами.

enter image description here

ответ

1

1) Почему EyePath имеет еще один Vertice? Это образец позиции на ваших глазах/камере. Для камеры с отверстиями, это неподвижная точка, но для тонкой камеры с ограниченной диафрагмой ее нужно отбирать.

5) Являются ли новые лучи случайным образом генерируемыми в полушарии при каждом отскоке? Вот что такое BRDF для. Если вам не важна выборка, то однообразное случайное по полушарию является самым простым. Во всяком случае, прочитайте главу Монте-Карло в записях книги PBRT.

Я думаю, вы новичок в трассировке лучей Монте-Карло. Трассировка двунаправленного пути - это усовершенствованный алгоритм, основанный на трассировке пути, трассировке света и выборке важности. Поэтому убедитесь, что вы понимаете, эти методы задолго до любого кодирования двунаправленного один ~

PS: Просто найти подробное объяснение по реализации двунаправленной отслеживания пути (9 частей серии): http://rendering-memo.blogspot.com/2016/03/bidirectional-path-tracing-1-kickoff.html

 Смежные вопросы

  • Нет связанных вопросов^_^