Какова цель этой части алгоритма трассировки пути Монте-Карло?

Во всех простых алгоритмах для отслеживания пути с использованием партий Монте-Карло пробует трассировку пути. Часть алгоритма случайным образом выбирает между возвратом с излучаемым значением для текущей поверхности и продолжением трассировки другого луча из полусферы этой поверхности (например, на слайдах здесь ). Примерно так:

TracePath(p, d) returns (r,g,b) [and calls itself recursively]:
    Trace ray (p, d) to find nearest intersection p’
    Select with probability (say) 50%:
        Emitted:
            return 2 * (Le_red, Le_green, Le_blue) // 2 = 1/(50%)
        Reflected: 
             generate ray in random direction d’
             return 2 * fr(d ->d’) * (n dot d’) * TracePath(p’, d’)
  1. Это просто способ использовать русскую рулетку для завершения пути, оставаясь беспристрастным? Конечно, было бы разумнее подсчитать эмиссионные и отражающие свойства для всех траекторий лучей вместе и использовать русскую рулетку только для того, чтобы решить, продолжать ли трассировку или нет.

  2. И вот следующий вопрос: почему некоторые из этих алгоритмов, которые я вижу (например, в книге «Физические методы рендеринга»), вычисляют эмиссию только один раз, вместо того, чтобы учитывать все эмиссионные свойства объекта. ? Уравнение рендеринга в основном

    L_o = L_e + интеграл (свет, выходящий из других поверхностей в полусферу этой поверхности)

    , который, похоже, учитывает излучательные свойства как в этом L_o, так и в интеграле всех других L_o. , поэтому алгоритмы должны следовать.

6
задан Burt Sampson 7 December 2011 в 06:53
поделиться