|
|
// Hi Lenx,
//
// here is a complete scene with the recursion you wanted; I hope
// you can understand how it works. Simply render this whole text with
//
// +W800 +H600 -F +D +A0.1
//
// in the command line. (5 seconds at 1 GHz)
//
// Sputnik
#macro RecursiveBox (Layers, MidX, BottomY, MidZ, SideLength)
// draw a box
box { <MidX-SideLength/2, BottomY , MidZ-SideLength/2>,
<MidX+SideLength/2, BottomY+SideLength, MidZ+SideLength/2> }
#if (Layers>1) // if there are more boxes to be stacked ...
// ... then calculate some auxiliary values and ...
#local NewBY = BottomY + SideLength;
#local NewSL = SideLength/3; // also try 4, 2.5, 2.2, 10
#local Offset = SideLength/2-NewSL/2; // also try "+" instead of "-"
// ... put four cube-stacks at the corners of the box
RecursiveBox (Layers-1, MidX-Offset, NewBY, MidZ-Offset, NewSL)
RecursiveBox (Layers-1, MidX-Offset, NewBY, MidZ+Offset, NewSL)
RecursiveBox (Layers-1, MidX+Offset, NewBY, MidZ-Offset, NewSL)
RecursiveBox (Layers-1, MidX+Offset, NewBY, MidZ+Offset, NewSL)
#end//if
#end//macro
// activate the RecursiveBox-macro
union { RecursiveBox (6, 0,-11,0, 9)
texture { pigment { color rgb <1, .7, .3> } }
}
//light and camera
light_source { <-10, 20, -7>, 1 }
camera { location <-3, 8, -10> look_at 0 }
Post a reply to this message
|
|