Tries to find the 'best' ambient parameters for solving your model
This scripts iterates trying to find the optimal parameters (i.e. those that take as little time as possible in solving) by testing different combinations of them
Inputs:
File with sensor points to perform test -- required
Number of randomly selected sensors to use for convergence test -- optional
Increase in Ambient Divisions (i.e. next AD will be arg3*AD) -- optional
Increase in Ambient Bounces (i.e. next AB will be AB + arg4) -- optional
Source code:
-- PARSE INPUTS-- ============sensor_file = arg1 or0.2n_sensors = arg2 or28increase_ad = arg3 or1.6increase_ab = arg4 or1-- CHECK ARGUMENTS-- ===============ifnotfile_exists(sensor_file) thenraise("Sensor file '"..sensor_file.."' does not exist")end-- PROCESS-- =======-- Set parameters to something lowray_trace_parameters{ ab =1; ad = current_ad;}-- Increase ambient divitions until converges-- ===============================================-- Define initial valuescurrent_illuminance =lux_meter(0,0,1)-- calculate initial errorerror =1e9-- Calculatewhileerror> converge_ad do-- Increase ad current_ad = current_ad*increase_ad-- Modify paramsray_trace_parameters{-- ab is already defined ad = current_ad; }-- calculate error error =math.abs(current_illuminance -lux_meter(0,0,1))end-- FIND AMBIENT BOUNCES-- ====================-- Define initial valuesray_trace_parameters { ab = current_ab;}current_illuminance =lux_meter(0,0,1)-- calculate initial errorerror =1e9-- Calculatewhileerror> converge_ad do-- Increase ab current_ab = current_ab + increase_ab-- Modify paramsray_trace_parameters{-- ab is already defined ab = current_ab; }-- calculate error error =math.abs(current_illuminance -lux_meter(0,0,1))end-- REPORT-- ======print_ray_trace_options()