4.1.15 Script benchmark

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

// Persistence Of Vision Ray Tracer Scene Description File
//
// File: benchmark.pov
// POV-Ray Vers: 3.5
// Benchmark Vers: 1.02
// Desc: POV-Ray 3.5 benchmark scene
// Date: October/November 2001
//
// Assembled by Christoph Hormann
// Contributions by:
// - Ingo Janssen
// - Mick Hazelgrove
// ===================================================
//
// Standard POV-Ray v3.5 benchmark version 1.02
//
// This is the official POV-Ray v3.5 benchmark scene. It is designed
// to test a variety of POV-Ray features and should render in a
// reasonable amount of time on current machines. Note that the
// radiosity feature is still experimental and not very suitable for
// comparing results of different versions, therefore it is turned
// off by default.
//
// Please log all changes made to this file below.
//
// Note that only results generated with the above options and the
// unchanged scene file are allowed to be published as 'official
// POV-Ray benchmark results'. Feel free to do additional tests, but
// make sure the differences are made clear when publishing them.
//
// When publishing results, be sure to quote the exact version of the
// benchmark scene used (1.02), and the exact version of POV-Ray.
//
// ===================================================
//
// Change history
//
// Nov. 2001 Initial release (version 3.5.0)
// Jan. 2002 using 'max()' instead of '&' in isosurface
// Apr. 2002 changed max_gradient of isosurface (new ver is 1.01)
// Jun. 2002 added photons pass_through to clouds (new ver is 1.02)
//
// ===================================================
//
// Permission is granted for this file and the output from it to be
// freely redistributed in an unmodified form for the purpose of
// generating and maintaining POV-Ray benchmarks.  Derivative works
// are permitted provided that they have a clearly different filename
// and do not claim to be the standard benchmark file.
//
// ===================================================
//
// Suggested command line options if not using an INI file:
//
// -w384 -h384 +a0.3 +v -d -f -x
//
// The following INI options are used when the 'Run Benchmark' command
// is chosen on versions of POV-Ray that support the built-in version.
//
// All_Console=Off
// Antialias_Depth=3
// Antialias=On
// Antialias_Threshold=0.3
// Bits_Per_Color=8
// Bounding=On
// Bounding_Threshold=3
// Buffer_Output=Off
// Buffer_Size=0
// Clock=0
// Continue_Trace=Off
// Create_Histogram=Off
// Cyclic_Animation=Off
// Debug_Console=On
// Display=Off
// Display_Gamma=1.0
// Draw_Vistas=Off
// End_Column=1
// End_Row=1
// Fatal_Console=On
// Fatal_Error_Command=
// Fatal_Error_Return=I
// Field_Render=Off
// Final_Clock=1
// Final_Frame=1
// Height=384
// Histogram_Name=
// Histogram_Grid_Size=0.0
// Initial_Clock=0
// Initial_Frame=1
// Include_Header=
// Jitter_Amount=1
// Jitter=On
// Light_Buffer=On
// Odd_Field=Off
// Output_Alpha=Off
// Output_File_Name=
// Output_File_Type=s
// Output_To_File=Off
// Palette=3
// Pause_When_Done=Off
// Post_Frame_Command=
// Post_Frame_Return=I
// Post_Scene_Command=
// Post_Scene_Return=I
// Preview_End_Size=1
// Preview_Start_Size=1
// Pre_Frame_Command=
// Pre_Frame_Return=I
// Pre_Scene_command=
// Pre_Scene_Return=I
// Quality=9
// Remove_Bounds=On
// Render_Console=On
// Sampling_Method=1
// Split_Unions=Off
// Start_Column=0
// Start_Row=0
// Statistic_Console=On
// Subset_End_Frame=1
// Subset_Start_Frame=1
// Test_Abort_Count=0
// Test_Abort=Off
// User_Abort_Command=
// User_Abort_Return=I
// Verbose=On
// Version=3.5
// Video_Mode=0
// Vista_Buffer=On
// Warning_Console=On
// Width=384
//
// ===================================================

#version 3.5;

#include "functions.inc"
#include "colors.inc"
#include "logo.inc"

#declare use_radiosity = false;
// #declare use_radiosity = true;

#declare use_photons = true;
#declare use_area_light = true;

#declare show_clouds = true;
#declare show_objects = true;

#declare Rad = 50000;

