4.11.2 Script patio-radio

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.
// RENAISSANCE PATIO
// RADIANCE AND ENVIRONMENT SETTINGS
#declare Rad_Quality = 2;

global_settings {
	assumed_gamma 1
	#switch (Rad_Quality)
		#case (1)
			radiosity {	// Settings 1 (fast)
				pretrace_start 0.08
				pretrace_end 0.02
				count 50
				error_bound 0.5
				recursion_limit 1
			}
		#break
		#case (2)
			radiosity {	// Settings 2 (medium quality)
				pretrace_start 0.08
				pretrace_end 0.01
				count 120
				error_bound 0.25
				recursion_limit 1
			}
		#break
		#case (3)
			radiosity {	// Settings 3 (high quality)
				pretrace_start 0.08
				pretrace_end 0.005
				count 400
				error_bound 0.1
				recursion_limit 1
			}
		#break
		#case (4)
			radiosity {	// Settings 4 (medium quality, recursion_limit 2)
				pretrace_start 0.08
				pretrace_end 0.005
				count 350
				error_bound 0.15
				recursion_limit 2
			}
		#break
	#end
}

fog {
	fog_type 2
	fog_alt 1.3
	fog_offset 0
	color rgb <0.7, 0.8, 0.9>
	distance 800
}

light_source {<1000, 10000,-15000> color rgb <1.0, 0.9, 0.78>*2.3}

sphere {	// Sky
	<0, 0, 0>, 1
	texture {
		pigment {
			gradient y
			color_map {
				[0.0 color rgb <1.0, 1.0, 1.0>]
				[0.3 color rgb <0.5, 0.6, 1.0>]
			}
		}
		finish {diffuse 0 ambient 1}
	}
	scale 10000
	hollow on
	no_shadow
}

// THE SCENERY ITSELF

#include "colors.inc"

camera {location <500, 150, 0> direction z look_at <0, 150, 320>}

plane {y, 0 pigment {color rgb <0.776, 0.706, 0.706>}}

#declare Arch_01 = union {
	difference {
		cylinder {<-20, 0, 0>, <20, 0, 0>, 140}
		cylinder {<-21, 0, 0>, <21, 0, 0>, 130}
		torus {130 2 rotate z*90 translate x*20}
		torus {130 2 rotate z*90 translate x*-20}
	}
	difference {
		cylinder {<-18, 0, 0>, <18, 0, 0>, 130}
		cylinder {<-21, 0, 0>, <21, 0, 0>, 125}
	}
	torus {139 1 rotate z*90 translate x*20}
	torus {136 1 rotate z*90 translate x*20}
	torus {139 1 rotate z*90 translate x*-20}
	torus {136 1 rotate z*90 translate x*-20}
	clipped_by {plane {y, 0 inverse}}
}

#macro SphereBox (Radius)
	#local SpRad = sqrt (Radius*Radius + Radius*Radius);
	intersection {
		sphere {0, SpRad}
		box {<-Radius, 0,-Radius>, <Radius, Radius, Radius>}
	}
#end

#declare Column_01 = union {
	box {<-40, 0,-40>, <40, 50, 40>}
	box {<-35, 50,-35>, <35, 60, 35>}
	cylinder {<0, 60, 0>, <0, 66, 0>, 28}
	torus {28 3 translate y*63}
	difference {
		cylinder {<0, 66, 0>, <0, 70, 0>, 25}
		torus {25 2 translate y*68}
	}
	cylinder {<0, 70, 0>, <0, 74, 0>, 25}
	torus {25 2 translate y*72}
	cylinder {<0, 74, 0>, <0, 76, 0>, 25}
	sphere {<0, 0, 0>, 23 scale <1, 15, 1> translate y*76 clipped_by {cylinder {<0, 76, 0>, <0, 265, 0>, 30}}}
	torus {20 2 translate y*255}
	torus {19 2 translate y*258}
	object {SphereBox (20) rotate z*180 translate y*(260+22)}
	box {<-25, 282,-25>, <25, 285, 25>}
	box {<-20, 285,-22>, <20, 295, 22>}
	difference {
		cylinder {<-22, 290, 0>, <22, 290, 0>, 5}
		cylinder {<-23, 290, 0>, <23, 290, 0>, 3}
	}
	box {<-23, 295,-23>, <23, 298, 23>}
	box {<-28, 298,-28>, <28, 300, 28>}
}

#declare Vault_01 = difference {
	box {<-160, 0,-160>, <160, 250, 160>}
	cylinder {<-170, 0, 0>, <170, 0, 0>, 130}
	cylinder {<-170, 0, 0>, <170, 0, 0>, 130 rotate y*90}
}

#declare Vault_02 = difference {	// (vault de coin)
	union {
		box {<-180, 0,-160>, <180, 250, 160>}
		box {<-160, 0,-180>, <160, 250, 180>}
	}
	cylinder {<-190, 0, 0>, <190, 0, 0>, 130}
	cylinder {<-190, 0, 0>, <190, 0, 0>, 130 rotate y*90}
}

