В рассмотренных алгоритмах вычисление пути света начиналось всегда с обратной стороны, то есть из виртуального глаза. Но существуют алгоритмы, где прослеживание пути световых лучей ведется из источника света, или с обеих сторон. Наиболее совершенным из них считается алгоритм “Metropolis light transport”. Идея этого алгоритма чем-то похожа на идею генетических алгоритмов. Для каждого пиксела и источника света алгоритм выбирает некий случайный начальный путь X0, по которому свет может дойти от источника света до глаза. Затем, генерируется последовательность путей X0X1.. Xn. В этой последовательности каждый следующий путь получен из предыдущего с помощью случайных мутаций. При этом, мутации могут приниматься или отвергаться – в зависимости от того какой вклад вносит результирующий путь Xi+1 в изображение по сравнению с Xi.
На рис. 1. функция AcceptProb(Y|X) является оценочной функцией и говорит, насколько хорош новый путь относительно старого пути x. |