def create_sampler_stratified(paramset: ParamSet, film: Film, camera: Camera) -> StratifiedSampler: jitter = paramset.find_bool("jitter", True) xsamples = paramset.find_int("xsamples", 2) ysamples = paramset.find_int("ysamples", 2) sampler = StratifiedSampler(BucketExtend(0, 0, film.width - 1, film.height - 1), xsamples, ysamples, jitter, camera.shutterOpen, camera.shutterClose) return sampler
def create_diffuse_area_light(light2world: Transform, paramSet: ParamSet, shape: Shape): L = paramSet.find_spectrum("L", Spectrum(1.0)) sc = paramSet.find_spectrum("scale", Spectrum(1.0)) nSamples = paramSet.find_int("nsamples", 1) # if renderOptions.quickRender: # nSamples = max(1, nSamples / 4) return DiffuseAreaLight(light2world, L * sc, nSamples, shape)
def create_film_image(paramset: ParamSet, filter: Filter) -> Film: w = paramset.find_int("xresolution", 640) h = paramset.find_int("yresolution", 480) return Film(w, h)
def create_sampler_random(paramset: ParamSet, film: Film, camera: Camera) -> RandomSampler: samples = paramset.find_int("pixelsamples", 1) sampler = RandomSampler(BucketExtend(0, 0, film.width - 1, film.height - 1), samples, camera.shutterOpen, camera.shutterClose) return sampler
def create_surface_integrator_path(paramset: ParamSet) -> DirectLightingIntegrator: samples_count = paramset.find_int("maxdepth", 2) integrator = PathIntegrator(samples_count) return integrator
def create_surface_integrator_direct_lighting(paramset: ParamSet) -> DirectLightingIntegrator: samples_count = paramset.find_int("nsamples", 2048) max_distance = paramset.find_float("maxdist", infinity_max_f) #todo depth etc integrator = DirectLightingIntegrator(samples_count, max_distance) return integrator
def create_surface_integrator_ambient_occlusion(paramset: ParamSet) -> AmbientOcclusionIntegrator: samples_count = paramset.find_int("nsamples", 2048) max_distance = paramset.find_float("maxdist", infinity_max_f) integrator = AmbientOcclusionIntegrator(samples_count, max_distance) return integrator