// PoVRay 3.7 Scene File "halfkeg.pov" // author: dookie x // date: 6 June 2017 aka 66h // scale: 1 unit = 1 inch , that's D for US Domestic beer on that Sankey valve! // otha: www.abcdzyne.org //-------------------------------------------------------------------------- #version 3.7; global_settings{ assumed_gamma 1.0 } #default{ finish{ ambient 0.1 diffuse 0.9 }} //-------------------------------------------------------------------------- #include "colors.inc" #include "textures.inc" #include "glass.inc" #include "metals.inc" #include "golds.inc" #include "stones.inc" #include "woods.inc" // stinc'ers... #include "shapes.inc" #include "shapes2.inc" #include "functions.inc" #include "math.inc" #include "transforms.inc" //-------------------------------------------------------------------------- // camera ------------------------------------------------------------------ #declare Camera_0 = camera {perspective angle 75 // front view location <0.0 , 250 ,-500> right x*image_width/image_height look_at <0.0 , 13 , 0>} camera{Camera_0} // sun ---------------------------------------------------------------------- light_source{< 3,69,-3> color White} // sky ---------------------------------------------------------------------- sky_sphere { pigment { gradient <0,1,0> color_map { [0.00 rgb <0.6,0.7,1.0>] [0.35 rgb <0.1,0.0,0.8>] [0.65 rgb <0.1,0.0,0.8>] [1.00 rgb <0.6,0.7,1.0>] } scale 2 } // end of pigment } //end of skysphere // ground ------------------------------------------------------------------- plane{ <0,1,0>, 0 texture{ pigment{ Blue/3} } // end of texture } // end of plane //--------------------------------------------------------------------------- //---------------------------- objects in scene ---------------------------- //--------------------------------------------------------------------------- #declare KegStart=difference{cylinder { <0,0,0>,<0,23.375,0>, 8.0625 } //one big cylinder!sized right! // then cut out all these bits..... cylinder { <0,20,0>,<0,23.4,0>, 7.9 } // top sliceout cylinder { <0,-.05,0>,<0,2.4,0>, 7.9 } // bot sliceout box { <-1.25, 21.00, -9.00>,< 1.25, 22.5, 9.00> } // handles box cylinder{<-1.25,21.75,-9>,<-1.25,21.75,9>,.75} //left cylinder hole cylinder{< 1.25,21.75,-9>,< 1.25,21.75,9>,.75} //right cylinder hole cylinder{< 9,2.25,9>,< -9,2.25,-9>,.25 } cylinder{< 9,2.25,9>,< -9,2.25,-9>,.25 rotate y*90 } //box { <-9.00, .00, 0.00>,< 9.00, 24.00, -9.00> } //1/2 box cut } //end differences! #declare KegSoFar=union{object{KegStart} torus { 7.8725,0.25 translate y*23.225} // tippy-top rollunder "rim"? torus { 8.0625,0.20 translate y*20 } // under handle ring (top o actual beer?) torus { 8.0625,0.30 scale y*2 translate y*15 } // upper fat ring torus { 8.0625,0.30 scale y*2 translate y*9 } // lower fat ring torus { 8.0625,0.20 translate y*2.5 } // bottom o beer ring cylinder{<0,19.9,0>,<0,21.1,0>,1} // tap hole stem cone { <0,21.1,0>,1,<0,21.3,0>,1.2} // and tap hole "flangin'" sphere { <0,0,0>, 0.5 translate y*20 scale <16.13,1,16.13>} //top roundy sphere { <0,0,0>, 0.5 translate y*2.4 scale <8,1,8>} //bottom roundy } //end union of Keg! #declare Drilling=union{superellipsoid{ <0.25,0.25> scale .1 translate <0,21.25,.95> } //notch 1, superellipsoid{ <0.25,0.25> scale .1 translate <0,21.25,-.95> } //the other notch cylinder{<0,19.9,0>,<0,21.52,0>,.96} } // stem hole big hole #declare TopWasher=difference{cylinder{<0,21.2,0>,<0,21.25,0>,1} cylinder{<0,21.19,0>,<0,21.26,0>,.9} } #declare MidWasher=difference{cylinder{<0,20.95,0>,<0,21.0,0>,1} cylinder{<0,20.94,0>,<0,21.01,0>,.75} } #declare BotWasher=difference{cylinder{<0,20.7,0>,<0,20.75,0>,.98} cylinder{<0,20.69,0>,<0,20.76,0>,.5} } #declare ValveSleeve=difference{cylinder{<0,19.9,0>,<0,21.2,0>,.99} cylinder{<0,19.89,0>,<0,21.21,0>,.95} } #declare Keg=difference{object{KegSoFar} object{Drilling} }// end differences! #declare TapBall=sphere { <0,20.49,0>, .25} //shiny shiny Tap Ball! #declare ToughRubber=object{ Supertorus(.515, 0.29, // R_Major, R_Minor, 1.00, 0.35, // Maj_Control, Min_Control, 0.001,1.50) // Accuracy, Max_Gradient) scale<1,.5,1> translate<0,20.6,0> } // ooh that's my first supertorus! #declare LatchingNub=superellipsoid{<.25,.25> scale <.065,.03,.12>} // y'know the tabs that the tap mates with... #declare ValveGuts=union{object{ValveSleeve} // the outer sleeve of the valve guts object{LatchingNub translate <.9,21.13,0>} // and some object{LatchingNub translate <-.9,21.13,0>} // locking nubs.. object{MidWasher} // the ring where the tap seals onto.. object{BotWasher} // the bottom that mushing on the ball's rubber } #declare TotalKeggage=union{ object{Keg texture{T_Chrome_2A} rotate y*10} object{TopWasher texture{T_Chrome_3C} translate <.02,0,.01> } //a little to the side... object{TapBall texture{T_Chrome_4C}} object{ToughRubber texture{pigment{Violet/3}}} object{ValveGuts texture{T_Chrome_2A}} } //object{TotalKeggage} #declare KegTrio=union{ object{TotalKeggage rotate y*-15 translate x*17.2} object{TotalKeggage rotate y*40 translate x*-17.1} object{TotalKeggage} } //end KegTrio #declare BKT=object{KegTrio rotate y*180} // Backward Keg Trio... #declare SixPack=union{object{KegTrio translate x*-26} object{BKT translate x* 26} } //6 pack! of kegs!! #declare Looper=-5; #while (Looper<6) #declare Xpos=Looper*52; #declare Looper2=-5; #while (Looper2<6) #declare Zpos=Looper2*24.9; object{SixPack translate } #declare Looper2=Looper2+1; #end //the Looper2 while... #declare Looper=Looper+1; #end //the Looper while, and we's out!