global_settings {
	max_trace_level 12
	assumed_gamma 1.0
	#if (use_radiosity = true)
		radiosity {
			pretrace_start 0.08
			pretrace_end 0.01
			count 80
			nearest_count 5
			error_bound 0.5
			recursion_limit 1
			low_error_factor .5
			gray_threshold 0.0
			minimum_reuse 0.015
			brightness 0.7
			adc_bailout 0.01/2
			normal on
		}
	#end
	#if (use_photons = true)
		photons {spacing 0.007}
	#end
}

#if (use_radiosity = false)
	#default {finish {ambient 0.02}}
#else
	#default {finish {ambient 0.00}}
#end

//====================================================

camera {
	location <3.2, 3.2, 1.8>
	direction y
	sky z
	up z
	right -x
	look_at <-1,-1, 0.9>
	angle 45
}

light_source {
	<-0.7, 0.83, 0.24>*150000
	color rgb <3.43, 2.87, 1.95>
	#if (use_area_light = true)
		area_light 4000*x 4000*y 4, 4
		jitter
		orient
		circular
	#end
	media_attenuation on
	media_interaction on
	photons {
		reflection on
		refraction on
	}
}

#if (use_radiosity = false)
	light_source {
		<0.9,-0.6, 0.5>*150000
		color rgb 0.35
		shadowless
	}
#end

fog {
	fog_type 2
	fog_alt 1.5
	fog_offset 0
	color rgbt <0.75, 0.80, 0.86, 0.2>
	distance 400
	up z
}

//====================================================

#declare RMF = function {f_ridged_mf(x, y, z, 0.07, 2.2, 7, 0.6, 0.9, 1)}

#declare M_Watx4 =
material {
	texture {
		pigment {color rgbt <0.21, 0.20, 0.3, 0.96>}
		finish {
			diffuse 0.0
			ambient 0.0
			reflection {
				0.1, 0.95
				fresnel on
				exponent 0.8
			}
			conserve_energy
			specular 0.1
			roughness 0.007
			metallic
		}
		normal {
			function {RMF(x, y, z)} 0.2
			scale 0.07
		}
	}
	interior {
		ior 1.31
		fade_distance 0.8
		fade_power 1001.0
		fade_color <0.02, 0.20, 0.06>
	}
}

box {	// Water
	<-1.95,-1.65, 0.42>, <1.95, 1.65,-5.5>
	material {M_Watx4}
	hollow on
	photons {collect off}
}

#declare fn_RMF = function {f_ridged_mf(x, y, z, 0.1, 3.1, 8, 0.7, 0.8, 2)}

plane {	// floor
	z, -0.3
	texture {
		pigment {color rgb <1.0, 0.85, 0.6>}
		finish {
			diffuse 0.7
			specular 0.1
		}
		normal {
			function {fn_RMF(x, y, z)} 0.3
			scale 8
		}
	}
	clipped_by {
		box {<-1.95,-1.65, 1>, <1.95, 1.65,-1> inverse}
	}
	photons {collect off}
}

isosurface {
	function {z - fn_RMF(x, y, z)*0.07}
	max_gradient 1.3
	contained_by {box {<-15,-15, 0.0>, <15, 15, 0.2>}}
	texture {
		pigment {color rgb <1.0, 0.85, 0.6>}
		finish {
			diffuse 0.7
			specular 0.1
		}
	}
	scale 8
	translate -0.16*z
	clipped_by {
		box {<-1.95,-1.65, 1>, <1.95, 1.65,-1> inverse}
	}
	photons {collect off}
}

// ===================================================

sphere {	// Sky
	<0, 0, 0>, 1
	texture {
		pigment {
			gradient z
			pigment_map {
				[0.00 color rgb <0.6667, 0.7255, 0.7725>]
				[0.19
					spherical
					color_map {
						[0.08 color rgb <0.33, 0.37, 0.90>]
						[0.14 color rgb <0.3210, 0.53, 0.9259>]
						[0.26 color rgb <0.3610, 0.57, 0.9259>]
						[0.50 color rgb <0.880, 0.935, 0.976>]
					}
					scale 1.8
					translate <-0.7, 0.7, 0.24>
				]
			}
		}
		finish {
			diffuse 0
			ambient 1
		}
	}
	scale Rad*<20, 20, 4>
	translate -2*z
	no_shadow
	hollow on
	photons {collect off pass_through}
}

