POV-Ray : Newsgroups : povray.programming : Apply gamma correction after antialiasing : Apply gamma correction after antialiasing Server Time
6 Oct 2024 13:54:15 EDT (-0400)
  Apply gamma correction after antialiasing  
From: Anders K 
Date: 27 Nov 2002 13:43:57
Message: <3de5126d$1@news.povray.org>
POV-Ray currently applies gamma correction before antialiasing, while it
should be applied after antialiasing, since averaging of colors must be done
in a linear color space. For a sample picture that make this problem very
obvious, see the thread "Anti-Aliasing Problem including sample image (58k)"
in povray.binaries.images.

Here's a patch:

--- povwin-3.5-orig/source/render.cpp Sun Jul 28 00:55:32 2002
+++ povwin-3.5/source/render.cpp Wed Nov 27 13:31:48 2002
@@ -1571,6 +1571,7 @@ void Start_Adaptive_Tracing()

       POV_PRE_PIXEL (x, Current_Line_Number, Colour)
       trace_sub_pixel(1, Block, x, Current_Line_Number, 0, 0,
sub_pixel_size, sub_pixel_size, sub_pixel_size, Colour, antialias_line);
+      gamma_correct(Colour);
       POV_POST_PIXEL (x, Current_Line_Number, Colour)

       /* Do histogram stuff. */
@@ -2084,7 +2085,6 @@ static void supersample(COLOUR result, i

         Clip_Colour(colour, colour);

-        gamma_correct(colour);
         Add_Colour(result, result, colour);
       }
       else
@@ -2100,6 +2100,7 @@ static void supersample(COLOUR result, i
   /* Average pixel's color. */
   Scale_Colour(result,result,(1.0/samples));

+  gamma_correct(result);
 }


@@ -2330,8 +2331,6 @@ static void trace_ray_with_offset(int x,
       }

       Clip_Colour(Colour, Colour);
-
-      gamma_correct(Colour);
     }
     else
     {

--
light_source{6#local D=#macro B(E)#macro A(D)#declare E=(E-#declare
C=mod(E D);C)/D;C#end#while(E)#if(A(8)=7)#declare D=D+2.8;#else#if(
C>2)}torus{1..2clipped_by{box{-2y}}rotate<1 0C>*90translate<D+1A(2)
*2+1#else}cylinder{0(C-v=1).2translate<D+C*A(2)A(4)#end-2 13>finish
{specular 1}pigment{rgb x}#end#end#end-8;1B(445000298)B(519053970)B
(483402386)B(1445571258)B(77778740)B(541684549)B(42677491)B(70)}


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.