// Objekte // Kamera camera { sky <0,0,2> // Vektor, der festlegt, wo oben ist. right <-4/3,0,0> // Bildverhältnis 4:3, plus Spiegelung für rechtsdrehendes System location <8,5,14> // Position der Kamera look_at <2, 4, 2> // Blickrichtung (erscheint im Bildmittelpunkt) angle 40 // Öffnungswinkel der Kamera } // Lichtquellen light_source { <6,-2,8> // Position des Lichts color rgb <1,1,1> // Farbe des Lichts, als rot-grün-blau Vektor (Komponenten 0 bis 1) } light_source { <3,10,3> // Position des Lichts color rgb <1,1,1> // Farbe des Lichts, als rot-grün-blau Vektor (Komponenten 0 bis 1) } #include "colors.inc" #include "textures.inc" //------------------------------------------------------------------------ #declare Camera_1 = camera { ultra_wide_angle angle 48 location <7.7,8,-5.0> right x*image_width/image_height look_at <4.40, 0.00, 0.0> } #include "colors.inc" #include "textures.inc" global_settings { assumed_gamma 1.0 } // Einstellungen für Stereobild #declare DELTA = 3; // camera shift Betrag, halber 'Augenabstand' #switch (frame_number) #case (0) #declare SHIFT = 0; // default Mitte #break #case (1) #declare SHIFT = -DELTA; // linkes Bild #break #case (2) #declare SHIFT = DELTA; // rechtes Bild #break #end // Kamera muss bei location und look_at x=0 haben! camera { location <0+SHIFT, 40, -60> right x*image_width/image_height look_at <0+SHIFT,0,0> angle 40 } // ---------------------------------------- light_source { <-100, 50, -100> color rgb <0.7,0.7,0.7> } light_source { <100, 150, -100> color rgb <1,1,1> } #declare geilesdingens = union { #declare R1 = 15; #declare R2 = 1.5; #declare Twists = 5; #declare DPhi = 5; #declare Kugel1 = sphere { <0,0,0>, 1 texture { finish { Shiny } } } #declare Kugel2 = isosurface{ //------------------------- function{ sqrt(x*x + z*z) - abs(y)} threshold 1 accuracy 0.0001 max_gradient 3 contained_by{ box{ -1, 3 } } texture { pigment { color rgb <1,0,49> } finish { Shiny } } } #declare Kugel3 = isosurface{ //------------------------- function{ abs(x)+abs(y)+abs(z)-2.9 } contained_by { box { -2, 2 } } accuracy 0.003 max_gradient 5 } scale 0.5 } #declare Phi = 0; #declare n = 360; #while (Phi<360) object { Kugel1 pigment { color rgb <(cos(Phi*1*pi/n)+1)/2, (cos(Phi*6*pi/n+2*pi/3)+1)/2, (cos(Phi*2*pi/n+4*pi/3)+1)/2> } translate R2*x rotate Phi*Twists*z + 0 translate R1*x rotate Phi*y translate y*1 } object { Kugel2 translate R2*x rotate Phi*Twists*z + 150 translate R1*x rotate Phi*y translate y*1 } object { Kugel3 translate R2*x rotate Phi*Twists*z + 140 translate R1*x rotate Phi*y translate y*1 pigment { color rgb <(cos(Phi*2*pi/n)+1)/2, (cos(Phi*2*pi/n+2*pi/3)+1)/2, (cos(Phi*2*pi/n+4*pi/3)+1)/2> } } #declare Phi = Phi+DPhi; #end object { geilesdingens pigment { color rgb 2 } // Weiss } object { geilesdingens pigment { color rgb 1 } // Weiss } object { geilesdingens pigment { color rgb 1 } // Weiss rotate 45*z }