#if (show_clouds)
	// from mick
	difference {
		sphere {0, Rad}
		sphere {0, Rad-15000}
		material {
			texture {
				pigment {rgbf 1}
				finish {
					ambient 0
					diffuse 0
				}
			}
			interior {
				media {
					scattering {2, <.013, .012, .008>/1.3 extinction 1/1.3}
					method 3
					samples 7,7
					intervals 1
					density {	// one
						wrinkles
						ramp_wave
						noise_generator 1
						color_map {
							[0 rgb 0]
							[0.5 rgb 0]
							[0.7 rgb 0.275]
							[1 rgb 0.475]
						}
						scale <10000, 9000, 5000>/3
						rotate z*29
						translate <1000, 0, Rad-30000>
					}
					density {	// two
						marble
						warp {turbulence 1.65 octaves 7}
						noise_generator 1
						color_map {
							[0 rgb 0]
							[0.4 rgb 0]
							[0.85 rgb 0.25]
							[1 rgb 0.5]
						}
						scale <10000, 7500, 5000>*5
						rotate z*-25
						translate <0, 0, Rad-30000>
					}
				}	// media
			}	// interior
		}	// material
		hollow
		rotate z*70
		rotate y*15
		translate <0, 0, 32000-Rad>
		rotate -102*z
		scale <1, 1, 0.4>
		photons {collect off pass_through}
	}	// difference
#end

// ===================================================

#declare Metal_Texture =
texture {
	pigment {color rgb <0.65, 0.55, 0.5>}
	finish {
		ambient 0.0
		diffuse 0.15
		specular 0.3
		metallic
		roughness 0.01
		reflection {
			0.8
			metallic
		}
	}
}

#declare Stone_Tex =
texture {
	pigment {
		crackle
		pigment_map {
			[0.03
				bozo
				color_map {
					[0 color rgb <0.2, 0.14, 0.05>]
					[1 color rgb <0.2, 0.14, 0.05>]
				}
				warp {turbulence 0.6}
			]
			[0.055
				granite
				color_map {
					[0.0 color rgb <1, 0.95, 0.9>]
					[0.5 color rgb <0.6, 0.5, 0.52>]
					[1.0 color rgb <0.9, 0.8, 0.7>]
				}
				warp {turbulence 0.4 lambda 2.4 octaves 8}
				scale 0.5
			]
		}
		warp {turbulence 0.72 lambda 2.25 omega 0.53 octaves 9}
		scale 0.3
	}
	finish {
		diffuse 0.55
		specular 0.1
	}
	normal {
		granite 0.15
		scale 0.06
	}
}

#declare Stone_Tex2 =
texture {
	pigment {
		crackle
		pigment_map {
			[0.03
				bozo
				color_map {
					[0 color rgb <0.1, 0.08, 0.2>]
					[1 color rgb <0.1, 0.08, 0.2>]
				}
				warp {turbulence 0.6}
			]
			[0.055
				granite
				color_map {
					[0.0 color rgb <1, 0.95, 0.9>]
					[0.5 color rgb <0.6, 0.5, 0.52>]
					[1.0 color rgb <0.9, 0.8, 0.7>]
				}
				warp {turbulence 0.4 lambda 2.4 octaves 8}
				scale 1.2
			]
		}
		warp {turbulence 0.55 lambda 2.25 omega 0.53 octaves 9}
		scale 0.24
	}
	finish {
		diffuse 0.55
		specular 0.1
	}
	normal {
		granite 0.15
		scale 0.06
	}
}

#declare Stone_Tex3 =
texture {
	pigment {
		agate
		pigment_map {
			[0.3
				crackle
				color_map {
					[0.1 color rgb <0.3, 0.28, 0.4>]
					[0.2 color rgb <0.8, 0.7, 0.4>]
				}
				warp {turbulence 0.5 lambda 2.2 omega 0.52 octaves 8}
				scale 0.3
			]
			[0.5
				granite
				color_map {
					[0.0 color rgb <1, 0.95, 0.9>]
					[0.5 color rgb <0.3, 0.6, 0.52>]
					[1.0 color rgb <0.3, 0.8, 0.7>]
				}
				warp {turbulence 0.4 lambda 2.4 octaves 8}
			]
		}
		warp {turbulence 0.55}
		scale 0.24
	}
	finish {
		diffuse 0.55
		specular 0.1
	}
	normal {
		granite 0.15
		scale 0.06
	}
}

