4.1.26 Script lamppost

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.
// Description: Old fashioned lamppost on a reflective floor
// File by Anton Raves

global_settings {assumed_gamma 1 max_trace_level 5}

#include "shapes.inc"
#include "colors.inc"

#declare Use_Arealights = true;
#if (Use_Arealights = false)
	#debug "Try Use_Arealights = true\n"
#end

camera {
	location <0, 95,-475>
	direction 1.4*z
	up y
	right 1.33*x
	look_at <0, 95, 0>
}

light_source {<190, 679,-250> color White
	#if (Use_Arealights)
		area_light <25, 0, 0>, <0, 0, 25>, 5, 5
		adaptive 1
		jitter
	#end
}

// To make things a little more interesting the light comes from ... a lightbulb
// This should use "looks_like"
light_source {<100, 179,-160> color Yellow * 1.5
	#if (Use_Arealights)
		area_light <4, 0, 0>, <0, 0, 4>, 4, 4
		adaptive 1
		jitter
	#end
}
sphere {<100, 179,-160>, 3
	texture {pigment {rgb <1, 1, 0.9>} finish {ambient 1 diffuse 1}}
	no_shadow
}

// This is the glass2-texture from the TEXTURES.INC-file that I tweaked a little
#declare Glass_tex =
texture {
	pigment {color red 1 green 1 blue 1 filter .4}
	finish {ambient .1 diffuse .1 reflection 0.5 phong 0.3 phong_size 60}
}

// This is the gold-texture Mike Miller used in his SLUG1-scene
#declare Gold_tex =
texture {
	pigment {color red .64 green .51 blue .05}
	finish {crand .02 ambient .3 diffuse .5 reflection .6 brilliance 8 specular .5}
}

#declare Lamp_tex =
texture {
	pigment {color Gray20}
	finish {ambient .1 phong 0.7}
}

#declare Vent_cutout = box {<-.5,-1.5,-1> <.5, 1.5, 1>}

#declare Collar_piece =
union {
	cylinder {.5*z,-.5*z, 1.5 translate <-4, 0, 0>}
	cylinder {.5*z,-.5*z, 1.5 translate <4, 0, 0>}
	box {<-4,-1.5,-.5> <4, 1.5, .5>}
}

#declare Collar =
union {
	object {Collar_piece}
	object {Collar_piece rotate -45*y}
	object {Collar_piece rotate -90*y}
	object {Collar_piece rotate -135*y}
	object {Collar_piece rotate -180*y}
	object {Collar_piece rotate -225*y}
	object {Collar_piece rotate -270*y}
	object {Collar_piece rotate -315*y}
}

#declare Little_feature =
union {
	sphere {<0, 0, 0>, 1}
	triangle {<0, 2, 0> <0, 0,-1> <1, 0, 0>}
	triangle {<0, 2, 0> <0, 0,-1> <-1, 0, 0>}
}

#declare Little =
union {
	object {Little_feature translate <3.5, 0, 0>}
	object {Little_feature translate <3.5, 0, 0> rotate -45*y}
	object {Little_feature translate <3.5, 0, 0> rotate -90*y}
	object {Little_feature translate <3.5, 0, 0> rotate -135*y}
	object {Little_feature translate <3.5, 0, 0> rotate -180*y}
	object {Little_feature translate <3.5, 0, 0> rotate -225*y}
	object {Little_feature translate <3.5, 0, 0> rotate -270*y}
	object {Little_feature translate <3.5, 0, 0> rotate -315*y}
}

#declare support_piece =
difference {
	union {
		cylinder {.5*z,-.5*z, 1.5}
		box {<-1.5,-1.5,-.5> <0, 0, .5>}
	}
	cylinder {z,-z, .5}
}

#declare support =
union {
	difference {
		cylinder {.5*z,-.5*z, 6}
		cylinder {z,-z, 5}
		plane {y, 0 inverse}
		plane {x, 0}
	}
	object {support_piece translate <6.5, 1.5, 0>}
}

