/* --- settings --- */ #local MitSonnenTau = 0; #local MitGras = 0; #local MitHalmen = 1; #local MitBluete = 0; #local MitPflanzen = 1; #local MitGaenseBlume = 0; #local MitSteinen = 1; #local MitSchnecken = 0; #local MitFLiegenpilz = 0; #local MitBaum = 1; #local MitBuddha = 1; global_settings { adc_bailout 0.003922 ambient_light <1.0,1.0,1.0> assumed_gamma 1.8 hf_gray_16 off irid_wavelength <0.25,0.18,0.14> max_intersections 64 max_trace_level 10 number_of_waves 10 /* radiosity { brightness 3.3 count 100 distance_maximum 0.0 error_bound 0.4 gray_threshold 0.5 low_error_factor 0.8 minimum_reuse 0.015 nearest_count 6 recursion_limit 1 } */ } #declare Dummy = sphere { <0,0,0> 0 pigment { color rgb<0,0,0> } } /* --- includes --- */ #include "colors.inc" #include "textures.inc" #include "woods.inc" #include "shapes.inc" #include "shapes2.inc" #include "functions.inc" #include "math.inc" #include "transforms.inc" #include "woodmaps.inc" /* --- wiesen elemente --- */ // #include "glockenblume.pov" /* --- akteure --- */ #include "hummel2.pov" // object Bee #include "vogel-v3.pov" /* --- sun --- */ #declare Sonne = light_source { <0,2500,-200> color White } /* --- sky --- */ #declare Himmel = plane { <0,1,0>,1 hollow texture { pigment { bozo turbulence 0.92 color_map { [0.00 rgb <0.2, 0.2, 1>*0.9] [0.50 rgb <0.2, 0.2, 1>*0.9] [0.70 rgb <1,1,1>] [0.85 rgb <0.25,0.25,0.25>] [1.0 rgb <0.5,0.5,0.5>] } scale<1,1,1.5>*2.5 translate<1.0,0,-1> } finish { ambient 1 diffuse 0 } } scale 10000 } /* --- ground --- */ #declare Untergrund = plane { <0,1,0>, 0 texture { pigment { color rgb<0.35,0.65,0.0>*0.8 } normal { bumps 0.75 scale 0.015 } finish { ambient 0.1 diffuse 0.8 } } } /* --- zaun elemente --- */ #declare Zaun = merge { box { <0,0,1>,<1,3,1.2> } prism { 0.00, 0.2, 4 <-1.00, 0.00>, < 0, 0.00>, < -0.5, 0.20>, <-1.00, 0.00> rotate<-90,0,0> translate<1,3,1.2> } texture { Yellow_Pine normal { bumps 0.5 scale 0.08 } finish { ambient 0.1 diffuse 0.9 phong 1.0 } } //Ende der Texturbeschreibung scale 0.97 // 0.5 } #declare ZaunMitLoch = merge { difference { box { <0,0,1>,<1,3,1.2> } sphere { <0,0,0>,0.2 translate <0.25,1.2,1.1> texture { pigment { color Black } } } prism { 0.00, 0.2, 4 <-1.00, 0.00>, < 0, 0.00>, < -0.5, 0.20>, <-1.00, 0.00> rotate<-90,0,0> translate<1,3,1.2> } texture { Yellow_Pine normal { bumps 0.5 scale 0.08 } finish { ambient 0.1 diffuse 0.9 phong 1.0 } } } // difference box { <0,0.8,1.2>, <0.7,1.5,1.25> //<--- Farbe hinter dem Loch - kann man auch weglassen dann is halt der Himmer dahinter texture { pigment { color Black } } } // Ende der Zaunelemente scale 0.97 } #declare Random_1 = seed (1153); // Zufall fr Zaun krmm und schief #declare Random_2 = seed (9153); // Zufall fr Zaun krmm und schief //--------------------------------------------------------------------- //-.------------------------Variab------------------------------------ #declare zAbstand = -25; // immer negativen Wert nehmen sonst....... //Zaungr÷˜e ist immer doppelt so gro˜ wie zAbstand #declare W = 0; // zus„tzlicher Z-Abstabnd nach hinten #declare zufall=2; /* --- gras --- */ #if (MitGras) #include "gras_2.inc" #include "gras.inc" #end #macro GrasBueschel(anz_halme,anz_blaetter) object { #if (MitGras) grasbueschel (anz_halme,anz_blaetter) #else Dummy #end } #end //------------------------------------------------------ //.....--------------------------------------------------------- #declare ZaunAlles = union { // Der komplette Zaun ist eine Union // Bretter hinten #declare NrA = zAbstand+1; // start #declare EndNrA = zAbstand*-1; // end #while (NrA < EndNrA+1) object { Zaun rotate translate < NrA,-rand(Random_1)/4,-zAbstand+W> } #declare NrA = NrA + 1; //next Nr #end //Bretter rechts #declare NrX = zAbstand; // start #declare EndNrX = -zAbstand; // end #while (NrX < EndNrX+1) object { Zaun rotate <0,90,rand(Random_2)*6> translate <-zAbstand,-rand(Random_2)/2,NrX+W+1> } object { GrasBueschel (2,4) scale 0.09 translate <-zAbstand-0.8,-rand(Random_2)/3,NrX+W+1> } #declare NrX = NrX + 1; //next Nr #end // Bretter Links #declare NrY = zAbstand; // start #declare EndNrY = -zAbstand; // end #while (NrY < EndNrY+1) object { Zaun rotate <0,90,rand(Random_1)*4> translate } // object { GrasBueschel (2,4) scale 0.15 translate } #declare NrY = NrY + 1; //next Nr #end //Bretter vorne #declare NrB = zAbstand+1; // start #declare EndNrB = -zAbstand; // end #while (NrB < EndNrB+1) object { Zaun rotate translate < NrB,-rand(Random_2)/3,zAbstand+W-1> } #declare NrB = NrB + 1; //next Nr #end //Zaun mit Loch mu˜ ber ein bereits vorhandenes Drbergelegt werden object { ZaunMitLoch translate <2,0,-zAbstand+W-0.1> } } // Lasst uns die Wiese ergrnen und mit viel Schwachsinn fllen! // Howto : while schleifen mit seed werten // Kugel 1 - ist Grasbschel #declare Kugel_X_Random = seed (59873); // Zufall fr Kugel 1 X- Achse #declare Kugel_Z_Random = seed (1971); // Zufall fr Kugel 1 Z - Achse #declare Kugel_Y_Random = seed (7865); // Zufall fr Kugel 1 Y - Achse #declare Kugel_W_Random = seed (579); // Zufall fr Kugel 1 W- Achse #declare KugelA = sphere { <0, 1, 0>, 0.6 translate <0,0,0> texture { pigment { color Red } } } //Kugel1_Random verteilung in X und Z richtung #declare KuX = zAbstand-1; // start #declare KuEnd = -zAbstand+1; // end #while (KuX < KuEnd) // der Wert der von KuEnd Abgezogen wird ver„ndert die Anzahl der Dinge Im Verh„ltnis zur gr÷˜e des Gartens!!!! // 4 verschiedene Grasbschel object { GrasBueschel (7,4) scale 0.09 translate < KuX,0,zAbstand*(-1+2*rand(Kugel_Z_Random))> } object { GrasBueschel (4,2) scale 0.08 translate < KuX,0,zAbstand*(-1+2*rand(Kugel_X_Random))> } object { GrasBueschel (2,1) scale 0.06 translate < KuX,0,zAbstand*(-1+2*rand(Kugel_Y_Random))> } object { GrasBueschel (4,1) scale 0.07 translate < KuX,0,zAbstand*(-1+2*rand(Kugel_W_Random))> } #declare KuX = KuX + 0.02; //next Nr #end // ------------ end of loop -- /* --- fliegenpilz --- */ #if (MitFLiegenpilz) #include "fliegenpilz.pov" #declare KugelB_X_Random = seed (73); // Zufall fr Kugel2 X- Achse #declare KugelB_Z_Random = seed (171); // Zufall fr Kugel2 Z - Achse #declare KugelB = sphere { <0, 1, 0>, 0.5 translate <0,0,0> texture { pigment { color Blue } } } //Kugel2_Random verteilung in X und Z richtung #declare Ku2 = zAbstand; // start #declare Ku2End = -zAbstand; // end #while (Ku2 < Ku2End) object { pilz rotate <-90,0,0> scale 0.1 translate < Ku2,0.5,Ku2*(-1+2*rand(KugelB_Z_Random))> } #declare Ku2 = Ku2 + 2; //next Nr #end #end /* --- bluete --- */ #if (MitBluete) #include "bluete.pov" #declare KugelC_X_Random = seed (1833); // Zufall fr Kugel3 X- Achse #declare KugelC_Z_Random = seed (1748); // Zufall fr Kugel3 Z - Achse #declare Bedingung = seed (5679); // Zufall fr Kugel3 Z - Achse #declare KugelC = sphere { <0, 1, 0>,0.7 translate <0,0,0> //hier msste dann das Ding kommen texture { pigment { color Black }} } //Kugel2_Random verteilung in X und Z richtung #declare Ku3 = zAbstand+1; // start #declare Ku3End = -zAbstand; // end #while (Ku3 < Ku3End) #if (-1+2*rand(Bedingung) < -0.8) #declare drei = union { object { bluete rotate <-90,-90/*rand(KugelC_X_Random)*/,-8> scale 0.24 } object { bluete rotate <-90,90/*rand(KugelC_X_Random)*/,1> scale 0.23 } object { bluete rotate <-90,45/*rand(KugelC_X_Random)*/,-15> scale 0.21 } } object { drei rotate <0,10*rand(KugelC_X_Random),0> translate < Ku3,0,zAbstand*(-1+2*rand(KugelC_Z_Random))> } #end #if (-1+2*rand(Bedingung) > 0.8) #declare zwei = union { object { bluete rotate <-90,-45/*rand(KugelC_X_Random)*/,1> scale 0.2 } object { bluete rotate <-90,95/*rand(KugelC_X_Random)*/,-2> scale 0.19 } } object { zwei rotate <0,-10*rand(KugelC_X_Random),0> translate < Ku3,0,zAbstand*(-1+2*rand(KugelC_Z_Random))> } #end #if (-1+2*rand(Bedingung) > 0.4) object { bluete rotate <-90,100*rand(KugelC_X_Random),1> scale 0.22 translate < Ku3,0,zAbstand*(-1+2*rand(KugelC_Z_Random))> } #declare Ku3 = Ku3 + 0.5; //next Nr #end #end #end /* --- Glockenblume --- */ #declare Kugel4_X_Random = seed (767); // Zufall fr Kugel3 X- Achse #declare Kugel4_Z_Random = seed (7513); // Zufall fr Kugel3 Z - Achse // Verteilung in X und Z richtung #declare Ku4 = zAbstand+1; // start #declare Ku4End = -zAbstand-1; // end /* FIXME: povray kennt "glockenblume" nicht #while (Ku4 < Ku4End) object { glockenblume scale 0.07 rotate <-90,90*rand(Kugel4_X_Random),0> translate < Ku4,1.5,zAbstand*(-1+2*rand(Kugel4_Z_Random))> } #declare Ku4 = Ku4 +1; //next Nr #end */ /* --- Schneckenhaeuser --- */ #if (MitSchnecken) #include "schnecke3.pov" #declare Schne_X_Random = seed (123); //Zufall Schneckenhaus X #declare Schne_Z_Random = seed (7979); //Zufall ScheeZ #declare Schne = zAbstand; // start #declare SchneEnd = -zAbstand-10; // end #while (Schne < SchneEnd) object { schnecke scale 0.2 rotate <-90,7*Schne_X_Random,0> translate } #declare Schne = Schne + 4; //next Nr #end #end /* --- Gaensebluemchen --- */ #if (MitGaenseBlume) #include "gbluete.pov" #declare Gans_Random = seed (1453); //Zufall Schneckenhaus X #declare Gans_Z_Random = seed (98546); //Zufall ScheeZ #declare goos = zAbstand; // start #declare goosend = -zAbstand; // end #while (goos < goosend) object { Gansblume scale 0.5 rotate <-90,90*rand(Gans_Random),0>translate < goos,0,zAbstand*(-1+2*rand(Gans_Random))> } #declare goos = goos + 0.05; //next Nr #end #end /* --- Halme --- */ #if (MitHalmen) #include "halm.pov" #declare Halm_Random = seed (47964); //Zufall Schneckenhaus X #declare Halm_Z_Random = seed (7645); //Zufall ScheeZ #declare ha = zAbstand; #declare haend= -zAbstand; #while (ha < haend) object { Halm scale 0.23 rotate <-90,90*rand(Halm_Random),0>translate < ha,0,zAbstand*(-1+2*rand(Halm_Random))> } #declare ha = ha + 0.5; //next Nr #end #end /* --- Steine ohne Kaefer --- */ #if (MitSteinen) #include "stein.pov" #declare Stein_Random = seed (7864); //Zufall Schneckenhaus X #declare ste = zAbstand; #declare steend= -zAbstand; #while (ste < steend) object { stein scale 1 rotate <-90,90*rand(Stein_Random),0>translate < ste+3,-0.5,zAbstand*(-1+2*rand(Stein_Random))> } #declare ste = ste + 10; //next Nr #end #end /* --- Buddha --- */ #if (MitBuddha) #include "boudha.inc" #include "golds.inc" #end #declare Buddha = object { #if (MitBuddha) boudha scale 0.15 rotate <0,145,0> translate //texture { pov_default } texture { T_Gold_2C } #else Dummy #end } /* --- Verschiedene Pflanzen --- */ #if (MitSonnenTau) #include "sonnentau.inc" #end #declare SonnentauAngepasst = object { #if (MitSonnenTau) Sonnentau scale 0.2 translate <3*rand(Kugel4_X_Random)*-1,0,rand(Kugel4_Z_Random)-15> #else Dummy #end } #if (MitBaum) #include "baumstamm.inc" #end #declare Baum = object { #if (MitBaum) Stamm scale 0.9 translate<6,-10,4> pigment { color Brown } #else Dummy #end } /* --- hummel fuer spline flug --- */ #declare FixedBee = object { Bee // extends in y-dir, located above origin scale 0.5 // adjust size translate <0, -1, 0> // shift bee center into origin Axis_Rotate_Trans (<1,0,0>, 90) // make z-axis vertical bee axis Axis_Rotate_Trans (<0,0,1>, 180) // turn on belly } /* --- camera splines --- */ #declare KameraFahrt_Garten1 = spline { // von Sven // Steuerpunkt, Startpunkt, ..., Endpunkt, Steuerpunkt linear_spline -0.20, < - 1.0, 1, + 0.6 >, +0.00, < - 1.0, 1, + 0.6 >, +0.20, < - 2, 2.0, - 0 >, +0.40, < - 2, 1.5, 8 >, +0.60, < - 4, 0.5, 14 >, +0.80, < - 5, 1, 19 >, +1.00, < -12, 3.5, 25 >, +1.20, < - 2, 3.78, 26.1 > } #declare KameraFahrt_Garten2 = spline { // von Andre // Steuerpunkt, Startpunkt, ..., Endpunkt, Steuerpunkt natural_spline -0.03, < -56.078542 / 2, 5.0, 8.746195 / 2 >, +0.00, < -55.078542 / 2, 6.5, 10.746195 / 2 >, +0.03, < -54.078542 / 2, 7.0, 12.246195 / 2 >, +0.06, < -52.99165 / 2, 7.151988, 13.376533 / 2 >, +0.09, < -49.904758 / 2, 8.586647, 20.0648 / 2 >, +0.12, < -46.973683 / 2, 8.945312, 27.267548 / 2 >, +0.15, < -40.332447 / 2, 9.303977, 37.042707 / 2 >, +0.18, < -32.100734 / 2, 8.227983, 43.216491 / 2 >, +0.21, < -22.419635 / 2, 6.793324, 48.361312 / 2 >, +0.24, < -9.322434 / 2, 7.151988, 47.332348 / 2 >, +0.27, < -2.057928 / 2, 10.379971, 39.100635 / 2 >, +0.30, < 2.822288 / 2, 12.173295, 27.267548 / 2 >, +0.33, < 2.728228 / 2, 12.173295, 21.093764 / 2 >, +0.36, < 10.804123 / 2, 11.495231, 23.592046 / 2 >, +0.39, < 18.521353 / 2, 9.662641, 26.753066 / 2 >, +0.42, < 23.151692 / 2, 8.945312, 30.35444 / 2 >, +0.45, < 24.180656 / 2, 6.434659, 39.100635 / 2 >, +0.48, < 13.53235 / 2, 6.434659, 45.27442 / 2 >, +0.51, < 1.543446 / 2, 5.358665, 44.245455 / 2 >, +0.54, < -10.804123 / 2, 5.0, 26.753066 / 2 >, +0.57, < -17.024937 / 2, 8.586647, 8.231713 / 2 >, +0.60, < -16.104761 / 2, 9.662641, -8.746195 / 2 >, +0.63, < -10.95994 / 2, 9.662641, -28.296512 / 2 >, +0.66, < 3.601374 / 2, 9.662641, -36.528225 / 2 >, +0.69, < 22.63721 / 2, 11.0973, -33.441333 / 2 >, +0.72, < 23.354539 / 2, 10.738636, -33.441333 / 2 >, +0.75, < 26.955914 / 2, 10.021306, -22.63721 / 2 >, +0.78, < 28.810994 / 2, 8.227983, -10.804123 / 2 >, +0.81, < 33.238485 / 2, 6.434659, 7.202749 / 2 > } /* --- Objekte --- */ object { Himmel } object { ZaunAlles } object { Sonne } object { Untergrund } object { SonnentauAngepasst } object { GrasBueschel (1,7) scale 0.25 } object { Baum } object { Buddha } object { vogel scale 0.5 rotate <-90,-70,-10> translate <-2,3.79,26.1> } object { object { FixedBee scale 3 } // sphere { <0,0,0> 1 pigment { color Blue } } #local curve_ahead = 1; // >= 0.0000000000001 #local tilt = 1; Spline_Trans (KameraFahrt_Garten2, clock, y, curve_ahead, tilt) } // object { Bee scale 0.71 rotate <-25,20,0> translate <0,1,-8> } /* --- camera/view definition --- */ camera { angle (60 - clock * 40) translate KameraFahrt_Garten1 (clock) look_at KameraFahrt_Garten2 (clock) } fog { fog_type 2 distance 150 color White fog_offset 0.1 fog_alt 1.5 turbulence 1.8 } /* --- emacs editing helpers --- */ /* (setq load-path (cons "/home/timj/tmp/" load-path)) (load "pov-mode.el") (pov-mode) (hotkeys-programming) */