// Persistence of Vision Ray Tracer Scene Description File // File:new_bong.pov // Vers: 3.1 // Desc:a bong // Date:06/01/00 // Auth:ArfGrafix // Note: changed a lot global_settings { max_trace_level 10 } // ==== Standard POV-Ray Includes ==== #include "colors.inc" // Standard Color definitions #include "textures.inc" // Standard Texture definitions #include "metals.inc" // Standard Metal definitions #include "glass.inc" background { color rgb<1,1,1> } // create a regular point light source light_source { <0, 45, -90> color rgb 1.5 spotlight radius 30 falloff 60 tightness 1 point_at <0, 0, 0> media_interaction off } /* media { intervals 40 scattering {1, rgb 0.02} samples 1, 10 confidence 0.9999 variance 1/1000 ratio 0.9 } */ camera { location <0, 10,-60> look_at <1, 15, 0> rotate 0} background {rgb <1,1,1>} // plane{ y, -8 pigment{ checker Black, White scale 20}} #declare bong_stem = lathe { linear_spline 7, <2,0>,<2,7>,<3,9>,<3.5,9>,<2.5,7>,<2.5,0>,<2,0> pigment {Red} sturm} object { bong_stem scale <1,3.5,1> scale 0.5 texture{T_Chrome_1A}rotate <0,0,-30> translate <6,-1.5,0>} // solid pieces for use in CSG clipping #declare globe_1_nonhollow = // bottom sphere {0,2 scale 1.5*.9} #declare globe_2_nonhollow = // middle object { globe_1_nonhollow scale <1,1.5,1> } #declare globe_3_nonhollow = // top object { globe_2_nonhollow scale <1,1.5,1>*0.65 } #declare globe_4_nonhollow = // mouth hole cutaway object { globe_2_nonhollow scale <2,1,3>*0.5 } #declare globe_13_nonhollow = // lower and upper cutaway part for middle part union { object {globe_1_nonhollow} object {globe_3_nonhollow translate 8*y} } #declare globe_24_nonhollow = union { object {globe_2_nonhollow} object {globe_4_nonhollow translate 9.3*y} } // hollowed pieces for use in final CSG #declare globe_1_hollow = // bottom difference {//makes hollow sphere sphere {0,2} sphere {0,2 scale .9 /*inverse*/} scale 1.5} #declare globe_2_hollow = // middle object { globe_1_hollow scale <1,1.5,1> } #declare globe_3_hollow = // top object { globe_2_hollow scale <1,1.5,1>*0.65 } #declare merge_globes = // complete union { object{ globe_1_hollow clipped_by {object{globe_2_nonhollow translate 4.25*y inverse}} } object{ globe_2_hollow translate 4.25*y clipped_by {object{globe_13_nonhollow inverse}} } object{ globe_3_hollow translate 8*y clipped_by {object{globe_24_nonhollow translate 4.25*y inverse}} } // pigment { color rgbt <1,0,0,.5> } } // no cross section // object { merge_globes pigment { color rgbf <1,0,0,.5> } scale 3.5 } // cross sectioned #declare slicing_plane = plane { -z,0 pigment { color rgbt <0,1,0,.1> } } #declare cross_section = intersection { object { merge_globes scale 3.5 } object { slicing_plane } pigment { color rgbt <1,0,0,.5> } } object{ cross_section }