#declare Lamppost_stem =
union {
	cylinder {y,-y, 7 translate <0, 1, 0>}
	cylinder {.5*y,-.5*y, 6 translate <0, 2.5, 0>}
	cylinder {y,-y, 6.75 translate <0, 4, 0>}
	cone {y, 5,-y, 6.75 translate <0, 6, 0>}
	cylinder {17*y,-17*y, 4.5 translate <0, 24, 0>}
	cylinder {y,-y, 5 translate <0, 41, 0>}
	cylinder {y,-y, 6.75 translate <0, 43, 0>}
	cylinder {y,-y, 5 translate <0, 45, 0>}
	cylinder {y,-y, 4 translate <0, 47.5, 0>}
	cylinder {2*y,-2*y, 3.5 translate <0, 51, 0>}
	cylinder {.5*y,-.5*y, 4.5 translate <0, 53.5, 0>}
	cylinder {53*y,-53*y, 3.5 translate <0, 107, 0>}
	object {Little translate <0, 69.5, 0>}
	object {Collar translate <0, 135.5, 0>}
	texture {Lamp_tex}
}

#declare Lamppost_head =
union {
	sphere {<0, 0, 0>, .5 texture {Gold_tex} translate <0, 29.5, 0>}
	cone {1.5*y, 0,-1.5*y, 1 texture {Gold_tex} translate <0, 27.5, 0>}
	cylinder {.5*y,-.5*y, 2 translate <0, 25.5, 0>}
	cylinder {.5*y,-.5*y, 1 translate <0, 24.5, 0>}
	cone {1.5*y, 1,-1.5*y, 4 translate <0, 22.5, 0>}
	cylinder {.5*y,-.5*y, 6 translate <0, 20.5, 0>}
	difference {
		cylinder {2.5*y,-2.5*y, 4 translate <0, 17.5, 0>}
		object {Vent_cutout translate <4, 17.5, 0>}
		object {Vent_cutout translate <4, 17.5, 0> rotate -45*y}
		object {Vent_cutout translate <4, 17.5, 0> rotate -90*y}
		object {Vent_cutout translate <4, 17.5, 0> rotate -135*y}
		object {Vent_cutout translate <4, 17.5, 0> rotate -180*y}
		object {Vent_cutout translate <4, 17.5, 0> rotate -225*y}
		object {Vent_cutout translate <4, 17.5, 0> rotate -270*y}
		object {Vent_cutout translate <4, 17.5, 0> rotate -315*y}
	}
	cylinder {.5*y,-.5*y, 5 texture {Gold_tex} translate <0, 14.5, 0>}
	cylinder {.5*y,-.5*y, 6 texture {Gold_tex} translate <0, 13.5, 0>}
	cone {3.5*y, 6,-3.5*y, 14 open translate <0, 9.5, 0>}
	difference {
		cylinder {y,-y, 16 translate <0, 5, 0>}
		cylinder {2*y,-2*y, 12 translate <0, 5, 0>}
	}
	cone {11.5*y, 14,-11.5*y, 10 interior {ior 1.5} texture {Glass_tex} translate <0,-7.5, 0>}
	object {
		difference {
			cylinder {y,-y, 10 translate <0,-20, 0>}
			cylinder {2*y,-2*y, 8 translate <0,-20, 0>}
		}
	}
	box {<-9,-21,-1> <9,-19, 1> no_shadow}
	box {<-1,-21,-9> <1,-19, 9> no_shadow}
	object {support translate <3.5,-24, 0> no_shadow}
	object {support translate <3.5,-24, 0> rotate 90*y no_shadow}
	object {support translate <3.5,-24, 0> rotate 180*y no_shadow}
	object {support translate <3.5,-24, 0> rotate 270*y no_shadow}
	cylinder {4.5*y,-4.5*y, 1.5 texture {Gold_tex} translate <0, 9.5, 0>}
	texture {Lamp_tex}
}

#declare Lamppost =
union {
	object {Lamppost_stem}
	object {Lamppost_head translate <0, 189, 0>}
}

object {Lamppost translate <100,-10,-160>}
plane {y,-10
	texture {
		pigment {color Gray30}
		finish {ambient .2 reflection .4}
	}
}

Et voici ce que nous obtenons :



Et maintenant, vous pouvez voir les différences entre l'image complète et celle sans Use_Arealights.

Quand aux acteurs, dans l'ordre d'apparition, nous avons Collar_piece, Collar, Little_feature, Little, support_piece, support, Lamppost_stem et Lamppost_head.

Retour Retour