// See '***' for 2.2 -> 1.0 AG changes. #version 3.8; // *** #declare RAD = 4; global_settings { assumed_gamma 1.0 // *** max_trace_level 5 noise_generator 2 #if(RAD > 0) radiosity { pretrace_start 0.08 pretrace_end 0.04/RAD count 30*RAD nearest_count min (20, RAD) error_bound 2/RAD low_error_factor 0.5 recursion_limit 1 gray_threshold 0 minimum_reuse 0.015 brightness 1 adc_bailout 0.005 normal on media on } #end } #declare ColorDefaultDiffuse = srgb 0.6; // *** #declare ColorDefaultAmbient = srgb 0.1; // *** < v3.8. At 0 >= v3.8 default { // *** finish { //ambient ColorDefaultAmbient.x diffuse ColorDefaultDiffuse.x } } #include "stdinc.inc" camera { ultra_wide_angle location <21,-22.4,-28> look_at <30,16,0> right x*16/9 angle 30 } light_source { <0,0,-100000> color rgb 2.42 } sky_sphere { pigment { average pigment_map { [1 function {max (min (y, 1), 0)} color_map { blend_mode 3 blend_gamma 2.5 // *** [0 rgb 2.35] [0.96 rgb 4.5] [1 rgb 13.5] } ] [1 function {max (min (y, 1), 0)} turbulence 0.2 color_map { blend_mode 3 blend_gamma 2.5 // *** [0 rgbt 1] [0.5 srgbt <0.385/1.1,0.77/1.1,1.1/1.1,1>] // *** } rotate z*-45 ] } } } #declare ColorPlaneMaxReflection = srgb 0.5; // *** plane { z, 1 pigment {color rgb 0} finish {reflection {0, ColorPlaneMaxReflection.x}} // *** } #macro RoundBox (A, B, Edge) #local AA = ; #local BB = ; #local LBF = AA; #local RBF = ; #local RBB = ; #local LBB = ; #local LTF = ; #local RTF = ; #local RTB = BB; #local LTB = ; union { sphere {LBF, Edge} sphere {RBF, Edge} sphere {RBB, Edge} sphere {LBB, Edge} sphere {LTF, Edge} sphere {RTF, Edge} sphere {RTB, Edge} sphere {LTB, Edge} cylinder {LBF, RBF, Edge} cylinder {LBB, RBB, Edge} cylinder {LTB, RTB, Edge} cylinder {LTF, RTF, Edge} cylinder {LBF, LTF, Edge} cylinder {RBF, RTF, Edge} cylinder {RBB, RTB, Edge} cylinder {LBB, LTB, Edge} cylinder {LTB, LTF, Edge} cylinder {LBB, LBF, Edge} cylinder {RTB, RTF, Edge} cylinder {RBB, RBF, Edge} box {AA-Edge*x, BB+Edge*x} box {AA-Edge*y, BB+Edge*y} box {AA-Edge*z, BB+Edge*z} } #end #declare ColorMetalDiffuse = srgb 0.1; // *** #declare ColorMetalReflection = srgb 0.2; // *** #declare metal = texture { pigment {color rgb <1,0.98,0.96>} finish { diffuse ColorMetalDiffuse.x // *** specular 0.5 metallic reflection ColorMetalReflection.x // *** } normal { wood scale 0.0005 slope_map { [0 <0.5, 1>] [0.25 <1, 0>] [0.5 <0.5, -1>] [0.75 <0, 0>] [1 <0.5, 1>] } accuracy 0.0001 } } #declare metal2 = texture { pigment {color rgb <1,0.98,0.96>} finish { diffuse ColorMetalDiffuse.x // *** specular 0.5 metallic reflection ColorMetalReflection.x } normal { wrinkles scale 0.01 bump_size 0.1 accuracy 0.0001 } } #declare f_tilt = function { pigment { waves translate <24,18,0> } } #declare s = seed (7); #declare Tx = -110; #declare Ty = -155; #while (Ty < 110) #while (Tx < 155) union { object { RoundBox (<-0.44,-0.44,-0.44>, <0.44,0.44,0.44>, 0.04) scale <1,1,0.05> texture {metal} rotate x*(f_tilt (Tx,Ty,0).x-0.5)*60 translate +0.5 } cylinder { <-0.5,0,0.04>, <0.5,0,0.04>, 0.0125 texture {metal2} translate +0.5 } } #declare Tx = Tx+1; #end #declare Tx = 0; #declare Ty = Ty+1; #end