// Persistence of Vision Ray Tracer Scene Description File // File: toros024.pov // Vers: 3.6.1 // Desc: 3 RGB linked rings // Date: May 2005 // Auth: B Gimeno // e-mail: aplenosol@ya.com // Note: the fire texture was posted by loki on povray.binaries.images (May-6-2005) #include "colors.inc" #include "textures.inc" global_settings { assumed_gamma 1.0 } camera { location <15,60,-80> look_at <0,0,0> direction z*1} //----------------------the macros--------------------------------// //--------------------- Fire -------------------------------// #macro toro_rings_025_Red(major_r,minor_r,num_segm,rand_seed) #local rnd1=seed(rand_seed); #local T=1; union { #local num_segm_r = num_segm; #while (num_segm_r>0) sphere {<0,0,0>,5 texture { pigment { rgbt 1 } } interior { media { emission exp(-T/2) density { spherical poly_wave 5 color_map { [0 rgbt <0,0,0,1>] [0.1 rgb <0.2,0,0>] [0.27 rgb <1,0.65,0.5>] [1 rgb <2,2,0.5>] } scale 2 warp { turbulence T } scale 2 warp { turbulence T } scale 2 warp { turbulence T } scale 2 warp { turbulence T } } scale 0.3*exp(pow(T,0.5))/(1+T) } } hollow rotate 360*rand(rnd1) translate z*major_r rotate y*num_segm_r*(360/num_segm) } #local num_segm_r = num_segm_r-1; #end rotate z*45 translate z*(major_r-minor_r-(minor_r*.2)) rotate x*-45 } #end //--------------------- Grass -------------------------------// #macro toro_rings_025_Green(major_r,minor_r,num_segm,random_seed) #local text_grass = texture { pigment { agate pigment_map { [0.0 Green*.75] [0.25 Green*.5] [.4 Green*.6] [0.85 Green*.25] } } scale minor_r*4 } #local num_segm_r = num_segm ; #while (num_segm_r>0) #local R1 = seed (num_segm_r*random_seed); union { sphere { 0,minor_r texture {text_grass} } #local num_blades = 3000 ; #while (num_blades>0) smooth_triangle { ,rand(R1)*2 ,rand(R1)*2 ,rand(R1)*2 rotate <1440*rand(R1),1440*rand(R1),0*rand(R1)> texture {text_grass scale .2} } #local num_blades=num_blades-1; #end translate z*major_r rotate y*num_segm_r*(360/num_segm) rotate z*45 translate z*(major_r-minor_r-(minor_r*.2)) rotate y*120 rotate x*-45 } #local num_segm_r = num_segm_r-1; #end #end //--------------------- Water -------------------------------// #macro toro_rings_025_Blue(major_r,minor_r,num_blobs,random_seed) blob { threshold 1 #local num_blobs_r = num_blobs; #while (num_blobs_r>0) #local R1 = seed (num_blobs_r*random_seed); sphere { <0,0,0>,(minor_r*.2)+minor_r*rand(R1),minor_r*rand(R1)*.5 translate z*minor_r*.5 rotate x*(360*rand(R1)) translate z*major_r rotate y*(360*rand(R1)) rotate z*45 translate z*(major_r-minor_r-(minor_r*.2)) rotate y*240 rotate x*-45 } #local num_blobs_r = num_blobs_r-1; #end texture { pigment {rgbf <.6,.6,1,.65>} finish { phong .1 reflection .6 } } interior {ior 1.33333} } #end //---------------------the objects-------------------------------// toro_rings_025_Red (25,4,40,54224) // the fire texture requires no light_source on the scene... light_group { light_source {<0,100,0> colour White} // ... so I've added some light_groups for the rest of the scene toro_rings_025_Green (25,4,30,16897) global_lights off } light_group { light_source {<0,100,0> colour White} toro_rings_025_Blue (25,4,250,1689) global_lights off }