4.1.38 Script swirlbox

Utilisation : Les liens ne sont pas apparents. Pour obtenir des informations sur un mot clé, cliquez-le dans le script !

// Persistence Of Vision raytracer version 3.5 sample file.
// File: SwirlBox.POV
// Vers: 3
// Desc: Stacked square rings in a snail shell shape,
// shows off the use of the while loop for creating objects,
// and for smoothly changing colors.
// Date: 10/1/95
// Auth: Eduard Schwan

global_settings {assumed_gamma 1.0}

// -------------------------------------
// Look down at an angle at our creation
camera {
	location <4, 9,-20>
	direction 1*z
	look_at <0,-1, 8>
}

// --------------------
// A white marble floor
plane {
	y,-0.1
	texture {
		pigment {
			marble
			turbulence 0.5 omega 0.7 rotate -40*y scale 6
			color_map {
				[0.50 color rgb 1.0]
				[0.57 color rgb 0.8]
				[0.60 color rgb <0.9, 0.8, 0.7>]
				[0.63 color rgb 1.0]
			}
		}
		finish {ambient 0.2 reflection 0.3}
	}
}

// ------------------------------------
// Simple background for a simple scene
background {color rgb <0.0, 0.1, 0.2>}

// --------------
// A light source
light_source {<50, 20,-50> color rgb 1}

// ---------------------------------
// create a simple square ring shape
#declare BasicShape = intersection {
	// flat pizza box
	box {-1, 1 scale <1.0, 0.1, 1.0>}
	// remove square hole in middle
	box {-1, 1 scale <0.95, 1.1, 0.95> inverse}
}

// --------------------------
// Set up the loop variables:
// the Counter variable will go from 0.0 to 1.0
// in NumIterations loops.
#declare NumIterations = 80;	// try different numbers of boxes (20,40,80...)
// don't change these
#declare Counter = 0.0;
#declare Increment = 1.0/NumIterations;
#declare NumTwists = 360*2;	// two full twists

// ----------------------------------------------------
// Create an iterated object built from our basic shape
union {
	#declare Flipper = 0;	// Flipper will switch between 0 and 1 each loop
	#while (Counter<=1.0)
		object {
			BasicShape
			// boxes get smaller as we stack them up
			scale <(1-Counter)*5, 1, (1-Counter)*5>
			// boxes get closer to center and stack upward as we go
			translate <(1-Counter)*5, Counter*10, 0.0>
			// rotate each box a little more as they stack
			rotate NumTwists*Counter*y
			// put down the texture
			texture {
				pigment {
					// colors change as we stack them up
					color rgb <1-Counter, Flipper, Counter>
				}
				finish {ambient 0.2 specular 0.7 roughness 0.05}
			}
		}
		#declare Flipper = 1 - Flipper;	// flip its value (0->1 or 1->0)
		// manually increment our counter inside the loop
		#declare Counter = Counter+Increment;
	#end
}

Et voici ce que nous obtenons :

Cliquez pour télécharger l'image bmp en 1024*768

Retour Retour