// Persistence of Vision Ray Tracer Scene Description File // File: Ceiling Fan spinning.pov // Vers: 3.0, 3.5 // Desc: Ceiling Fan spinning, 8 units wide (didn't make it inches or centimeters) // Date: 97.45, 01.973 // Auth: Bob Hughes // Mail: omniverse@charter.net // Note: freely distribute for personal use #version 3.5; // updated to use v3.5, maybe v3.1, no longer 3.0 // Clock animation variable declaration, use as part of vector equations #declare _C_ = clock; //.175; global_settings { max_trace_level 4 noise_generator 1 // comment out if not using v3.5 ambient_light rgb <1.03,1.03,1.03> /* irid_wavelength <0.3, 0.2, 0.25> number_of_waves 7 radiosity { brightness 3.3 count 167 distance_maximum 10 // 1/3 camera to object distance error_bound 0.38 gray_threshold 0.41 low_error_factor 0.69 minimum_reuse 0.018 nearest_count 7 recursion_limit 1 } max_intersections 48 adc_bailout 0.008 hf_gray_16 off */ } // Textures // Stucco #declare StuccoCeil_E = texture { pigment { color rgb <1,.95,.9> } finish { ambient 0.4 diffuse 0.25 specular 0.1 roughness 0.1 } normal { wrinkles 1 scale 2 } } #declare Iridesce2_N = texture { pigment { bozo turbulence 1.4 color_map { [ 0.0, 0.25 color rgbf<1,1,1,1> color rgbf<0.5,0.7,1,0.9> ] [ 0.25, 0.5 color rgbf<0.5,0.7,1,0.9> color rgbf<0.6,0.9,0.8,0.9> ] [ 0.5, 0.75 color rgbf<0.6,0.9,0.8,0.9> color rgbf<1,0.8,0.4,0.9> ] [ 0.75, 1.0 color rgbf<1,0.8,0.4,0.9> color rgbf<1,1,1,1> ] } scale 0.9 } normal { wrinkles 0.01 scale 3 } finish { ambient 0.26 diffuse .64 reflection 0.08 specular 0.1 roughness 0.09 irid { 0.5 thickness .6 turbulence .3 } } scale 1.1 } // Opal #declare Opal_N = texture { pigment { bozo frequency 4 turbulence .7 color_map { [ 0.0, 0.25 color red 0.98 green 0.92 blue 0.87 color red 0.83 green 0.86 blue 0.97 ] [ 0.25, 0.5 color red 0.83 green 0.86 blue 0.97 color red 0.87 green 0.93 blue 0.82 ] [ 0.5, 0.75 color red 0.87 green 0.93 blue 0.82 color red 0.99 green 0.90 blue 0.81 ] [ 0.75, 1.0 color red 0.99 green 0.90 blue 0.81 color red 0.98 green 0.92 blue 0.87 ] } } normal { wrinkles 0.03 scale 2 } finish { ambient 0.06 diffuse 0.39 reflection 0.08 specular 0.36 roughness 0.014 irid { 0.7 thickness 1.8 turbulence <1.6,1.5,1.4> } } scale .3 } texture { Iridesce2_N scale 0.4 } // Walnut Wood #declare Walnut_W = texture { pigment { wood turbulence 0.025 scale <0.5, 0.7, 0.8> color_map {[0.00, 0.12 color red 0.25 green 0.20 blue 0.20 color red 0.35 green 0.25 blue 0.15] [0.12, 0.13 color red 0.20 green 0.15 blue 0.05 color red 0.30 green 0.20 blue 0.15] [0.13, 0.70 color red 0.35 green 0.25 blue 0.15 color red 0.50 green 0.35 blue 0.25] [0.70, 0.92 color red 0.40 green 0.25 blue 0.15 color red 0.35 green 0.30 blue 0.25] [0.92, 1.01 color red 0.25 green 0.10 blue 0.10 color red 0.20 green 0.15 blue 0.15] } } finish { specular 0.3 roughness 0.03 ambient 0.23 diffuse 0.74 } normal { wrinkles 0.11 scale 1.23 } } #declare Glass_G = material { texture { pigment { color rgb 1 filter 0.95} finish {specular 0.98 roughness 0.0015 ambient 0.1 diffuse 0.3 reflection 0.4 } } interior { ior 1.5 } } #declare Brass_M = texture { pigment { color rgb <1.0, 0.86, 0.54> } finish { specular 0.91 roughness 0.027 ambient 0.2 diffuse 0.6 reflection 0.2 metallic brilliance 4 } } #declare Iron_M = texture { pigment { color rgb <0.51, 0.48, 0.50> } finish { specular 0.65 roughness 0.05 ambient 0.15 diffuse 0.25 reflection 0.08 metallic brilliance 7 } normal {wrinkles 0.05 scale 0.05} } sky_sphere // rain clouds { pigment { gradient y color_map { [0 color rgb<.7,.8,.9>] [1 color rgb<.6,.7,.9>] } } pigment { bozo turbulence .8 color_map { [0.0,0.3 color rgbt<.425,.4,.45,0> color rgbt<.45,.42,.475,0>] [0.3,0.6 color rgbt<.45,.42,.475,0> color rgbt<1,1,1,1>] [0.6,0.9 color rgbt<1,1,1,1> color rgbt<.35,.325,.375,0>] [0.9,1 color rgbt<.35,.325,.375,0> color rgbt<.375,.325,.4,0>] } scale <2,.66,1>*.1 } pigment { granite color_map { [0.0,0.3 color rgbt<.6,.65,.675,0> color rgbt<.65,.625,.675,.7>] [0.3,0.6 color rgbt<.65,.625,.675,.7> color rgbt<1,1,1,1>] [0.6,0.9 color rgbt<1,1,1,1> color rgbt<.55,.525,.6,.8>] [0.9,1 color rgbt<.55,.525,.6,.8> color rgbt<.5,.525,.55,0>] } scale <2,2.5,.75>*.1 } } // realistic bright rainbow rainbow { direction <0,-.55,1> angle 30 width 3 distance 99999 color_map { [ 0.0,0.19 color rgbt<2,0,2,1> color rgbt<0,0,3,.975> ] [ 0.19,0.33 color rgbt<0,0,3,.975> color rgbt<0,2,2,.925> ] [ 0.33,0.475 color rgbt<0,2,2,.925> color rgbt<0,3,0,.95>] [ 0.475,0.6 color rgbt<0,3,0,.95> color rgbt<2,2,0,.925>] [ 0.6,0.75 color rgbt<2,2,0,.925> color rgbt<2.5,1.5,0,.9125>] [ 0.75,1.0 color rgbt<2.5,1.5,0,.9125> color rgbt<3,0,0,1>] } jitter 0.03 up <.23,1,0> // 1*y is normal up (any x value will tilt) arc_angle 90 falloff_angle 50 } // white pointlight and camera with variable positions #declare LCX = 0; #declare LCY = 0; #declare LCZ = -30; // rotation vectors (adjust for varying placements) #declare RLX = 2; #declare RCX = -12; #declare RLY = 6; #declare RCY = -5; #declare RLZ = 0; #declare RCZ = 0; light_source { color rgb <1.05,.89,.71> rotate RLX*x rotate RLY*y rotate RLZ*z } camera { location rotate RCX*x rotate RCY*y rotate RCZ*z direction 2.15*z look_at <0, -1, 0> } // windowed room difference { box {<-43,-18,-53>,<43,5,53>} box {<-40,-15,-50>,<40,2.75,50>} union { box{<-30,-10,49>,<-20,-1,55>} box{<-15,-10,49>,<-5,-1,55>} box{<0,-10,49>,<10,-1,55>} box{<15,-10,49>,<25,-1,55>} } texture {StuccoCeil_E scale .13} } #declare CR = difference {sphere {0,1} plane {x,0} scale <1,.08,.4> texture {Brass_M}} #declare FB = union { superellipsoid { <.5, .5> scale <3,.05,.6> rotate 25*x texture { Walnut_W finish {ambient .3 diffuse .9} rotate <5,80,5>}} union { object {CR scale <.5,1,1> rotate 180*y} object {CR} rotate 25*x translate -3.1*x} } #declare FBH = difference {torus {1,.15} box {0,1.5 inverse translate -.5*y} scale <.5,.5,.5> rotate <90,180,0>} #declare FBHandle = union { sphere {0,1 scale <.125,.125,.125> translate 1*x} object {FBH translate <1,.5,0>} object {FBH rotate <0,180,90> translate <0,.5,0>} texture {Brass_M}} #declare FBlade = union { object {FB} object {FBHandle scale <1,.5,1> translate -4.6*x} } #declare Blades = union { object {FBlade translate 5.4*x rotate 72*y} object {FBlade translate 5.4*x rotate 144*y} object {FBlade translate 5.4*x rotate 216*y} object {FBlade translate 5.4*x rotate 288*y} object {FBlade translate 5.4*x rotate 360*y} rotate 144*_C_*y} #declare Base = union { cylinder {.8*y,2.5*y,.15 texture {Brass_M}} sphere {<0,.775,0>,.23 texture {Iron_M}} sphere {<0,2.275,0>,.23 texture {Iron_M}} torus {1.25,.75 clipped_by {cylinder {0*y,.8*y,1.25}} texture {Brass_M} scale <1,.535,1> translate 2.249*y} cylinder {2.65*y,2.75*y,1.25 texture {Brass_M}} cylinder {2.22*y,2.25*y,.5 texture {Brass_M}} } #declare Cutout = union { sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 20*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 40*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 60*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 80*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 100*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 120*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 140*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 160*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 180*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 200*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 220*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 240*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 260*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 280*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 300*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 320*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 340*y } sphere { <1.8,-.25,0>, 1 scale <.4,.5,.05> rotate 360*y } // pigment {rgb 0} } #declare Housing = union { superellipsoid { <.6, 1> scale <.8,.25,.8> translate .6*y texture { Brass_M }} difference { superellipsoid { <.75, 1> scale <1.2,.5,1.2> // translate 0*y } superellipsoid { <.75, 1> scale <1.2,.5,1.2>*.96 // translate 0*y } object {Cutout} texture { Brass_M } } superellipsoid { <.4, 1> scale <.85,.5,.85> translate -.9*y material { Glass_G }} #declare Bulb= sphere {0,.4 pigment {rgbf<1,.75,.5,.25>} finish {ambient .9} scale <.7,.7,.7> } light_source { 0, color rgb <.9,.85,.7> looks_like {Bulb} // area_light x,z,3,3 jitter translate <0, -.9, 0>} } #declare Pullchain = union { cylinder {-1*y,1*y,.025 texture {pigment {gradient y frequency 20 color_map { [.35,.95 color rgbt<1.2,1.15,.5,0> color rgbt<0,0,0,1>]}} normal {gradient y frequency 20} finish {diffuse .7 specular .4 roughness .03 metallic .5}} } sphere {<0,0,0>,1 texture {Opal_N} scale <.11,.1,.11> translate -1*y} scale <1,2.25,1> translate <.75,-2,-.75> } #declare CF = union { object {Base} object {Housing} object {Pullchain} object {Blades} } CF // ceiling fan