fixed floating point precision inconsistency causing collisions in hsv color computation
This commit is contained in:
parent
9b47103f6f
commit
34eccf9958
|
|
@ -184,8 +184,8 @@ public:
|
||||||
h = modff(h,&dummy);
|
h = modff(h,&dummy);
|
||||||
if(h==1.0) h = 0.0;
|
if(h==1.0) h = 0.0;
|
||||||
|
|
||||||
int i = int( floor(h*6.0) );
|
int i = int( floor(h*6.0f) );
|
||||||
float f = float(h*6.0f - floor(h*6.0f));
|
float f = float(h*6.0f- floor(h*6.0f));
|
||||||
|
|
||||||
float p = v*(1.0f-s);
|
float p = v*(1.0f-s);
|
||||||
float q = v*(1.0f-s*f);
|
float q = v*(1.0f-s*f);
|
||||||
|
|
@ -242,7 +242,8 @@ inline static Color4 Scatter(int range, int value,float Sat=.3f,float Val=.9f)
|
||||||
value -= (m+1)>>1;
|
value -= (m+1)>>1;
|
||||||
m >>= 1;
|
m >>= 1;
|
||||||
}
|
}
|
||||||
else m = (m+1)>>1;
|
else m = (m+1)>>1;
|
||||||
|
|
||||||
if (r>range-b) r = range-b;
|
if (r>range-b) r = range-b;
|
||||||
|
|
||||||
//TRACE("Scatter range 0..%i, in %i out %i\n",n,a,b);
|
//TRACE("Scatter range 0..%i, in %i out %i\n",n,a,b);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue