//---------------------------------------------------------------------------------------------------- // Scene to show thread safet issue with splines - or maybe functions using splines. // // On a multi-core machine, without AA, run this command to see the problem (8 cores < 60 seconds) : // // povray +ISplineThreadSafety.pov -A -D +THfs +WT8 +AM2 +MB5 +H800 +W800 // // Image is clean except for AA issue if we run with one thread using this command: // // povray +ISplineThreadSafety.pov -A -D +THfs +WT1 +AM2 +MB5 +H800 +W800 // //---------------------------------------------------------------------------------------------------- global_settings { assumed_gamma 1.0000 ambient_light srgb <1.0,1.0,1.0> } #declare Grey15 = rgb <0.15,0.15,0.15>; background { color Grey15 } #declare Picton_Blue = srgb <0.2706,0.6941,0.9098>; #declare CameraPrism = camera { perspective location <4.0,4.0,-4.0> sky <0.0,1.0,0.0> angle 30.0 right x*(image_width/image_height) look_at <0.0,0.05,0.0> } #declare White = srgb <1.0,1.0,1.0>; #declare LightCamera = light_source { <50.0,50.0,-50.0>, White } #include "functions.inc" #declare Spline_F_Helix1_00 = spline { linear_spline -1.6, <1.0,1.0,1.0> 1.6, <0.05,0.05,0.05> } #declare F_Helix1_00_Spline = function { spline { Spline_F_Helix1_00 } } #declare F_Helix1_00 = function { max(f_helix1(x,y,z,2,4.0,0.1*F_Helix1_00_Spline(y).y,0.4*F_Helix1_00_Spline(y).y,1.0,1.0,0.0),f_rounded_box(x,y,z,0.05,0.55,1.6,0.55)) } #declare IsoThing = isosurface { function { F_Helix1_00(x,y,z) } contained_by { box { <-2.0,-2.0,-2.0>,<2.0,2.0,2.0> } } threshold 0.0 accuracy 0.0001 max_gradient 80.0 max_trace 2 pigment { color Picton_Blue } } #declare Thing = object { object { IsoThing } } //-------------------------------------- Top level scene items --------------------------------------- light_source { LightCamera } camera { CameraPrism } object { Thing }