Realistic Graphics Lab

Anisotropic Gaussian Mutations for Metropolis Light Transport through Hessian-Hamiltonian Dynamics

In ACM Transactions on Graphics (Proceedings of SIGGRAPH Asia 2015)

CARS: Equal-time (20 minutes) com­par­is­on on the cars scene, with a stat­ic car and a mov­ing car lit by an area light. The dir­ect light­ing is com­puted sep­ar­ately. The in­teri­or of the car is en­closed by near-spec­u­lar glass win­dows, which gives rise to spec­u­lar-dif­fuse-spec­u­lar (SDS) paths that are chal­len­ging to sample. The three in­sets show the ren­der­ings of our meth­od (H2MC), Man­i­fold Ex­plor­a­tion Met­ro­pol­is Light Trans­port (MEMLT), Mul­ti­plexed Met­ro­pol­is Light Trans­port (MMLT), and Bi­d­irec­tion­al Path Tra­cing (BDPT). The ref­er­ence (REF) is rendered by our meth­od in roughly 15 hours. BDPT can­not ef­fi­ciently sample the sparse con­tri­bu­tion func­tion and suf­fers from severe noise. MMLT tends to get trapped in the hard-to-find fea­tures and pro­duces cor­rel­ated noise. MEMLT spe­cial­izes in find­ing dif­fi­cult stat­ic spec­u­lar paths, but does not con­sider the an­iso­tropy in the time do­main, res­ult­ing in ghost­ing ar­ti­facts. Our meth­od can ef­fi­ciently re­solve the hard-to-find SDS paths like the spe­cial­ized meth­od, and is more gen­er­al so that it can re­solve mov­ing caustic paths in the win­dow by cap­tur­ing the cor­rel­a­tion between the time do­main and path space.


The sim­u­la­tion of light trans­port in the pres­ence of multi-bounce glossy ef­fects and mo­tion is chal­len­ging be­cause the in­teg­rand is high di­men­sion­al and areas of high-con­tri­bu­tion tend to be nar­row and hard to sample. We present a Markov Chain Monte Carlo (MCMC) ren­der­ing al­gorithm that ex­tends Met­ro­pol­is Light Trans­port by auto­mat­ic­ally and ex­pli­citly ad­apt­ing to the loc­al shape of the in­teg­rand, thereby in­creas­ing the ac­cept­ance rate. Our al­gorithm char­ac­ter­izes the loc­al be­ha­vi­or of through­put in path space us­ing its gradi­ent as well as its Hes­si­an. In par­tic­u­lar, the Hes­si­an is able to cap­ture the strong an­iso­tropy of the in­teg­rand. We ob­tain the de­riv­at­ives us­ing auto­mat­ic dif­fer­en­ti­ation, which makes our solu­tion gen­er­al and easy to ex­tend to ad­di­tion­al sampling di­men­sions such as time.

However, the res­ult­ing second or­der Taylor ex­pan­sion is not a prop­er dis­tri­bu­tion and can­not be used dir­ectly for im­port­ance sampling. In­stead, we use ideas from Hamilto­ni­an Monte-Carlo and sim­u­late the Hamilto­ni­an dy­nam­ics in a flipped ver­sion of the Taylor ex­pan­sion where grav­ity pulls particles to­wards the high-con­tri­bu­tion re­gion. Where­as such meth­ods usu­ally re­quire nu­mer­ic­al in­teg­ra­tion, we show that our quad­rat­ic land­scape leads to a closed-form an­iso­trop­ic Gaus­si­an dis­tri­bu­tion for the fi­nal particle po­s­i­tions, and it res­ults in a stand­ard Met­ro­pol­is-Hast­ings al­gorithm. Our meth­od ex­cels at ren­der­ing glossy-to-glossy re­flec­tions on small and highly curved sur­faces. Fur­ther­more, un­like pre­vi­ous work that de­rives sampling an­iso­tropy with pen and pa­per and only con­siders spe­cif­ic ef­fects such as spec­u­lar BSD­Fs, we char­ac­ter­ize the loc­al shape of through­put through auto­mat­ic dif­fer­en­ti­ation. This makes our ap­proach very gen­er­al. In par­tic­u­lar, our meth­od is the first MCMC ren­der­ing al­gorithm that is able to re­solve the an­iso­tropy in the time di­men­sion and render dif­fi­cult mov­ing caustics.

Text citation

Tzu-Mao Li, Jaakko Lehtinen, Ravi Ramamoorthi, Wenzel Jakob, and Frédo Durand. 2015. Anisotropic Gaussian Mutations for Metropolis Light Transport through Hessian-Hamiltonian Dynamics. In ACM Transactions on Graphics (Proceedings of SIGGRAPH Asia) 34(6). 209:1–209:13.

    author = {Wenzel Jakob},
    title = {Anisotropic Gaussian Mutations for Metropolis Light Transport through Hessian-Hamiltonian Dynamics},
    journal = {ACM Transactions on Graphics (Proceedings of SIGGRAPH Asia)},
    volume = {34},
    number = {6},
    pages = {209:1--209:13},
    year = {2015},
    month = nov,
    doi = {10.1145/2816795.2818084}