// Wall Creature // 2002 Sam Benge // // This scene file demonstrates the following: // *splines // *Reorient_Trans Macro by John VanSickle // *isosurface displacement using pov pigments // *simulated global illumination using area_lights global_settings{ assumed_gamma 1.25 ambient_light 0 } #include "transforms.inc" // sunlight light_source{y*100000,<1 .93 .77>*1.95 rotate<70,100,0> area_light<2000,0,0>,<0,0,2000>,2,2 jitter adaptive 1 orient} // sunlight reflecting from ground light_source{<0,-20,-30>,<1 .83 .657>*.45 fade_power 2 fade_distance 19 area_light<20,0,0>,<0,0,10>,2,2 jitter adaptive 1 } // sky light light_source{y*100000,<.4 .3 .6> rotate x*-20 area_light<80000,0,0>,<0,0,80000>,2,2 jitter adaptive 1 orient} camera{ ultra_wide_angle right x*1 up y*1 location<0,0,-40> look_at<0,0,0> angle 45 } // creature's tentacle #declare tentacle_path= spline{ natural_spline -.25,<0,-.5,1.5> 0,<0,.5,1> .25, <0,.25,-1> .5, <0,-1,-1.5> .75, <0,-2,-1> 1, <0,-3.5,-1.5> } #declare V=-.25; #declare strand= union{ #while(V<=1) sphere{0,.75-V*.5 pigment{planar scale .5 rotate x*90 color_map{[.25 rgb<1 .5 .1>*.2][.75 rgb<1 .5 .1>]} } finish{brilliance 2 phong 1 phong_size 100} scale<.2,1,.2> Reorient_Trans(y,tentacle_path(V+.2)) translate tentacle_path(V) } #local V=V+.05; #end } // creature union{ object{strand scale 1.5 rotate y*20 translate x*-1} object{strand scale 1.25 rotate y*15 translate<-.5,-.25,0>} object{strand scale 2 rotate y*10 translate y*-.5} object{strand scale 1.25 rotate y*-10 translate<1,-.25,0>} } // rock wall #declare Pgm=function{pigment{granite scale 40 color_map{[0 rgb .1][.4 rgb 0][1 rgb 1]}}} isosurface{ function{ -z+Pgm(x,y,z).grey*8 } accuracy .05 max_gradient 1 contained_by{box{<-20,-20,0>,<20,20,20>}} pigment{rgb<1 .95 .7>} }