#version 3.5; // beta 4 // media torch, animatable version // (C) 2001 Lutz-Peter Hooge // command-line options: //+W240 +H320 +KFI1 +KFF20 +KI0.0 +KF1.0 +KC #include "functions.inc" global_settings { max_trace_level 20 } camera { location<0,0,-3> right x*480 up y*640 look_at <0,.5,0> angle 40 } sky_sphere { pigment { wrinkles scale .1 } } light_source { <1,1,-1>*100 color rgb .3 } #declare max_clock=1; #declare wrap=2/4*max_clock; #declare f_grnt= function { f_granite(x,37+abs(mod(y+768,wrap)-wrap/2),z) } #declare flame= union { sphere { 0,1 hollow pigment{ color rgbt 1} scale <.4,1,.4> scale 1.2 interior { media { emission .75*1.9*1.6*3 absorption <.4,.6,1>*10 density { spherical color_map { [0.0 color rgb 0] [0.2 color rgb .01] [0.4 color rgb .1] [0.7 color rgb .8] [0.9 color rgb .7] [1.0 color rgb 0] } scale <.4,1,.4> scale 1.2 //warp{turbulence .2+.05*sin(clock*2*pi) lambda 5} } density { function{f_grnt(x,y,z)} scale <.4,1,.4> scale 4 translate y*clock*2 color_map { [0.0 color rgb 0] [0.09 color rgb <1,0,0>] [0.1 color rgb <7,0,0>] [0.2 color rgb 5] [0.24 color rgb 0] [1.0 color rgb 0] } } density { gradient y color_map { [0.0 color rgb <0,0,2>] [0.35 color rgb <1,.8,.2>*.8] [1.0 color rgb <1,.8,.2>*.3] } scale 2 translate -y } } } } merge { cylinder { <0,0,0>,<0,4,0>,.4 } sphere { 0,.4 scale <1,2,1> } hollow pigment{ color rgbt 1} // translate y/2 interior { media { absorption .5 density { gradient y color_map { [0.0 color rgb 0] [0.2 color rgb 0] [0.25 color rgb .8] [0.3 color rgb 1] [1.0 color rgb 0] } scale 4*2 translate y*-2 } density { spherical color_map { [0.0 color rgb 0] [0.1 color rgb .01] [0.3 color rgb .4] [0.6 color rgb .8] [0.8 color rgb .3] [1.0 color rgb 0] } scale <.4,5,.4> warp{turbulence .2+.1*sin(clock*2*pi) lambda 5} } density { function{f_grnt(x,y,z)} scale <.4,1,.4> scale 4 translate y*1 translate y*clock*2 color_map { [0.0 color rgb 0] [0.09 color rgb .33] [0.1 color rgb 7/3] [0.2 color rgb 5] [0.24 color rgb 0] [1.0 color rgb 0] } } } } } } #declare woodtex= texture { pigment { wrinkles color_map { [0.0 color rgb <.8,.9,0>*.4] [0.4 color rgb <.8,.9,0>*.3] [0.5 color rgb <1,.7,0>*.4] [1.0 color rgb <1,.7,0>*.3] } scale <.1,.3,.1>*.1 } normal { average normal_map { [1.0 wrinkles 1.5 scale <.1,.3,.1>*.1] [1.0 wrinkles -4 scale <1,2,1> scale .01] } } } #declare tuchp1= pigment { gradient y color_map { [0.0 color rgb 1] [0.05 color rgb 1 transmit 1] [0.1 color rgb 1] [1.0 color rgb 1] } scale .15 warp{turbulence .2 octaves 3 lambda 2} } #declare tuchtex = texture { pigment { gradient y pigment_map { [0.0 color rgbt 1] [0.784 color rgbt 1] [0.786 tuchp1 scale 1/2.5] [1.0 tuchp1 scale 1/2.5] } scale 2.5 translate y*.25 } finish { brilliance .6 } normal { granite .1 scale <10,1,10> scale .02 warp{turbulence .2 octaves 3} } } #declare tttex= texture{woodtex} texture{tuchtex} #declare blackt1= texture { pigment { bozo color_map { [0.0 color rgb 0] [0.6 color rgb 0] [0.8 color rgb 0 transmit .4] [1.0 color rgb 0 transmit .6] } scale .05 warp{turbulence .2 octaves 3 lambda 2} } finish { specular .3 roughness .2 brilliance 1.3 } normal { bozo 2 scale <2,1,2> scale .03 } } #declare facktex= texture { gradient y texture_map { [0.0 tttex] [0.7 tttex] [0.75 blackt1 scale 1/2.5] [1.0 blackt1 scale 1/2.5] } scale 2.5 translate y*.25 } union { light_source { <0,.6,0> color rgb <1,.7,.3>*.8*(.75+1*f_grnt(0,.5*clock,0)) fade_power 3 fade_distance 3 looks_like{object{flame translate -y*.1}} } union { cylinder{<0,-2,0>,<0,0,0>,.075} sphere{0,.1} cylinder{<0,-.2,0>,<0,0,0>,.1} sphere{0,.1 scale <1,2,1> translate -y*.2} texture{facktex} } translate -y*.3 } #declare intertex= texture { pigment{color rgb 1} finish{brilliance 2} normal { average normal_map { [.5 wrinkles scale .02] [.5 wrinkles scale .1] } } } #declare stonetex= texture { pigment { wrinkles #local base_col=<.6,.4,.3>*1.5; #local var=<.1,.1,0>; #local bv=.3; #local num=100; #local S=seed(24); color_map { #local i=0; #while(i)*(1-rand(S)*bv)] #local i=i+1; #end } scale .2 } finish { brilliance 2 } normal { crackle normal_map { [0.0 crackle 3] [1.0 granite 1 scale .5] } } } #declare walltex= texture { crackle texture_map { [0.05 intertex] [0.05 intertex] [0.05 stonetex] [1.0 stonetex] } } plane { z,2 inverse texture{walltex} //pigment{color rgb <.7,.5,.4>} }