Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'render_povray/templates_pov/gamma_showcase.pov')
-rw-r--r--render_povray/templates_pov/gamma_showcase.pov189
1 files changed, 189 insertions, 0 deletions
diff --git a/render_povray/templates_pov/gamma_showcase.pov b/render_povray/templates_pov/gamma_showcase.pov
new file mode 100644
index 00000000..d601868f
--- /dev/null
+++ b/render_povray/templates_pov/gamma_showcase.pov
@@ -0,0 +1,189 @@
+// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
+// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
+// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
+
+// Persistence of Vision Ray Tracer Scene Description File
+// File: gamma_showcase.pov
+// Vers: 3.7
+// Desc: Gamma Handling Test Scene - An arrangement of spheres on a marble plane
+// Date: 2010-12-21
+// Auth: Christoph Lipka
+// MORE INFORMATION: http://wiki.povray.org/content/Documentation:Tutorial_Section_3.3#Gamma_Handling
+//
+
+// +w640 +h480 +a0.3 +am1 +fN -d File_Gamma=sRGB Output_File_Name=gamma_showcase.png
+// +w640 +h480 +a0.3 +am1 +fN -d File_Gamma=1.0 Output_File_Name=gamma_showcase_linear.png
+// +w320 +h240 +a0.3 +am1 +fN -d File_Gamma=sRGB Output_File_Name=gamma_showcase_ref0.png Declare=Stripes=off
+// +w320 +h240 +a0.3 +am1 +fN -d File_Gamma=sRGB Output_File_Name=gamma_showcase_ref1.png Declare=Stripes=off Declare=Gamma=1.2
+// +w320 +h240 +a0.3 +am1 +fN -d File_Gamma=sRGB Output_File_Name=gamma_showcase_ref2.png Declare=Stripes=off Declare=Gamma=0.8
+// +w640 +h480 +a0.3 +am1 -f +d
+
+#version 3.7;
+
+#include "colors.inc"
+#include "stones.inc"
+
+#ifndef (Stripes)
+ #declare Stripes = on;
+#end
+#ifndef (Gamma)
+ #declare Gamma = 1.0;
+#end
+
+global_settings {
+ max_trace_level 5
+ assumed_gamma 1.0
+ radiosity {
+ pretrace_start 0.08
+ pretrace_end 0.01
+ count 35
+ nearest_count 5
+ error_bound 1.8
+ recursion_limit 2
+ low_error_factor .5
+ gray_threshold 0.0
+ minimum_reuse 0.015
+ brightness 1
+ adc_bailout 0.01/2
+ }
+}
+
+#default {
+ texture {
+ pigment {rgb 1}
+ finish {
+ ambient 0.0
+ diffuse 0.6
+ specular 0.6 roughness 0.001
+ reflection { 0.0 1.0 fresnel on }
+ conserve_energy
+ }
+ }
+}
+
+// ----------------------------------------
+
+#local TestRed = rgb <0.5,0.1,0.1>;
+#local TestGreen = rgb <0.1,0.5,0.1>;
+#local TestBlue = rgb <0.1,0.1,0.5>;
+
+#local CameraFocus = <0,0.5,0>;
+#local CameraDist = 8;
+#local CameraDepth = 1.8;
+#local CameraTilt = 20;
+
+camera {
+ location <0,0,0>
+ direction z*CameraDepth
+ right x*image_width/image_height
+ up y
+ translate <0,0,-CameraDist>
+ rotate x*CameraTilt
+ translate CameraFocus
+}
+
+#macro LightSource(Pos,Color)
+ light_source {
+ Pos
+ color Color
+ spotlight
+ point_at <0,0,0>
+ radius 175/vlength(Pos)
+ falloff 200/vlength(Pos)
+ area_light x*vlength(Pos)/10, y*vlength(Pos)/10, 9,9 adaptive 1 jitter circular orient
+ }
+
+#end
+
+LightSource(<-500,500,-500>,TestRed + <0.2,0.2,0.2>)
+LightSource(< 0,500,-500>,TestGreen + <0.2,0.2,0.2>)
+LightSource(< 500,500,-500>,TestBlue + <0.2,0.2,0.2>)
+
+// ----------------------------------------
+
+#macro DarkStripeBW(TargetBrightness)
+ #if (TargetBrightness < 0.5)
+ (0.0)
+ #else
+ (TargetBrightness*2 - 1.0)
+ #end
+#end
+
+#macro BrightStripeBW(TargetBrightness)
+ #if (TargetBrightness < 0.5)
+ (TargetBrightness*2)
+ #else
+ (1.0)
+ #end
+#end
+
+#macro DarkStripeRGB(TargetColor)
+ <DarkStripeBW(TargetColor.red),DarkStripeBW(TargetColor.green),DarkStripeBW(TargetColor.blue)>
+#end
+
+#macro BrightStripeRGB(TargetColor)
+ <BrightStripeBW(TargetColor.red),BrightStripeBW(TargetColor.green),BrightStripeBW(TargetColor.blue)>
+#end
+
+#macro StripedPigment(TargetColor)
+ #if (Stripes)
+ function { abs(mod(abs(image_height*CameraDepth*y/z+0.5),2.0)-1.0) }
+ color_map {
+ [0.5 color rgb DarkStripeRGB(TargetColor) ]
+ [0.5 color rgb BrightStripeRGB(TargetColor) ]
+ }
+ translate <0,0,-CameraDist>
+ rotate x*CameraTilt
+ translate CameraFocus
+ #else
+ color TargetColor
+ #end
+#end
+
+
+plane {
+ y, 0
+ texture { T_Stone11 }
+ interior { ior 1.5 }
+}
+
+#macro GammaAdjust(C,G)
+ #local C2 = color rgbft <pow(C.red,G),pow(C.green,G),pow(C.blue,G),pow(C.filter,G),pow(C.transmit,G)>;
+ (C2)
+#end
+
+#macro TestSphere(Pos,Radius,TargetColor,Split)
+ sphere {
+ Pos + y*Radius, Radius
+ texture { pigment { color GammaAdjust(TargetColor,Gamma) } }
+ interior { ior 1.5 }
+ }
+ #if (Split)
+ sphere {
+ Pos + y*Radius + x*0.001, Radius
+ texture { pigment { StripedPigment(TargetColor) } }
+ interior { ior 1.5 }
+ }
+ #end
+#end
+
+TestSphere(<-2,0,1>, 1, TestRed, true)
+TestSphere(< 0,0,1>, 1, TestGreen, true)
+TestSphere(< 2,0,1>, 1, TestBlue, true)
+
+#local Steps = 6;
+#for(I,0,1,1/Steps)
+ #if (I < 0.5)
+ #local Color2 = TestRed;
+ #else
+ #local Color2 = TestBlue;
+ #end
+ #local P = abs(I-0.5)*2;
+ TestSphere(<I*4-2,0,-0.5>, 2/Steps, (1-P)*TestGreen + P*Color2, true)
+#end
+
+#local Steps = 8;
+#for(I,0,1,1/Steps)
+ TestSphere(<I*4-2,0,-1.5>, 2/Steps, rgb I, true)
+ TestSphere(<I*4-2,0,-2.0>, 2/Steps, GammaAdjust(rgb I, 2.2*Gamma), false)
+#end