--- ray/src/rt/pmapparm.h 2015/05/26 13:31:19 2.4 +++ ray/src/rt/pmapparm.h 2021/04/14 11:26:25 2.10 @@ -1,15 +1,20 @@ +/* RCSid $Id: pmapparm.h,v 2.10 2021/04/14 11:26:25 rschregle Exp $ */ + /* - ================================================================== - Parameters for photon map generation; used by MKPMAP - For inclusion in mkpmap.c + ====================================================================== + 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, + 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) - ================================================================== + supported by the Swiss National Science Foundation + (SNSF #147053, "Daylight Redirecting Components") + ====================================================================== - $Id: pmapparm.h,v 2.4 2015/05/26 13:31:19 rschregle Exp $ + $Id: pmapparm.h,v 2.10 2021/04/14 11:26:25 rschregle Exp $ */ @@ -25,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]; @@ -38,13 +52,21 @@ #define contribPmapParams (pmapParams [PMAP_TYPE_CONTRIB]) - extern float pdfSamples, preDistrib, finalGather, gatherTolerance, - maxDistFix; - 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;