Based on mitsuba renderer 0.6。
Source code location of integrators: src/integrators/photonmapper
SPPMFramework:
- sppm_framework.h: The implementation of SPPMFramework, which lays the foundations of SPPM alike algorithms. SPPM and FPPM are derived from it.
SPPM:
- sppm_framework.cpp:Implementation of SPPM using the SPPMFramework.
FPPM:
- fppm.cpp: PPM with F-test applied on the luminance channel.
- sfppm.cpp: PPM with F-test applied on each spectual channel respectively (currently RGB).
Different from many implementations that parallize between iterations, we parallize on film pixels as our approach is dependent on the kernel radii along iterations.
Source location: src/integrators/vcm
- vcm_implement.h:The body of VCM. Derivatives of VCM use a
config.hand ahandler.hto customize on the process of photon collection and kernel radius reduction. - vcm.cpp、vm_handler.h、vm_config.h:Standard VCM/UPS。
- c_vcm0.cpp、cvm0_handler.h、cvm0_config.h:VCM/UPS that does not shrink the kernel.
- c_vcm.cpp、cvm_handler.h、cvm_config.h: VCM/UPS with Chi-squared test.
- fvcm.cpp、fvm_handler.h、fvm_config.h: VCM+.
- sfvcm.cpp、sfvm_handler.h、sfvm_config.h: VCM+ with F-tests applied on RGB channels respectively.
- cfvcm.cpp、cfvm_handler.h、cfvm_config.h: A failed trail that uses Chi-squared test and F-test together with VCM.
- vm_configs.h: Registrations of
config.h. - vm_handlers.h:Registrations of
handler.h. - light_rec.h:Declaration of the struct of direct lighting sample.
- mis_helper.h: MIS calculation implementations.
- serializable_vector.h: Serailizable vector helper.
- vcm_config.h: Common configurations of VCM/UPS/VCM+.
- vcm_data.h:Datastructures used by MIS.
- vcm_photon.h: Light vertices for vertex merging.
- vcm_photonmap.h:Implementation of the photon map (using a K-D tree)
- vcm_wr.h: Working results of parallel processes and merging logic.
- vm_value.h: Calculation of the BSDF term in vertex merging.