4.1.19 Script desk

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 by Tom Price, modified by Dan Farmer
//
// !! NOTE !!
// Designed to be run as a 3-frame animation, which will generate the
// self-including image_maps in the picture frame. See DESK.INI.
// Specifies .PNG format for the image_maps, so you may need to do
// some editing if your standard output format is different than that.

global_settings {
	assumed_gamma 2.2
	max_trace_level 5
}

#include "shapes.inc"
#include "colors.inc"
#include "textures.inc"
#include "woods.inc"
#include "glass.inc"
#include "metals.inc"

#declare This_Brass = texture {T_Brass_4B}

#declare RedPencil = union {
	cylinder {0, y*30, 0.5
		finish {
			crand 0.05
			ambient 0.3
			diffuse 0.7
		}
		pigment {Red}
	}
	cylinder {0, y*32, 0.5
		finish {
			crand 0.05
			ambient 0.3
			diffuse 0.7
		}
		pigment {Tan}
	}
}

#declare GreenPencil =
union {
	cylinder {0, y*30, 0.5
		finish {
			crand 0.05
			ambient 0.3
			diffuse 0.7
		}
		pigment {Green}
	}
	cylinder {0, y*32, 0.5
		finish {
			crand 0.05
			ambient 0.3
			diffuse 0.7
		}
		pigment {Tan}
	}
}

#declare BluePencil =
union {
	cylinder {0, y*30, 0.5
		finish {
			crand 0.05
			ambient 0.3
			diffuse 0.7
		}
		pigment {Blue}
	}
	cylinder {0, y*32, 0.5
		finish {
			crand 0.05
			ambient 0.3
			diffuse 0.7
		}
		pigment {Tan}
	}
}

#declare Back_Wall =
plane {z, 200.0
	hollow on
	finish {
			crand 0.05
			ambient 0.3
			diffuse 0.7
		}
	pigment {LightGray}
}

#declare Ceiling =
plane {y, 500.0
	hollow on
	finish {
			ambient 0.3
			diffuse 0.7
		}
	pigment {White}
}

#declare Desk_Top =
box {<-125,-2,-100> <125, 2, 100>
	translate -20.0*y	// top surface at -18*y
	texture {
		// T_Wood30
		pigment {P_WoodGrain6A color_map {M_Wood6A}}
		#if (clock=4)
			finish {reflection 0.2}
		#end
		rotate y*90
		translate z*30
		rotate z*5
		scale 5
	}
}

#declare Blotter =
union {
	triangle {
		<0.0, 0.0, 0.0>
		<8.5, 0.0, 0.0>
		<0.0, 0.0,-11.0>
	}
	triangle {
		<0.0, 0.0,-11.0>
		<8.5, 0.0,-11.0>
		<8.5, 0.0, 0.0>
	}
	scale <4.0, 1.0, 4.0>
	rotate -30.0*y
	translate <-20.0,-17.9999,-40.0>
	finish {
		crand 0.04
		ambient 0.15
		diffuse 0.5
	}
	pigment {color red 0.5 green 0.5 blue 0.3}
}

#declare Paperweight =
intersection {
	sphere {<0.0,-5.0, 0.0>, 10.0}
	disc {0,-y, 10.1}
	translate <0.0,-17.9998,-35.0>
	texture {T_Green_Glass}
}

/*The Picture itself*/
#declare Picture =
union {
	box {-1, 1
		translate <1.0, 1.0, 1.0>
		scale <20.0, 15.0, 1.0>
		finish {
			ambient 0.05
			diffuse 0.9
		}
		pigment {
			#switch (clock)
			#case (4)
				image_map {png "desk3.png" once interpolate 2.0}
				scale <40.0, 30.0, 1.0>
				scale <1.5, 1.5, 1.0>
				#break
			#case (3)
				image_map {png "desk2.png" once interpolate 2.0}
				scale <40.0, 30.0, 1.0>
				scale <1.5, 1.5, 1.0>
				#break
			#case (2)
				image_map {png "desk1.png" once interpolate 2.0}
				scale <40.0, 30.0, 1.0>
				scale <1.5, 1.5, 1.0>
				#break
			#else
				Gray50
			#end
		}
	}
	/* The picture frame */
	union {
		cylinder {-y, 31*y, 1 translate 41*x}
		cylinder {-y, 31*y, 1 translate -1*x}
		cylinder {-x, 41*x, 1 translate 31*y}
		cylinder {-x, 41*x, 1 translate -1*y}
		sphere {<-1.0,-1.0, 0.0>, 1.0}
		sphere {<-1.0, 31.0, 0.0>, 1.0}
		sphere {<41.0,-1.0, 0.0>, 1.0}
		sphere {<41.0, 31.0, 0.0>, 1.0}
		texture {This_Brass}
	}
	scale 1.5
	rotate <10.0,-35.0, 0.0>
	translate <-65.0,-15.0,-25.0>
}

