--- ray/src/rt/pmapparm.h 2015/02/24 19:39:27 2.1 +++ ray/src/rt/pmapparm.h 2021/04/14 11:26:25 2.10 @@ -1,14 +1,20 @@ +/* RCSid $Id: pmapparm.h,v 2.10 2021/04/14 11:26:25 rschregle Exp $ */ + /* - ================================================================== - Parameters common to all photon map modules. - For inclusion in main program. + ====================================================================== + Parameters for photon map generation and rendering; used by mkpmap + and rpict/rvu/rtrace. Roland Schregle (roland.schregle@{hslu.ch, gmail.com} (c) Fraunhofer Institute for Solar Energy Systems, - Lucerne University of Applied Sciences & Arts - ================================================================== + supported by the German Research Foundation + (DFG LU-204/10-2, "Fassadenintegrierte Regelsysteme" (FARESYS)) + (c) Lucerne University of Applied Sciences and Arts, + supported by the Swiss National Science Foundation + (SNSF #147053, "Daylight Redirecting Components") + ====================================================================== - $Id: pmapparm.h,v 2.1 2015/02/24 19:39:27 greg Exp $ + $Id: pmapparm.h,v 2.10 2021/04/14 11:26:25 rschregle Exp $ */ @@ -24,6 +30,15 @@ unsigned minGather, maxGather; /* Num photons to gather */ unsigned long distribTarget; /* Num photons to store */ } PhotonMapParams; + + /* Region of interest */ + typedef struct { + /* siz [1], siz [2] <= 0 --> sphere, else rectangle */ + float pos [3], siz [3]; + } PhotonMapROI; + + #define PMAP_ROI_ISSPHERE(roi) ((roi)->siz[1] <= 0 && (roi)->siz[2] <= 0) + #define PMAP_ROI_SETSPHERE(roi) ((roi)->siz[1] = (roi)->siz[2] = -1) extern PhotonMapParams pmapParams [NUM_PMAP_TYPES]; @@ -37,13 +52,21 @@ #define contribPmapParams (pmapParams [PMAP_TYPE_CONTRIB]) - extern float pdfSamples, preDistrib, finalGather, gatherTolerance, - maxDistCoeff; - extern unsigned long photonHeapSizeInc, photonMaxBounce; - extern unsigned photonRepTime, maxPreDistrib, defaultGather; -#ifdef PMAP_ROI - extern float pmapROI [6]; + extern float pdfSamples, preDistrib, finalGather, + gatherTolerance, maxDistFix, pmapMaxDist, + photonMaxDist; + extern unsigned long photonHeapSizeInc, photonMaxBounce; + extern unsigned photonRepTime, maxPreDistrib, defaultGather, + verbose; + + extern unsigned pmapNumROI; + extern PhotonMapROI *pmapROI; + +#ifdef PMAP_OOC + extern float pmapCachePageSize; + extern unsigned long pmapCacheSize; #endif + struct PhotonMap;