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

Comparing ray/src/cv/bsdf2ttree.c (file contents):
Revision 2.15 by greg, Wed May 15 03:22:31 2013 UTC vs.
Revision 2.16 by greg, Wed May 15 17:29:30 2013 UTC

# Line 149 | Line 149 | eval_isotropic(char *funame)
149                              bsdf = eval_rbfrep(rbf, iovec+3) *
150                                                  output_orient/iovec[5];
151                          else {
152 <                            double      ssa[3], ssvec[6];
152 >                            double      ssa[3], ssvec[6], sum;
153                              int         ssi;
154                              bsdf = funvalue(funame, 6, iovec);
155                              if (abs_diff(bsdf, last_bsdf) > ssamp_thresh) {
156 <                                bsdf = 0;       /* super-sample voxel */
156 >                                sum = 0;        /* super-sample voxel */
157                                  for (ssi = nssamp; ssi--; ) {
158                                      SDmultiSamp(ssa, 3, (ssi+drand48())/nssamp);
159                                      ssvec[0] = 2.*(ix+ssa[0])/sqres - 1.;
# Line 165 | Line 165 | eval_isotropic(char *funame)
165                                      ssvec[5] = output_orient *
166                                                  sqrt(1. - ssvec[3]*ssvec[3] -
167                                                          ssvec[4]*ssvec[4]);
168 <                                    bsdf += funvalue(funame, 6, ssvec);
168 >                                    sum += funvalue(funame, 6, ssvec);
169                                  }
170 <                                bsdf /= (float)nssamp;
170 >                                bsdf = sum/nssamp;
171                              }
172                          }
173                          if (pctcull >= 0)
# Line 237 | Line 237 | eval_anisotropic(char *funame)
237                              bsdf = eval_rbfrep(rbf, iovec+3) *
238                                                  output_orient/iovec[5];
239                          else {
240 <                            double      ssa[4], ssvec[6];
240 >                            double      ssa[4], ssvec[6], sum;
241                              int         ssi;
242                              bsdf = funvalue(funame, 6, iovec);
243                              if (abs_diff(bsdf, last_bsdf) > ssamp_thresh) {
244 <                                bsdf = 0;       /* super-sample voxel */
244 >                                sum = 0;        /* super-sample voxel */
245                                  for (ssi = nssamp; ssi--; ) {
246                                      SDmultiSamp(ssa, 4, (ssi+drand48())/nssamp);
247                                      SDsquare2disk(ssvec, 1.-(ix+ssa[0])/sqres,
# Line 254 | Line 254 | eval_anisotropic(char *funame)
254                                      ssvec[5] = output_orient *
255                                                  sqrt(1. - ssvec[3]*ssvec[3] -
256                                                          ssvec[4]*ssvec[4]);
257 <                                    bsdf += funvalue(funame, 6, ssvec);
257 >                                    sum += funvalue(funame, 6, ssvec);
258                                  }
259 <                                bsdf /= (float)nssamp;
259 >                                bsdf = sum/nssamp;
260                              }
261                          }
262                          if (pctcull >= 0)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines