// Which of the two images (reflections1.jpg, reflections2.jpg) use the scene for. #declare WhichImage = 1; // Need lots of interreflections. global_settings { max_trace_level 128 } background { color rgb 0 } #if(WhichImage = 1) #declare Z = 0.3; #else #declare Z = 100; #end camera { #if(WhichImage = 1) fisheye #else orthographic #end location -Z*z look_at -Z*z+z up y right x } // Nome nice lighting effects by violating conservation of energy (in both scenes) #if(WhichImage = 1) #declare R = 1.1; #else #declare R = 1.0; #end union { // Three big spheres in a triangle and one little sphere between them // Give them slightly different colors for prettiness. sphere { <-1/2,-1/(2*sqrt(3)),0>, 1/2 texture { pigment { color rgb <0.5,0,0.5> } finish { reflection R } } } sphere { <1/2,-1/(2*sqrt(3)),0>, 1/2 texture { pigment { color rgb <0,0.5,0.5> } finish { reflection R } } } sphere { <0,1/sqrt(3),0>, 1/2 texture { pigment { color rgb <0,0,1> } finish { reflection R } } } sphere { <0,0,0>, 1/sqrt(3)-1/2 texture { pigment { color rgb 0 } finish { reflection 1 } } } #if(WhichImage = 1) // no need for any transformations #else // so simple, yet it makes quite a difference // the translate is just to center the scene in the field of view scale <1,1,200> translate <0,-.1,0> #end }