rename axis_primary_v3() to max_axis_v3() to avoid confusion with axis_dominant_v3(). also add min_axis_v3().

This commit is contained in:
Campbell Barton
2012-10-24 02:25:00 +00:00
parent 9055ec3e0a
commit 2da6039e63
4 changed files with 27 additions and 29 deletions

View File

@@ -283,7 +283,8 @@ float form_factor_hemi_poly(float p[3], float n[3],
void axis_dominant_v3(int *axis_a, int *axis_b, const float axis[3]);
MINLINE int axis_primary_v3(const float vec[3]);
MINLINE int max_axis_v3(const float vec[3]);
MINLINE int min_axis_v3(const float vec[3]);
#ifdef __cplusplus
}

View File

@@ -137,28 +137,24 @@ MINLINE void madd_sh_shfl(float r[9], const float sh[9], const float f)
add_sh_shsh(r, r, tmp);
}
MINLINE int axis_primary_v3(const float vec[3])
MINLINE int max_axis_v3(const float vec[3])
{
const float x = vec[0];
const float y = vec[1];
const float z = vec[2];
return ((x > y) ?
((x > z) ? 0 : 2) :
((y > z) ? 1 : 2));
}
if (x > y) {
if (x > z) {
return 0;
}
else {
return 2;
}
}
else {
if (y > z) {
return 1;
}
else {
return 2;
}
}
MINLINE int min_axis_v3(const float vec[3])
{
const float x = vec[0];
const float y = vec[1];
const float z = vec[2];
return ((x < y) ?
((x < z) ? 0 : 2) :
((y < z) ? 1 : 2));
}
#endif /* __MATH_GEOM_INLINE_C__ */

View File

@@ -61,7 +61,7 @@ void KeyingDespillOperation::executePixel(float output[4], float x, float y, Pix
this->m_pixelReader->read(pixelColor, x, y, sampler);
this->m_screenReader->read(screenColor, x, y, sampler);
const int screen_primary_channel = axis_primary_v3(screenColor);
const int screen_primary_channel = max_axis_v3(screenColor);
const int other_1 = (screen_primary_channel + 1) % 3;
const int other_2 = (screen_primary_channel + 2) % 3;
@@ -75,7 +75,8 @@ void KeyingDespillOperation::executePixel(float output[4], float x, float y, Pix
copy_v4_v4(output, pixelColor);
if (this->m_despillFactor * amount > 0) {
output[screen_primary_channel] = pixelColor[screen_primary_channel] - this->m_despillFactor * amount;
const float amount_despill = this->m_despillFactor * amount;
if (amount_despill > 0.0f) {
output[screen_primary_channel] = pixelColor[screen_primary_channel] - amount_despill;
}
}

View File

@@ -28,15 +28,15 @@
#include "BLI_listbase.h"
#include "BLI_math.h"
static float get_pixel_saturation(float pixelColor[4], float screen_balance, int primary_channel)
static float get_pixel_saturation(const float pixelColor[4], float screen_balance, int primary_channel)
{
int other_1 = (primary_channel + 1) % 3;
int other_2 = (primary_channel + 2) % 3;
const int other_1 = (primary_channel + 1) % 3;
const int other_2 = (primary_channel + 2) % 3;
int min_channel = min(other_1, other_2);
int max_channel = max(other_1, other_2);
const int min_channel = min(other_1, other_2);
const int max_channel = max(other_1, other_2);
float val = screen_balance * pixelColor[min_channel] + (1.0f - screen_balance) * pixelColor[max_channel];
const float val = screen_balance * pixelColor[min_channel] + (1.0f - screen_balance) * pixelColor[max_channel];
return (pixelColor[primary_channel] - val) * fabsf(1.0f - val);
}
@@ -73,13 +73,13 @@ void KeyingOperation::executePixel(float output[4], float x, float y, PixelSampl
this->m_pixelReader->read(pixelColor, x, y, sampler);
this->m_screenReader->read(screenColor, x, y, sampler);
const int primary_channel = axis_primary_v3(screenColor);
const int primary_channel = max_axis_v3(screenColor);
if (pixelColor[primary_channel] > 1.0f) {
/* overexposure doesn't happen on screen itself and usually happens
* on light sources in the shot, this need to be checked separately
* because saturation and falloff calculation is based on the fact
* that pixels are not overexposured
* that pixels are not overexposed
*/
output[0] = 1.0f;
}