#include "colors.inc" #include "textures.inc" #include "shapes.inc" #include "metals.inc" #include "glass.inc" #include "woods.inc" #include "functions.inc" global_settings {max_trace_level 15} // Uncomment the area lights only if you've got lots of time. #declare Dist=80.0; light_source {< -50, 25, -50> color White fade_distance Dist fade_power 2 // area_light <-40, 0, -40>, <40, 0, 40>, 3, 3 // adaptive 1 // jitter } light_source {< 50, 10, -4> color Gray30 fade_distance Dist fade_power 2 // area_light <-20, 0, -20>, <20, 0, 20>, 3, 3 // adaptive 1 // jitter } light_source {< 0, 100, 0> color Gray30 fade_distance Dist fade_power 2 // area_light <-30, 0, -30>, <30, 0, 30>, 3, 3 // adaptive 1 // jitter } sky_sphere { pigment { gradient y color_map { [0, 1 color Gray50 color Gray80] } } } //////////////////// // Cameras // //////////////////// camera {location <-15, 50, -45> direction <0, 0, 2.25> right x*1.33 look_at 8*y} //camera {location 15*y look_at 0} //camera {location -15*z look_at 0} //camera {location -50*z look_at 0} //camera {location <0,15,-50> look_at 15*y} //camera {location <0,15,-15> look_at 15*y} //camera {location -15*x look_at 0} //camera {location <15,15,0> look_at 15*y} //camera {location <-10,10,-10> look_at 0} //camera {location <-10,-10,-10> look_at 0} //camera {location <-5,5,-5> look_at 0} //camera {location <-5,-5,-5> look_at 0} //camera {location <-2,-2,-2> look_at 0} //camera {location <-2,2,-2> look_at 0} //////////////////// // Macros // //////////////////// // Gets angle in radiant, returns position on circle with radius 1 #macro Circle(phi) #end /////////////////////////////////// // Figure parts - sngeovik // /////////////////////////////////// // Piece of coal for the mouth #declare mouthcoal = superellipsoid {<1.25,1.25> rotate 45*z pigment {color rgb 0.2} scale 0.2} // Mouth, consisting of the pieces of coal #declare mouth = union { #declare counter = 7; #while (counter < 12) object {mouthcoal rotate z*counter*30 translate Circle(pi*(counter/6))} #declare counter = counter + 1; #end } // The nose carrot #declare nose = cone {0, 0.3, z*-2.5, 0 pigment {color Orange}} // The eyeball #declare eyeball = sphere {0 0.5 pigment {color Green}} // The pupil of the eye #declare pupil = sphere {0 0.2 pigment {color Black}} // The eye, consistin of the eyeball and the pupil #declare eye = union { object{eyeball scale <1,1,0.7> rotate x*40} object{pupil translate <0, 0.04, -0.3>} } // The snowball for the body and the head #declare snowball = sphere {0 1 pigment {color White}} // The head: a snowball, the mouth, the nose and one eye (cyclop!) #declare head = union { object {snowball scale 2.5} object {mouth translate -2.3*z} object {nose translate -2.5*z} object {eye translate <0,1,-2.1>} } // The body: two snowballs #declare body = union { object {snowball scale 5 translate 5*y} object {snowball scale 3.5 translate 11.5*y} } ////////////////////////////////////// // Figure parts - accessoires // ////////////////////////////////////// // The shape of the bucket #declare bucketShape = cone {0 1.5 3*y 1} // The bucket body, using the shape and cutting out the center #declare bucketBody = difference { object {bucketShape} object {bucketShape scale 0.98 translate -0.03*y} cylinder {<-1.55, 0.15, -0.05> <-1.35, 0, -0.03> 0.03} cylinder {<1.55, 0.15, -0.05> <1.35, 0, -0.03> 0.03} } // The ring on the bottom of the bucket #declare bucketFoot = difference { cylinder {0 y*0.15 1} cylinder {-0.01*y y*0.16 0.97} } // The handle of the bucket #declare bucketHandle = union { difference { torus {1.6 0.03 scale <1, 1, 1.6>} box {<-3, -0.1, 0> <3, 0.1, 3>} } cylinder {<-1.6, 0, -0.03> <-1.35, 0, -0.03> 0.03} cylinder {<1.6, 0, -0.03> <1.35, 0, -0.03> 0.03} pigment {color Grey} } // The bucket: body, ring, foot and handle #declare bucket = union { object {bucketBody} object {torus {1.51 0.07}} object {bucketFoot translate y*3} object {bucketHandle rotate x*-20 translate <0, 0.1, 0.05>} pigment {color Grey} } // The snowman: body and head with bucket #declare snegovik = union { object {body} object {head translate 17*y} object {bucket rotate <-10,0,-20> scale 1.2 translate <0.6,18.6,-0.4>} } //object {mouthcoal} //object {mouth} //object {nose} //object {eyeball} //object {pupil} //object {eye} //object {snowball} //object {head} //object {body} //object {bucketShape} //object {bucketBody} //object {bucketFoot} //object {bucketHandle} //object {bucket} object {snegovik}