PhotonMappingArch.cc

Go to the documentation of this file.
00001 #include <gra/arch/PhotonMappingArch.h>
00002 
00003 using namespace gra;
00004 
00005 PhotonMappingArch::PhotonMappingArch(PhotonMappingArch::Params& params)
00006     : RayTrArch(params),
00007       _pPhotonTracing(new PhotonTracing(_pIntersector,
00008                                         params.maxRecDepth,
00009                                         params.minRecWeight)),
00010       _pCausticsEmittion(new Caustics(_pIntersector)),
00011       _numPhotonsPerLight(params.photonsPerLight),
00012       _mappingStrategy(params.mappingStrategy),
00013       _userDefinedBehaviour(params.userDefinedBehaviour)
00014 {
00015     if (_pRTReflection) delete _pRTReflection;
00016     
00017     _pRTReflection = new PhotonMapping(new AutoPtr<LocalReflection>(new LocalReflection(NULL, NULL, NULL, LocalReflection::SD_GEOMETRY_SAMPLING, params.shadowRays,  params.cacheDepth)),
00018                                        _background,
00019                                        _pIntersector,
00020                                        params.maxRecDepth,
00021                                        params.minRecWeight,
00022                                        REFR_AIR,
00023                                        params.nRaysDiff,
00024                                        params.nRaysSpec,
00025                                        params.nPhotonsFromMap,
00026                                        params.distPhotonsFromMap,
00027                                        params.preciseRecursionDepth,
00028                                        params.preciseDist,
00029                                        params.stages,
00030                                        params.importanceSampling,
00031                                        params.irradError,
00032                                        params.irradianceCaching);
00033 }
00034 
00035 
00036 Shader* PhotonMappingArch::createShader(void)
00037 {
00038     return new PhotonMapShader(_pPhotonTracing,
00039                                _pCausticsEmittion,
00040                                (PhotonMapping*) _pRTReflection,
00041                                _pDefaultDiffuseBRDF,
00042                                _pDefaultSpecularBRDF,
00043                                _numPhotonsPerLight,
00044                                _mappingStrategy,
00045                                _userDefinedBehaviour);
00046 }

Generated on Tue Nov 21 15:11:42 2006 for gra by  doxygen 1.4.6