#declare Mat_Glass =
material {
	texture {
		pigment {color rgbt 1}
		finish {
			diffuse 0
			ambient 0
			specular 0.6
			metallic 0.5
			roughness 0.005
			reflection {
				0.05, 0.95
				fresnel on
			}
			conserve_energy
		}
	}
	interior {
		ior 1.5
		fade_distance 0.12
		fade_power 1001
		fade_color <0.6, 0.5, 0.7>
	}
}

#declare Socket =
union {
	difference {
		cylinder {-5*z,-0.04*z, 0.8}
		cylinder {-6*z,-0, 0.3}
		#declare Cnt = 0;
		#while (Cnt<360)
			merge {
				cylinder {<0.0, 0.0,-0.24>, <1.0, 0.0,-0.24>, 0.1}
				box {<0.0,-0.1,-0.24>, <1.0, 0.1,-6>}
				rotate Cnt*z
			}
			#declare Cnt = Cnt+30;
		#end
	}
	#declare Cnt = 0;
	#while (Cnt<360)
		union {
			cylinder {<0.8, 0.0,-0.04>, <0.8, 0.0,-5>, 0.05}
			cylinder {<0.8, 0.0,-0.04>, <0.8, 0.0,-0.01>, 0.07}
			rotate 15*z
			rotate Cnt*z
		}
		#declare Cnt = Cnt+30;
	#end
	cylinder {-0.04*z, 0, 0.86}
	torus {
		0.83, 0.03
		rotate 90*x
	}
}

#declare Pos1 = <0.0, 0.0, 0.6>;
#declare Pos2 = <-2.4,-0.8, 1.0>;
#declare Pos3 = <-1.4,-2.8, 1.3>;
#declare Pos4 = <1.4, 0.6, 0.5>;
#declare Pos5 = <-10,-5, 1.5>;
object {Socket translate Pos1 texture {Stone_Tex}}
object {Socket translate Pos2 texture {Stone_Tex}}
object {Socket scale 0.8 translate Pos3 texture {Stone_Tex}}
object {Socket scale 0.4 translate Pos4 texture {Stone_Tex}}
object {Socket scale 2 translate Pos5 texture {Stone_Tex}}
difference {
	box {<-2.0,-1.7, 0.5>, <2.0, 1.7,-6>}
	box {<-1.9,-1.6, 1.0>, <1.9, 1.6,-5>}
	texture {Stone_Tex2}
}
#if (show_objects)
	#declare POV_Text =
	text {
		ttf
		"timrom.ttf"
		"POV-Ray"
		0.25, 0
		scale 0.3
		rotate 90*x
		rotate -90*z
	}
	object {
		POV_Text
		translate <-1.97, 0.86, 0.5>
		texture {Stone_Tex2}
	}
	object {
		POV_Text
		rotate 90*z
		translate <-0.5,-1.6, 0.5>
		texture {Stone_Tex2}
	}
#end
height_field {
	function 300, 300 {
		pigment {
			function {1-(min(pow(x*x + y*y, 0.25), 1) -0.0001)}
			color_map {
				[0.0 rgb 0.0]
				[1.0 rgb 1.0]
			}
			translate <0.5, 0.5, 0>
			scale 0.45
			warp {turbulence 0.455}
			scale 3
			warp {turbulence 0.2 lambda 2.2 octaves 8}
			scale 1/3
		}
	}
	water_level 0.02
	rotate 90*x
	rotate 43*z
	scale <5, 5, 1.3>
	scale 2.6
	texture {
		pigment {
			bozo
			color_map {
				[0.40 color rgb <0.6, 0.6, 0.7>*0.6]
				[0.58 color rgb <0.9, 0.6, 0.3>*0.6]
				[0.62 color rgb <0.2, 0.6, 0.1>*0.4]
			}
			warp {turbulence 0.4}
			scale <0.2, 0.2, 3>
		}
		finish {
			diffuse 0.6
			specular 0.2
		}
	}
	translate <-18,-13,-0.4>
}

