Rendering Glints on High-Resolution Normal-Mapped Specular Surfaces

In ACM Transactions on Graphics (Proceedings of SIGGRAPH 2014)

A ren­der­ing of spec­u­lar ob­jects with ex­tremely low rough­ness (stand­ard de­vi­ation of 0.001 ra­di­ans) un­der point il­lu­min­a­tion. A high res­ol­u­tion nor­mal map (20482) with scratches and small-scale noise makes ren­der­ing im­prac­tic­al with stand­ard Monte Carlo dir­ect il­lu­min­a­tion, since the high­lights are tiny and eas­ily missed by na­ive pixel sampling. Left in­set: Our solu­tion is based on the concept of a pixel nor­mal dis­tri­bu­tion func­tion (P-NDF), which can be highly com­plex. Our al­gorithm eval­u­ates it ex­actly, in­stead of us­ing simple ap­prox­im­a­tions. Right in­set: Our meth­od de­liv­ers an ac­cur­ate solu­tion, even in a tem­por­al se­quence with a mov­ing light.


Ren­der­ing a com­plex spec­u­lar sur­face un­der sharp point light­ing is far from easy. Us­ing Monte Carlo point sampling for this pur­pose is im­prac­tic­al: the en­ergy is con­cen­trated in tiny high­lights that take up a minus­cule frac­tion of the pixel. We in­stead com­pute the ac­cur­ate solu­tion that Monte Carlo would even­tu­ally con­verge to, us­ing a com­pletely dif­fer­ent de­term­in­ist­ic ap­proach with min­im­al ap­prox­im­a­tions. Our meth­od con­siders the true dis­tri­bu­tion of nor­mals on a sur­face patch seen through a single pixel, which can be highly com­plic­ated. This re­quires com­put­ing the prob­ab­il­ity dens­ity of the giv­en nor­mal com­ing from any­where on the patch. We show how to eval­u­ate this ef­fi­ciently, as­sum­ing a Gaus­si­an sur­face patch and Gaus­si­an in­trins­ic rough­ness. We also take ad­vant­age of hier­arch­ic­al prun­ing of po­s­i­tion-nor­mal space to quickly find texels that might con­trib­ute to a giv­en nor­mal dis­tri­bu­tion eval­u­ation. Our res­ults show com­plic­ated, tem­por­ally vary­ing glints from ma­ter­i­als such as bumpy plastics, brushed and scratched metals, metal­lic paint and ocean waves.



Text citation

Ling-Qi Yan, Miloš Hašan, Wenzel Jakob, Jason Lawrence, Steve Marschner, and Ravi Ramamoorthi. 2014. Rendering Glints on High-Resolution Normal-Mapped Specular Surfaces. In ACM Transactions on Graphics (Proceedings of SIGGRAPH) 33(4). 116:1–116:9.

    author = {Ling-Qi Yan and Miloš Hašan and Wenzel Jakob and Jason Lawrence and Steve Marschner and Ravi Ramamoorthi},
    title = {Rendering Glints on High-Resolution Normal-Mapped Specular Surfaces},
    journal = {ACM Transactions on Graphics (Proceedings of SIGGRAPH)},
    volume = {33},
    number = {4},
    pages = {116:1--116:9},
    year = {2014},
    month = jul,
    doi = {10.1145/2601097.2601155}