{"id":159362,"date":"2009-12-01T00:00:00","date_gmt":"2009-12-01T00:00:00","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/msr-research-item\/all-frequency-rendering-of-dynamic-spatially-varying-re%ef%ac%82ectance\/"},"modified":"2018-10-16T21:26:20","modified_gmt":"2018-10-17T04:26:20","slug":"all-frequency-rendering-of-dynamic-spatially-varying-re%ef%ac%82ectance","status":"publish","type":"msr-research-item","link":"https:\/\/www.microsoft.com\/en-us\/research\/publication\/all-frequency-rendering-of-dynamic-spatially-varying-re%ef%ac%82ectance\/","title":{"rendered":"All-Frequency Rendering of Dynamic, Spatially-Varying Re\u00ef\u00ac\u201aectance"},"content":{"rendered":"
We describe a technique for real-time rendering of dynamic,\u00a0spatially-varying BRDFs in static scenes with all-frequency shadows from environmental and point lights. The 6D SVBRDF is rep-
\nresented with a general microfacet model and spherical lobes \ufb01t to\u00a0its 4D spatially-varying normal distribution function (SVNDF). A\u00a0sum of spherical Gaussians (SGs) provides an accurate approximation with a small number of lobes. Parametric BRDFs are \ufb01t on-the-\ufb02y using simple analytic expressions; measured BRDFs are \ufb01t as a preprocess using nonlinear optimization. Our BRDF representation is compact, allows detailed textures, is closed under products\u00a0and rotations, and supports re\ufb02ectance of arbitrarily high specularity. At run-time, SGs representing the NDF are warped to align the half-angle vector to the lighting direction and multiplied by the microfacet shadowing and Fresnel factors. This yields the relevant 2D\u00a0view slice on-the-\ufb02y at each pixel, still represented in the SG basis.\u00a0We account for macro-scale shadowing using a new, nonlinear visibility representation based on spherical signed distance functions\u00a0(SSDFs). SSDFs allow per-pixel interpolation of high-frequency\u00a0visibility without ghosting and can be multiplied by the BRDF and\u00a0lighting ef\ufb01ciently on the GPU.<\/p>\n