Specular Manifold Sampling for Rendering High-Frequency Caustics and Glints

In Transactions on Graphics (Proceedings of SIGGRAPH 2020)

Ren­der­ing of a shop win­dow fea­tur­ing a com­bin­a­tion of chal­len­ging-to-sample light trans­port paths with spec­u­lar-dif­fuse-spec­u­lar (“SDS“) in­ter­re­flec­tion: the two golden nor­mal-mapped ped­es­tals are il­lu­min­ated by spot lights and pro­ject in­tric­ate caustic pat­terns fol­low­ing a single re­flec­tion from the metal­lic sur­face, while the trans­par­ent cen­ter ped­es­tal gen­er­ates caustics via double re­frac­tion. The glinty ap­pear­ance of the shoes arises due to spec­u­lar mi­cro­geo­metry en­coded in a high-fre­quency nor­mal map. This im­age was rendered by an or­din­ary uni­direc­tion­al path tracer us­ing our new spec­u­lar man­i­fold sampling strategy. The re­main­ing noise is due to in­dir­ect light­ing by caustics, which is not ex­pli­citly sampled by our tech­nique. The back­ground im­age is “Hex­act­inel­lae” from Art Forms in Nature by Ernst Haeck­el.


Scat­ter­ing from spec­u­lar sur­faces pro­duces com­plex op­tic­al ef­fects that are fre­quently en­countered in real­ist­ic scenes: in­tric­ate caustics due to fo­cused re­flec­tion, mul­tiple re­frac­tion, and high-fre­quency glints from spec­u­lar mi­cro­struc­ture. Yet, des­pite their im­port­ance and con­sid­er­able re­search to this end, sampling of light paths that cause these ef­fects re­mains a for­mid­able chal­lenge.

In this art­icle, we pro­pose a sur­pris­ingly simple and gen­er­al sampling strategy for spec­u­lar light paths in­clud­ing the above ex­amples, uni­fy­ing the pre­vi­ously dis­joint areas of caustic and glint ren­der­ing in­to a single frame­work. Giv­en two path ver­tices, our al­gorithm stochastic­ally finds a spec­u­lar sub­path con­nect­ing the en­d­points. In con­trast to pri­or work, our meth­od sup­ports high-fre­quency nor­mal- or dis­place­ment-mapped geo­metry, samples spec­u­lar-dif­fuse-spec­u­lar (“SDS“) paths, and is com­pat­ible with stand­ard Monte Carlo meth­ods in­clud­ing uni­direc­tion­al path tra­cing. Both un­biased and biased vari­ants of our ap­proach can be con­struc­ted, the lat­ter of­ten sig­ni­fic­antly re­du­cing vari­ance, which may be ap­peal­ing in ap­plied set­tings (e.g. visu­al ef­fects). We demon­strate our meth­od on a range of chal­len­ging scenes and eval­u­ate it against state-of-the-art meth­ods for ren­der­ing caustics and glints.

Up­date (June 17, 2021)

We re­cently fixed a subtle but im­port­ant bug in our ref­er­ence im­ple­ment­a­tion of this pro­ject. In par­tic­u­lar, there was an over­sight in the com­pu­ta­tion of our pro­posed angle dif­fer­ence con­straints. In the fol­low­ing, we will briefly re­vis­it the rel­ev­ant part, but please refer to Sec­tion 4.4 in the pa­per for more con­text.

At the core of our meth­od lies a New­ton solv­er that at­tempts to find light paths that cor­rectly fol­low the laws of spec­u­lar re­flec­tion or re­frac­tion. In short, each spec­u­lar ver­tex of a path is as­signed a con­straint func­tion where a val­id light path is de­term­ined with .

In the pa­per, we pro­pose a new con­straint that per­forms spec­u­lar re­flec­tion or re­frac­tion (func­tion ) of an in­cid­ent dir­ec­tion and com­pares it to the out­go­ing dir­ec­tion :

where and con­vert the two unit dir­ec­tions in­to spher­ic­al co­ordin­ates.

It turns out that one needs to be care­ful re­gard­ing the peri­od­icity of the azi­muth angles when sub­tract­ing them. For in­stance, the New­ton solv­er does not real­ize that a value of roughly is close to a solu­tion and might there­fore not con­verge. The sub­trac­ted res­ult must there­fore be mapped onto us­ing a float­ing point mod­ulo op­er­a­tion.

The im­pact of this de­pends highly on the ac­tu­al scene com­plex­ity, While the dif­fer­ence is not al­ways no­tice­able, some scenes can be­ne­fit con­sid­er­ably from the fix. One such ex­ample is shown be­low, where a caustic is cre­ated by a small area light re­frac­ted twice through a dielec­tric cyl­in­der. Here, the New­ton solv­er con­ver­gence rate roughly doubles.

The two in­sets il­lus­trate the dif­fer­ence on zoomed-in re­gions of the im­age. Note how the fixed im­ple­ment­a­tion (right) has re­duced vari­ance com­pared to the ori­gin­al ver­sion (left). For the com­par­is­on, both im­ages were rendered at equal time and sample count, and the bright­ness of the in­sets is scaled to make the noise out­side the main caustic more vis­ible.

See also the fol­low­ing full im­age com­par­is­on (left: ori­gin­al ver­sion, right: fixed ver­sion):

We are grate­ful to Héloïse de Dinechin for spot­ting this bug after care­fully in­vest­ig­at­ing some of the light paths where the New­ton solv­er di­verged. We up­dated our au­thor ver­sion of the pa­per and the video be­low with re-rendered im­ages that re­flect the fixed im­ple­ment­a­tion.




Text citation

Tizian Zeltner, Iliyan Georgiev, and Wenzel Jakob. 2020. Specular Manifold Sampling for Rendering High-Frequency Caustics and Glints. In Transactions on Graphics (Proceedings of SIGGRAPH) 39(4).

    author = {Tizian Zeltner and Iliyan Georgiev and Wenzel Jakob},
    title = {Specular Manifold Sampling for Rendering High-Frequency Caustics and Glints},
    journal = {Transactions on Graphics (Proceedings of SIGGRAPH)},
    volume = {39},
    number = {4},
    year = {2020},
    month = jul,
    doi = {10.1145/3386569.3392408}