#declare Spindle_01 = lathe {
	cubic_spline
	12,
	<0.017005,-0.005668>,
	<0.117619,-0.004251>,
	<0.123287, 0.072272>,
	<0.068020, 0.124704>,
	<0.076523, 0.195559>,
	<0.141709, 0.444967>,
	<0.075106, 0.524324>,
	<0.138875, 0.616435>,
	<0.055267, 0.916859>,
	<0.137458, 0.973543>,
	<0.161549, 1.000468>,
	<0.204061, 0.991965>
}

#declare Band_01 = union {
	box {<0, 0,-25>, <-1, 60, 25>}
	box {<0, 0,-25>, <5, 2, 25>}
	box {<0, 8,-25>, <3, 2, 25>}
	box {<0, 8,-25>, <6, 15, 25>}
	box {<0, 8,-10>, <6, 15,-8>}
	box {<0, 8, 10>, <6, 15, 8>}
	box {<0, 20,-25>, <3, 19, 25>}
	box {<0, 50,-25>, <5, 60, 25>}
	box {<0, 50,-25>, <3, 55, 25>}
	box {<0, 20,-2>, <3, 40,-4>}
	box {<0, 20,-6>, <3, 40,-8>}
	box {<0, 20, 2>, <3, 40, 4>}
	box {<0, 20, 6>, <3, 40, 8>}
	box {<0, 42,-25>, <6, 40, 25>}
	box {<0, 0,-2>, <7, 8,-4>}
	box {<0, 0,-6>, <7, 8,-8>}
	box {<0, 0, 2>, <7, 8, 4>}
	box {<0, 0, 6>, <7, 8, 8>}
}

#declare Balcony_01 = union {
	box {<-10, 0,-.5>, <10, 10, .5>}
	cylinder {<-10, 5,-.5>, <-10, 5, .5>, 4}
	cylinder {<10, 5,-.5>, <10, 5, .5>, 4}
}

#declare Group1 = union {
	object {Arch_01 translate <-490, 300, 0>}
	object {Arch_01 translate <-490, 300, 300>}
	object {Arch_01 translate <-490, 300,-300>}
	object {Column_01 translate <-490, 0, 150>}
	object {Column_01 translate <-490, 0,-150>}
	object {Column_01 translate <-490, 0,-450>}
	object {Column_01 translate <-490, 0, 450>}
	object {Column_01 translate <-790, 0, 150>}
	object {Column_01 translate <-790, 0,-150>}
	object {Column_01 translate <-790, 0,-450>}
	object {Column_01 translate <-790, 0, 450>}
	object {Column_01 translate <-790, 0,-450-40>}
	object {Column_01 translate <-790, 0, 450+40>}
	object {Arch_01 rotate y*90 translate <-490-150, 300, 150>}
	object {Arch_01 rotate y*90 translate <-490-150, 300,-150>}
	object {Arch_01 rotate y*90 translate <-490-150, 300, 450>}
	object {Arch_01 rotate y*90 translate <-490-150, 300,-450>}
	object {Arch_01 rotate y*90 translate <-490-150, 300, 450+40>}	// doubleaux
	object {Arch_01 rotate y*90 translate <-490-150, 300,-450-40>}
	object {Vault_01 translate <-640, 300, 0>}
	object {Vault_01 translate <-640, 300, 300>}
	object {Vault_01 translate <-640, 300,-300>}
	object {Vault_01 translate <-640, 300, 640>}	// coin
	#declare I = 0;
	#while (I < 1000)
		object {Band_01 translate <-480, 500, (-470 + I)>}
		#declare I = I+50;
	#end
	#declare I = 0;
	#while (I < 1000)
		object {Spindle_01 scale <60, 60, 60> translate <-500, 550, (-500 + I)>}
		#declare I = I+40;
	#end
	object {Balcony_01 scale <1, 1, 1020> translate <-500, 610, 0>}
	object {Balcony_01 scale <1, 1, 1020> translate <-500, 610, 0> rotate y*90}
	object {Balcony_01 scale <1, 1, 1020> translate <-500, 610, 0> rotate y*180}
	object {Balcony_01 scale <1, 1, 1020> translate <-500, 610, 0> rotate y*270}
	box {<-790, 0,-810>, <-810, 450, 810>}
}

#declare PatioComplete = union {
	object {Group1}
	object {Group1 rotate y*90}
	object {Group1 rotate y*180}
	object {Group1 rotate y*270}
}

object {PatioComplete
	pigment {Wheat}
	finish {ambient 0.0 diffuse 0.6}
}

#declare Paving_01 = union {
	box {<-40, 0,-490>, <40, .1, 490> translate x*150}
	box {<-40, 0,-490>, <40, .1, 490> translate x*-150}
	box {<-40, 0,-490>, <40, .1, 490> translate x*490}
	box {<-40, 0,-490>, <40, .1, 490> translate x*-480}
	texture {
		pigment {color rgb <0.706, 0.714, 0.776>*.8}
		finish {ambient 0.0 diffuse 0.6}
	}
}

object {Paving_01}
object {Paving_01 rotate y*90}

Et voici ce que nous obtenons :


Et maintenant, vous pouvez voir les différences entre l'image initiale (Rad_Quality = 2) et celle avec Rad_Quality = 1, Rad_Quality = 3 et Rad_Quality = 4.

Retour Retour