Spherical filtering is fundamental to many problems in image synthesis, such as computing the reflected light over a surface or anti-aliasing mirror reflections over a pixel. This operation is challenging since the profile of spherical filters (e.g., the view-evaluated BRDF or the geometry-warped pixel footprint, above) typically exhibits both spatial- and rotational-variation at each pixel, precluding precomputed solutions. We accelerate complex spherical filtering tasks using isotropic spherical decomposition (ISD), decomposing spherical filters into a linear combination of simpler isotropic kernels. Our general ISD is flexible to the choice of the isotropic kernels, and we demonstrate practical realizations of ISD on several problems in rendering: shading and prefiltering with spatially-varying BRDFs, anti-aliasing environment mapped mirror reflections, and filtering of noisy reflectance data. Compared to previous basis-space rendering solutions, our shading solution generates ground truth-quality results at interactive rates, avoiding costly reconstruction and large approximation errors.
The material below is provided for means of research only. It should not be used for commercial use, unless explicitly allowed. If you use the code provided to make comparisons for you own paper, please contact the authors so as to get the proper credits to include in your publication:
sudo apt-add-repository ppa:csoler-users/ylm sudo apt-get update sudo apt-get install libylm-dev libylm-toolsThe PPA also gives access to the source code, which includes test code in src/tests/. A lot of information can be gathered from testylm.cpp which basically performs all sorts of sanity checks on the various functions provided by the library, and serves as a good example of usage.