Mutation
mutate this path by adding new vertices
11
Mutation
mutate this path by perturbing a vertex
12
Mutation
The algorithm finds an important, but hard
to find, path. Once this path is found, it
explores other paths “near” that path
through mutations, which guarantees faster
convergence.
13
Basic MTL algorithm
MTL()
{
image = 0; // zero matrix
x_bar = random_path(); // a path generated by ray tracing
for i = 1 to N // N is the length of path x_bar
{
y_bar = mutate( x_bar );
a = acceptProbability ( x_bar, y_bar );
if ( (float)rand()/RAND_MAX < a )
x_bar = y_bar;
recordSample( image, f(x_bar) );
}
return image;
}
14
Acceptance Probability
Detailed balance:
f(x_bar)T(y_bar|x_bar)a(y_bar|x_bar)
= f(y_bar)T(x_bar|y_bar)a(x_bar|y_bar)
15
Advantages
· Unbiased
· Infinite dimensions
· Faster convergence
· Efficient for
glossy surfaces,
caustics,
and strong indirect lighting
16