Import_3ds: Improved distance cue node setup
[blender-addons.git] / render_povray / templates_pov / gamma_showcase.pov
blobd601868f68841e70f77c87336bc0aa2fe5029802
1 // This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
2 // To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
3 // letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
5 // Persistence of Vision Ray Tracer Scene Description File
6 // File: gamma_showcase.pov
7 // Vers: 3.7
8 // Desc: Gamma Handling Test Scene - An arrangement of spheres on a marble plane
9 // Date: 2010-12-21
10 // Auth: Christoph Lipka
11 // MORE INFORMATION: http://wiki.povray.org/content/Documentation:Tutorial_Section_3.3#Gamma_Handling
14 // +w640 +h480 +a0.3 +am1 +fN -d File_Gamma=sRGB Output_File_Name=gamma_showcase.png
15 // +w640 +h480 +a0.3 +am1 +fN -d File_Gamma=1.0 Output_File_Name=gamma_showcase_linear.png
16 // +w320 +h240 +a0.3 +am1 +fN -d File_Gamma=sRGB Output_File_Name=gamma_showcase_ref0.png Declare=Stripes=off
17 // +w320 +h240 +a0.3 +am1 +fN -d File_Gamma=sRGB Output_File_Name=gamma_showcase_ref1.png Declare=Stripes=off Declare=Gamma=1.2
18 // +w320 +h240 +a0.3 +am1 +fN -d File_Gamma=sRGB Output_File_Name=gamma_showcase_ref2.png Declare=Stripes=off Declare=Gamma=0.8
19 // +w640 +h480 +a0.3 +am1 -f +d
21 #version 3.7;
23 #include "colors.inc"
24 #include "stones.inc"
26 #ifndef (Stripes)
27 #declare Stripes = on;
28 #end
29 #ifndef (Gamma)
30 #declare Gamma = 1.0;
31 #end
33 global_settings {
34 max_trace_level 5
35 assumed_gamma 1.0
36 radiosity {
37 pretrace_start 0.08
38 pretrace_end 0.01
39 count 35
40 nearest_count 5
41 error_bound 1.8
42 recursion_limit 2
43 low_error_factor .5
44 gray_threshold 0.0
45 minimum_reuse 0.015
46 brightness 1
47 adc_bailout 0.01/2
51 #default {
52 texture {
53 pigment {rgb 1}
54 finish {
55 ambient 0.0
56 diffuse 0.6
57 specular 0.6 roughness 0.001
58 reflection { 0.0 1.0 fresnel on }
59 conserve_energy
64 // ----------------------------------------
66 #local TestRed = rgb <0.5,0.1,0.1>;
67 #local TestGreen = rgb <0.1,0.5,0.1>;
68 #local TestBlue = rgb <0.1,0.1,0.5>;
70 #local CameraFocus = <0,0.5,0>;
71 #local CameraDist = 8;
72 #local CameraDepth = 1.8;
73 #local CameraTilt = 20;
75 camera {
76 location <0,0,0>
77 direction z*CameraDepth
78 right x*image_width/image_height
79 up y
80 translate <0,0,-CameraDist>
81 rotate x*CameraTilt
82 translate CameraFocus
85 #macro LightSource(Pos,Color)
86 light_source {
87 Pos
88 color Color
89 spotlight
90 point_at <0,0,0>
91 radius 175/vlength(Pos)
92 falloff 200/vlength(Pos)
93 area_light x*vlength(Pos)/10, y*vlength(Pos)/10, 9,9 adaptive 1 jitter circular orient
96 #end
98 LightSource(<-500,500,-500>,TestRed + <0.2,0.2,0.2>)
99 LightSource(< 0,500,-500>,TestGreen + <0.2,0.2,0.2>)
100 LightSource(< 500,500,-500>,TestBlue + <0.2,0.2,0.2>)
102 // ----------------------------------------
104 #macro DarkStripeBW(TargetBrightness)
105 #if (TargetBrightness < 0.5)
106 (0.0)
107 #else
108 (TargetBrightness*2 - 1.0)
109 #end
110 #end
112 #macro BrightStripeBW(TargetBrightness)
113 #if (TargetBrightness < 0.5)
114 (TargetBrightness*2)
115 #else
116 (1.0)
117 #end
118 #end
120 #macro DarkStripeRGB(TargetColor)
121 <DarkStripeBW(TargetColor.red),DarkStripeBW(TargetColor.green),DarkStripeBW(TargetColor.blue)>
122 #end
124 #macro BrightStripeRGB(TargetColor)
125 <BrightStripeBW(TargetColor.red),BrightStripeBW(TargetColor.green),BrightStripeBW(TargetColor.blue)>
126 #end
128 #macro StripedPigment(TargetColor)
129 #if (Stripes)
130 function { abs(mod(abs(image_height*CameraDepth*y/z+0.5),2.0)-1.0) }
131 color_map {
132 [0.5 color rgb DarkStripeRGB(TargetColor) ]
133 [0.5 color rgb BrightStripeRGB(TargetColor) ]
135 translate <0,0,-CameraDist>
136 rotate x*CameraTilt
137 translate CameraFocus
138 #else
139 color TargetColor
140 #end
141 #end
144 plane {
145 y, 0
146 texture { T_Stone11 }
147 interior { ior 1.5 }
150 #macro GammaAdjust(C,G)
151 #local C2 = color rgbft <pow(C.red,G),pow(C.green,G),pow(C.blue,G),pow(C.filter,G),pow(C.transmit,G)>;
152 (C2)
153 #end
155 #macro TestSphere(Pos,Radius,TargetColor,Split)
156 sphere {
157 Pos + y*Radius, Radius
158 texture { pigment { color GammaAdjust(TargetColor,Gamma) } }
159 interior { ior 1.5 }
161 #if (Split)
162 sphere {
163 Pos + y*Radius + x*0.001, Radius
164 texture { pigment { StripedPigment(TargetColor) } }
165 interior { ior 1.5 }
167 #end
168 #end
170 TestSphere(<-2,0,1>, 1, TestRed, true)
171 TestSphere(< 0,0,1>, 1, TestGreen, true)
172 TestSphere(< 2,0,1>, 1, TestBlue, true)
174 #local Steps = 6;
175 #for(I,0,1,1/Steps)
176 #if (I < 0.5)
177 #local Color2 = TestRed;
178 #else
179 #local Color2 = TestBlue;
180 #end
181 #local P = abs(I-0.5)*2;
182 TestSphere(<I*4-2,0,-0.5>, 2/Steps, (1-P)*TestGreen + P*Color2, true)
183 #end
185 #local Steps = 8;
186 #for(I,0,1,1/Steps)
187 TestSphere(<I*4-2,0,-1.5>, 2/Steps, rgb I, true)
188 TestSphere(<I*4-2,0,-2.0>, 2/Steps, GammaAdjust(rgb I, 2.2*Gamma), false)
189 #end