#if (show_objects)
	// Pos1
	difference {
		cylinder {-0.0*z, 0.15*z, 0.7}
		cylinder {-0.1*z, 0.25*z, 0.68}
		texture {Metal_Texture}
		translate 0.6*z
		photons {target reflection on}
	}
	#declare fn_pigm =
	function {
		pigment {
			bozo
			poly_wave 2
			color_map {
				[0 rgb 0][1 rgb 1]
			}
			warp {turbulence 0.4 lambda 2.3 omega 0.52}
			scale 0.2
		}
	}
	isosurface {
		function {
			(max(sqrt(x*x + y*y)-0.25, z-0.7))
			- fn_pigm(x, y, z).gray*0.07
		}
		max_gradient 2.4
		contained_by {box {<-0.35,-0.35, 0.0>, <0.35, 0.35, 0.8>}}
		texture {
			pigment {color rgb <1, 0.45, 0.2>}
			finish {
				diffuse 0.6
				specular 0.2
			}
		}
		translate Pos1
	}
	object {
		Povray_Logo
		rotate 90*x
		scale 0.4
		translate -0.2*y
		texture {
			pigment {color rgb <0.65, 0.55, 0.9>}
			finish {
				ambient 0.0
				diffuse 0.15
				specular 0.3
				metallic
				roughness 0.01
				reflection {
					0.8
					metallic
				}
			}
			normal {
				bumps 0.3
				scale 0.3
			}
		}
		rotate -25*z
		translate 0.96*z
		translate Pos1
	}
#end

#if (show_objects)
	// Pos2
	#declare rd = seed(45);
	union {
		#declare Cnt = 0;
		#while (Cnt<360)
			superellipsoid {
				<rand(rd)*2, rand(rd)*2>
				texture {Metal_Texture}
				scale 0.12
				translate <0.6, 0.0, 0.12>
				rotate (Cnt+30)*z
			}
			julia_fractal {
				<rand(rd), rand(rd)*0.6,-0.54, 0.2>
				quaternion
				max_iteration 7
				precision 500
				scale 0.12
				translate <0.6, 0.0, 0.1>
				rotate Cnt*z
				texture {
					pigment {color rgb <1, 0.4, 0.8>}
					finish {
						ambient 0
						diffuse 0.6
						specular 0.2
						reflection 0.2
					}
				}
			}
			#declare Cnt = Cnt+60;
		#end
		translate Pos2
	}
#end

#if (show_objects)
	// Pos3
	sphere {
		0, 0.24
		translate 0.24*z
		material {Mat_Glass}
		photons {target reflection on refraction on}
		translate Pos3
	}
#end

#if (show_objects)
	// Pos4
	// from ingo
	#declare Letter =
	text {
		ttf
		"timrom.ttf"
		"X"
		1, 0
		scale <1/0.7, 1/0.66, 1>
		translate <0, 0,-0.5>
	}
	#declare xPigm =
	function {
		pigment {
			object {
				Letter
				pigment {rgb 1}
				pigment {rgb 0}
			}
			warp {repeat x}
			warp {repeat y}
			scale 1.00002
			translate <0.000001,-0.00001, 0>
		}
	}
	#declare XsinPigm =
	function {
		pigment {
			function {xPigm(sin(x), pow(sin(y), 2), z).gray}
		}
	}
	#declare Fn_Obj =
	difference {
		cylinder {
			-2*y, 2*y, 2
			pigment {
				function {XsinPigm(x, y, z).gray}
				warp {planar}
				scale <0.5/pi, 1, 1>*0.5
				warp {
					cylindrical
					orientation z
					dist_exp 1
				}
				color_map {
					[0, rgb 1]
					[1, rgbf 1]
				}
			}
			finish {
				diffuse 0.6
				specular 0.4
			}
		}
		cylinder {
			-1.9*y, 2.1*y, 1.9
			pigment {rgbf 1}
			finish {
				diffuse 0.6
				specular 0.4
			}
		}
		translate 1.96*y
		rotate 90*x
		scale 0.12
	}
	object {
		Fn_Obj
		translate Pos4
	}
#end

