// Persistence of Vision Ray Tracer Scene Description File // File: NK_Assumed gamma discussion.pov // Vers: 3.7-3.8 // Desc: assumed_gamma discussion // Date: 8-11-2019 // Auth: Norbert Kern // : https://news.povray.org/povray.binaries.images/thread/%3Cweb.5dc5b7d8a9e0baa839d843b0%40news.povray.org%3E/ /* -------------------------------------------------------------------------------------- I refer to the thread in povray.general - Future of missing "assume_gamma" (http://news.povray.org/povray.general/thread/%3Cweb.5dbe6e69db426e49984b401a0%40news.povray.org%3E/). I always rendered with gamm 1.0 from 1999 to 2005. Then I realized Gilles Tran went back from gamma 1 to gamma 2.2 back in 2002 or 2003. Christoph Gerber always used gamma 2.6 in his fantastic images (e.g. http://hof.povray.org/River.html). I know all the arguments for gamma 1.0 - but I like the sharper contrasts coming with gamma 2.2. Of course I tried several times to get the same effects with gamma 1.0, but most of the times I used gamma 2.2 in the end. Here I show an image of a display I saw in a mall, consisting of about 50*100 small tiltable plates (brushed aluminum I assume) showing some animated patterns. I tried hard to get a similar image with gamma 1, but no chance - it always looked boring to me. But perhaps I'm wrong - here is the source - -------------------------------------------------------------------------------------- History of experiments: NK_Assumed gamma discussion_0.png = original with assumed_gamma 2.2 NK_Assumed gamma discussion_1.png = assumed_gamma 1.0 NK_Assumed gamma discussion_2.png = assumed_gamma 1.0, rgb changed to srgb NK_Assumed gamma discussion_3.png = assumed_gamma 1.0, rgb changed to srgb, light_source changed to rgb 1.0 NK_Assumed gamma discussion_4.png = assumed_gamma 1.0, new sphere as sky_sphere NK_Assumed gamma discussion_5.png = assumed_gamma 1.0, old sky_sphere (with adapted color_map), rgb changed to srgb */ //+w1920 +h1080 +am2 +a0.3 +bm2 +bs8 +wt8 #version 3.8; #local Curtain = on; #declare RAD = 4; global_settings { assumed_gamma 1.0 //2.2 max_trace_level 5 noise_generator 2 #if(RAD > 0) radiosity { pretrace_start 0.08 pretrace_end 0.04/RAD count 30*RAD nearest_count min (20, RAD) error_bound 2/RAD low_error_factor 0.5 recursion_limit 1 gray_threshold 0 minimum_reuse 0.015 brightness 1 adc_bailout 0.005 normal on media off } #end } #include "stdinc.inc" camera { ultra_wide_angle location <21, -22.4, -28> look_at <30, 16, 0> right x*image_width/image_height angle 30 } light_source { <0, 0, -10e5> color srgb 1.5 //2.42 parallel } sky_sphere { pigment { average pigment_map { [1.0 function {max (min (y, 1), 0)} color_map { [0.00 srgb <0.06, 0.1, 0.4>*3]//2.35] [0.96 srgb <0.1, 0.3, 0.5>*3]//4.5] [1.00 srgb 5]//13.5] } ] [1.0 function {max (min (y, 1), 0)} turbulence 0.2 color_map { [0.0 srgbt 1] [0.5 srgbt <0.385, 0.77, 1.1, 1>] } rotate z*-45 ] } } } //alternate skY_sphere: /*sphere { 0, 1 pigment { gradient <0, 1 ,0> color_map { blend_mode 3 blend_gamma 2.2 [0.00 rgb <1.0, 1.0, 1.0>*0.9] [0.35 rgb <0.8, 0.8, 0.8>*0.3] [0.65 rgb <0.8, 0.8, 0.8>*0.3] [1.00 rgb <1.0, 1.0, 1.0>*0.9] } scale 2 warp {turbulence 0.5} } finish {emission 1 diffuse 1.0 specular 0} scale 10e6 translate -23.0*y }*/ /*plane { y, -23.0 pigment {color rgb 0.5} }*/ #if (Curtain) #declare s = seed (7); #declare Tx = -110; #declare Ty = -155; intersection { plane { z, 0 pigment {color srgb 0} finish {reflection {0, 0.5}} } box { , <-Tx, -Ty, 0.01> } translate 1*z } #macro RoundBox (A, B, Edge) #local AA = ; #local BB = ; #local LBF = AA; #local RBF = ; #local RBB = ; #local LBB = ; #local LTF = ; #local RTF = ; #local RTB = BB; #local LTB = ; union { sphere {LBF, Edge} sphere {RBF, Edge} sphere {RBB, Edge} sphere {LBB, Edge} sphere {LTF, Edge} sphere {RTF, Edge} sphere {RTB, Edge} sphere {LTB, Edge} cylinder {LBF, RBF, Edge} cylinder {LBB, RBB, Edge} cylinder {LTB, RTB, Edge} cylinder {LTF, RTF, Edge} cylinder {LBF, LTF, Edge} cylinder {RBF, RTF, Edge} cylinder {RBB, RTB, Edge} cylinder {LBB, LTB, Edge} cylinder {LTB, LTF, Edge} cylinder {LBB, LBF, Edge} cylinder {RTB, RTF, Edge} cylinder {RBB, RBF, Edge} box {AA-Edge*x, BB+Edge*x} box {AA-Edge*y, BB+Edge*y} box {AA-Edge*z, BB+Edge*z} } #end #declare metal = texture { pigment {color srgb <1, 0.98, 0.96>} finish { diffuse 0.1 specular 0.5 metallic reflection 0.2 } normal { wood scale 0.0005 slope_map { [0.00 <0.5, 1.0>] [0.25 <1.0, 0.0>] [0.50 <0.5, -1.0>] [0.75 <0.0, 0.0>] [1.00 <0.5, 1.0>] } accuracy 0.0001 } } #declare metal2 = texture { pigment {color srgb <1, 0.98, 0.96>} finish { diffuse 0.1 specular 0.5 metallic reflection 0.2 } normal { wrinkles scale 0.01 bump_size 0.1 accuracy 0.0001 } } #declare f_tilt = function { pigment { waves translate <24, 18, 0> //warp {turbulence <5.0, 2.0, 1.0>} } } #local CurtainWall = #while (Ty < 110) #while (Tx < 155) union { object { RoundBox (<-0.44, -0.44, -0.44>, <0.44, 0.44, 0.44>, 0.04) scale <1, 1, 0.05> texture {metal} rotate x*(f_tilt (Tx, Ty, 0).x-0.5)*60 translate +0.5 } cylinder { <-0.5, 0, 0.04>, <0.5, 0, 0.04>, 0.0125 texture {metal2} translate +0.5 } } #declare Tx = Tx+1; #end #declare Tx = 0; #declare Ty = Ty+1; #end CurtainWall #end