ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/pmutil.c
(Generate patch)

Comparing ray/src/rt/pmutil.c (file contents):
Revision 2.5 by rschregle, Wed Apr 8 15:14:21 2020 UTC vs.
Revision 2.6 by rschregle, Tue Mar 23 00:07:13 2021 UTC

# Line 56 | Line 56 | void loadPmaps (PhotonMap **pmaps, const PhotonMapPara
56     struct stat octstat, pmstat;
57     PhotonMap *pm;
58     PhotonMapType type;
59 <  
59 >
60     for (t = 0; t < NUM_PMAP_TYPES; t++)
61 <      if (setPmapParam(&pm, parm + t)) {        
61 >      if (setPmapParam(&pm, parm + t)) {
62           /* Check if photon map newer than octree */
63           if (pm -> fileName && octname &&
64               !stat(pm -> fileName, &pmstat) && !stat(octname, &octstat) &&
# Line 67 | Line 67 | void loadPmaps (PhotonMap **pmaps, const PhotonMapPara
67                      pm -> fileName);
68              error(USER, errmsg);
69           }
70 <        
70 >
71           /* Load photon map from file and get its type */
72           if ((type = loadPhotonMap(pm, pm -> fileName)) == PMAP_TYPE_NONE)
73              error(USER, "failed loading photon map");
# Line 82 | Line 82 | void loadPmaps (PhotonMap **pmaps, const PhotonMapPara
82              free(pmaps [type]);
83           }
84           pmaps [type] = pm;
85 <        
85 >
86           /* Check for valid density estimate bandwidths */
87           if ((pm -> minGather > 1 || pm -> maxGather > 1) &&
88               (type == PMAP_TYPE_PRECOMP)) {
# Line 90 | Line 90 | void loadPmaps (PhotonMap **pmaps, const PhotonMapPara
90              error(WARNING, "ignoring bandwidth for precomp photon map");
91              pm -> minGather = pm -> maxGather = 1;
92           }
93 <                    
93 >
94           if ((pm -> maxGather > pm -> minGather) &&
95               (type == PMAP_TYPE_VOLUME)) {            
96              /* Biascomp for volume pmaps (see volumePhotonDensity() below)
# Line 102 | Line 102 | void loadPmaps (PhotonMap **pmaps, const PhotonMapPara
102                      pmapName [type]);
103              error(USER, errmsg);
104           }
105 <        
105 >
106           if (pm -> maxGather > pm -> numPhotons) {
107 <            error(WARNING, "adjusting density estimate bandwidth");
108 <            pm -> minGather = pm -> maxGather = pm -> numPhotons;
109 <         }            
107 >            /* Clamp lookup bandwidth to total number of photons (minus one,
108 >               since density estimate gets extra photon to obtain averaged
109 >               radius) */
110 >            sprintf(
111 >               errmsg, "clamping density estimate bandwidth to %ld",
112 >               pm -> numPhotons
113 >            );
114 >            error(WARNING, errmsg);
115 >            pm -> minGather = pm -> maxGather = pm -> numPhotons - 1;
116 >         }
117        }
118   }
119  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines