vplIntegrator::vplIntegrator(const Parms& parms) : lightSampleID(-1), firstScatterSampleID(-1), firstScatterTypeSampleID(-1) { maxDepth = parms.getInt ("maxDepth" ,10 ); minContribution = parms.getFloat("minContribution",0.01f ); epsilon = parms.getFloat("epsilon" ,32.0f)*float(ulp); backplate = parms.getImage("backplate"); }
PathTraceIntegrator::PathTraceIntegrator(const Parms& parms) : lightSampleID(-1), firstScatterSampleID(-1), firstScatterTypeSampleID(-1), sampleLightForGlossy(false) { maxDepth = parms.getInt ("maxDepth" ,10 ); minContribution = parms.getFloat("minContribution",0.01f ); epsilon = parms.getFloat("epsilon" ,32.0f)*float(ulp); backplate = parms.getImage("backplate"); sampleLightForGlossy = parms.getInt ("sampleLightForGlossy",0); }
HDRILight::HDRILight(const Parms& parms) : width(0), height(0), pixels(null) { local2world = parms.getTransform("local2world",one); world2local = rcp(local2world); L = parms.getColor("L",one); pixels = parms.getImage("image"); if (pixels == null) pixels = new Image3f(5,5,one); width = (unsigned) pixels->width; height = (unsigned) pixels->height; Array2D<float> importance(height,width); for (size_t y = 0; y < height; y++) for (size_t x = 0; x < width; x++) importance.set(y, x, sinf(float(pi)*(y+0.5f)*rcp(float(height))) * reduce_add(pixels->get(x,y))); distribution = new Distribution2D(importance,width,height); }