#if (show_objects)
	// Pos5
	// from ingo
	#macro BuildWriteMesh2(VecArr, NormArr, UVArr, U, V)
		#debug concat("\n\n Building mesh2: \n   - vertex_vectors\n")
		#local NumVertices = dimension_size(VecArr, 1);
		mesh2 {
			vertex_vectors {
				NumVertices
				#local I = 0;
				#while (I<NumVertices)
					VecArr[I]
					#local I = I+1;
				#end
			}
			#debug concat("   - normal_vectors\n")
			#local NumVertices = dimension_size(NormArr, 1);
			normal_vectors {
				NumVertices
				#local I = 0;
				#while (I<NumVertices)
					NormArr[I]
					#local I = I+1;
				#end
			}
			#debug concat("   - uv_vectors\n")
			#local NumVertices = dimension_size(NormArr, 1);
			uv_vectors {
				NumVertices
				#local I = 0;
				#while (I<NumVertices)
					UVArr[I]
					#local I = I+1;
				#end
			}
			#debug concat("   - face_indices\n")
			#declare NumFaces = U*V*2;
			face_indices {
				NumFaces
				#local I = 0;
				#local H = 0;
				#while (I<V)
					#local J = 0;
					#while (J<U)
						#local Ind = (I*U)+I+J;
						<Ind, Ind+1, Ind+U+2>, <Ind, Ind+U+1, Ind+U+2>
						#local J = J+1;
						#local H = H+1;
					#end
					#local I = I+1;
				#end
			}
		}
	#end
	#macro FnA(X)
		#if (X<0.13)
			0.5+sin(X*14)*0.4
		#else
			0.5+sin((X-0.13)*7.2)*0.3
		#end
	#end
	// Build a two-dimensional array with vectors and normals retrieved from a function macro
	// ResSpl: the amount of vectors to get from the macro
	// based on ingo's code for splines
	#macro L_GetVN(ResSpl)
		#local I = 0;
		#local A = array[ResSpl+1][2]
		#while (I<=ResSpl)
			#local P0 = 0+<FnA(I/ResSpl), I/ResSpl, 0>;
			#if (P0.x= 0 & P0.z=0)
				#local P0 = <1e-25, P0.y, 1e-25>;
			#end
			#if (I=0)
				#local P1 = 0+<FnA(((I-0.5)/ResSpl)), I/ResSpl, 0>;
				#local P2 = 0+<FnA(((I+0.5)/ResSpl)), I/ResSpl, 0>;
			#else
				#local P1 = P2;
				#local P2 = 0+<FnA(((I+0.5)/ResSpl)), I/ResSpl, 0>;
			#end
			#local P3 = vrotate(P0, <0, 1, 0>);
			#local P4 = vrotate(P0, <0,-1, 0>);
			#local B1 = P4-P0;
			#local B2 = P2-P0;
			#local B3 = P3-P0;
			#local B4 = P1-P0;
			#local N1 = vcross(B1, B2);
			#local N2 = vcross(B2, B3);
			#local N3 = vcross(B3, B4);
			#local N4 = vcross(B4, B1);
			#local N = vnormalize((N1+N2+N3+N4)*-1);
			#local A[I][0] = P0;
			#local A[I][1] = N;
			#local I = I+1;
		#end
		A
	#end
	#macro FnLathe (Rot, ResRot, ResSpl)
		#declare VNArr = L_GetVN (ResSpl)
		#local VecArr = array[(ResRot+1)*(ResSpl+1)]
		#local NormArr = array[(ResRot+1)*(ResSpl+1)]
		#local UVArr = array[(ResRot+1)*(ResSpl+1)]
		#local R = Rot/ResRot;
		#local Dim = dimension_size(VNArr, 1);
		#local Count = 0;
		#local I = 0;
		#while (I<=ResRot)
			#local J = 0;
			#while (J<Dim)
				#local VecArr[Count] = vrotate(VNArr[J][0], <0, R*I, 0>);
				#local NormArr[Count] = vrotate(VNArr[J][1], <0, R*I, 0>);
				#local UVArr[Count] = <I/ResRot, J/(Dim-1)>;
				#local J = J+1;
				#local Count = Count+1;
			#end
			#local I = I+1;
		#end
		BuildWriteMesh2(VecArr, NormArr, UVArr, ResSpl, ResRot)
	#end
	#declare MSH = FnLathe(360, 100, 100)
	#declare Obj_Msh =
	object {
		MSH
		uv_mapping
		texture {
			pigment {
				checker
				color rgb <1.0, 0.7, 0.5>,
				color rgb <0, 0, 0.15>
				scale 0.05
			}
			finish {
				diffuse 0.7
				specular 0.3
			}
		}
		rotate 90*x
		scale <1.9, 1.9, 2.8>
		translate Pos5
	}
	object {Obj_Msh}
#end

Et voici ce que nous obtenons :


Et maintenant, vous pouvez voir les différences entre l'image complète et celle avec use_radiosity, ou sans use_photons, use_area_light, show_clouds et show_objects, ou revenir sur le résultat par défaut.

Quand aux acteurs, dans l'ordre d'apparition, nous avons Socket, POV_Text, Letter, Fn_Obj, MSH.

Voyons les fichiers inclus :

Dans 'Benchmark' ...
4.1.15.1 Script logo.inc
Retour Retour