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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2010-07-06 14:21:28 +0400
committerCampbell Barton <ideasman42@gmail.com>2010-07-06 14:21:28 +0400
commitca252e39f59a0ca71aba06bf93e40b86029f0d72 (patch)
treeaf76ec24bdbc4834ca221781074ba27f524cf366 /source/blender/nodes
parentf38511cbed143276fd1391e009a2f57025c19392 (diff)
Correction to recent color balance compositor and sequencer changes.
- In my changes lift was acting like a second gamma. - In blender 2.4x it was being added which gave ugly clipping. - in Magic Bullet Looks it scales the color about 1.0: (col - 1 * (2-lift)) + 1 Did more testing and made sure the order of applying lift/gamma/gain works the same as MagicBulletLooks (tested on Collin's mac laptop).
Diffstat (limited to 'source/blender/nodes')
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c b/source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c
index f2e5815dfeb..cd614b12794 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c
@@ -54,9 +54,10 @@ DO_INLINE float colorbalance_cdl(float in, float offset, float power, float slop
return powf(x, 1.f/power);
}
-DO_INLINE float colorbalance_lgg(float in, float lift, float gamma, float gain)
-{
- float x= powf(in * gain, lift);
+/* note: lift_lgg is just 2-lift */
+DO_INLINE float colorbalance_lgg(float in, float lift_lgg, float gamma, float gain)
+{
+ float x= (((in - 1.0f) * lift_lgg) + 1.0f) * gain;
/* prevent NaN */
if (x < 0.f) x = 0.f;
@@ -124,7 +125,7 @@ static void node_composit_exec_colorbalance(void *data, bNode *node, bNodeStack
NodeColorBalance *n= (NodeColorBalance *)node->storage;
int c;
for (c = 0; c < 3; c++) {
- n->lift_lgg[c] = 2.0f - pow(n->lift[c], 2);
+ n->lift_lgg[c] = 2.0f - n->lift[c];
}
}