== Sequencer ==
authorPeter Schlaile <peter@schlaile.de>
Sun, 4 May 2008 15:39:27 +0000 (15:39 +0000)
committerPeter Schlaile <peter@schlaile.de>
Sun, 4 May 2008 15:39:27 +0000 (15:39 +0000)
Fixed order of operation in 3-way color corrector according to

http://rebelsguide.com/forum/viewtopic.php?t=810

Thanks to mindrones for pointing this out.

source/blender/src/sequence.c

index 9f3be52af1bd7a7323b1eee2ed7b1d151591b72d..0da5775c9e3906bf2ae79c0b4ebe674ec5a76961 100644 (file)
@@ -1273,8 +1273,8 @@ static void make_cb_table_byte(float lift, float gain, float gamma,
 
        for (y = 0; y < 256; y++) {
                float v = 1.0 * y / 255;
-               v += lift; 
                v *= gain;
+               v += lift; 
                v = pow(v, gamma);
                v *= mul;
                if ( v > 1.0) {
@@ -1294,8 +1294,8 @@ static void make_cb_table_float(float lift, float gain, float gamma,
 
        for (y = 0; y < 256; y++) {
                float v = (float) y * 1.0 / 255.0;
-               v += lift;
                v *= gain;
+               v += lift;
                v = pow(v, gamma);
                v *= mul;
                table[y] = v;
@@ -1371,7 +1371,7 @@ static void color_balance_float_float(Sequence * seq, TStripElem* se,
        while (p < e) {
                int c;
                for (c = 0; c < 3; c++) {
-                       p[c] = pow((p[c] + cb.lift[c]) * cb.gain[c], 
+                       p[c] = pow(p[c] * cb.gain[c] + cb.lift[c], 
                                   cb.gamma[c]) * mul;
                }
                p += 4;