#declare Pencil_Holder =
union {
	intersection {
		object {Cylinder_Y scale <5.0, 1.0, 5.0>}
		object {Cylinder_Y scale <4.8, 1.0, 4.8> inverse}
		plane {y, 0.0 inverse}
		plane {y, 15.0 rotate -45*x}
		texture {This_Brass}
	}
	object {
		RedPencil
		rotate -2*z
		translate <1.0, 0.0, 1.0>
	}
	object {
		GreenPencil
		rotate 2.0*z
		translate <-1.0, 3.0, 0.0>
	}
	object {
		BluePencil
		rotate <-2.0, 0.0, 3.0>
		translate <0.0,-2.0,-1.0>
	}
	rotate 45*y
	translate <70.0,-18.0,-20.0>
}

#declare Lamp =
union {
	object {
		cylinder {-y*18, y*40, 3}
		texture {This_Brass}
	}
	cylinder {-y*2, y*2, 25
//		intersection {
//			object {Cylinder_Y scale <25.0, 1.0, 25.0>}
//			plane {y, 2.0}
//			plane {y,-2.0 inverse}
		translate <0.0,-16.0,-5.0>
		texture {This_Brass
			normal {bumps 0.1}
		}
	}
	intersection {
		object {Cylinder_X scale <1.0, 10.0, 10.0>}
		object {Cylinder_X scale <1.0, 9.95, 9.95> inverse}
		plane {y, 0.0 inverse}
		plane {x,-30.0 inverse}
		plane {x, 30.0}
		translate <0.0, 35.0,-13.0>
		finish {
			Shiny
			crand 0.05
			ambient 0.5
			diffuse 0.5
			reflection 0.3
			brilliance 4.0
		}
		pigment {DarkGreen}
	}
	union {
		intersection {
			sphere {<-30.0, 35.0,-13.0>, 10.0}
			sphere {<-30.0, 35.0,-13.0>, 9.95 inverse}
			plane {y, 35.0 inverse}
			plane {x,-30.0}
		}
		intersection {
			plane {y, 35.0 inverse}
			plane {x, 30.0 inverse}
			sphere {<30.0, 35.0,-13.0>, 10.0}
			sphere {<30.0, 35.0,-13.0>, 9.95 inverse}
		}
		texture {This_Brass}
	}
	rotate 35*y
	translate <50.0, 0.0, 30.0>
}

/*The fluorescent tube inside the lamp*/
#declare Lamp_Light_Source =
light_source {<0, 0, 0> color White
	looks_like {
		cylinder {-x*25, x*25, 2
			pigment {White filter 0}
			finish {ambient 1 diffuse 0}
		}
	}
	translate <0.0, 43.0,-10.0>
	rotate 35*y
	translate <50.0, 0.0, 30.0>
}

camera {
	location <0.0, 40.0,-150.0>
	up <0.0, 1.0, 0.0>
	right <4/3, 0.0, 0.0>
	look_at <0.0, 0.0, 0.0>
}

light_source {<20.0, 100.0,-200.0> color White}

object {Back_Wall}
object {Ceiling}
object {Desk_Top}
object {Blotter}
object {Paperweight}
object {Lamp}
object {Lamp_Light_Source}
object {Picture}
object {Pencil_Holder}

Et voici ce que nous obtenons :

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

Quand aux acteurs, dans l'ordre d'apparition, nous avons RedPencil, GreenPencil, BluePencil, Desk_Top, Blotter, Paperweight, Picture, Pencil_Holder, Lamp, Lamp_Light_Source.

Retour Retour