mirror of
https://github.com/ioquake/ioq3.git
synced 2024-11-10 07:11:46 +00:00
From ludwig: This one fixes a rendering error
This commit is contained in:
parent
916cb54d72
commit
d54f831dd7
2 changed files with 14 additions and 10 deletions
|
@ -551,15 +551,17 @@ void VectorRotate( vec3_t in, vec3_t matrix[3], vec3_t out )
|
||||||
*/
|
*/
|
||||||
float Q_rsqrt( float number )
|
float Q_rsqrt( float number )
|
||||||
{
|
{
|
||||||
long i;
|
union {
|
||||||
|
float f;
|
||||||
|
int i;
|
||||||
|
} t;
|
||||||
float x2, y;
|
float x2, y;
|
||||||
const float threehalfs = 1.5F;
|
const float threehalfs = 1.5F;
|
||||||
|
|
||||||
x2 = number * 0.5F;
|
x2 = number * 0.5F;
|
||||||
y = number;
|
t.f = number;
|
||||||
i = * ( long * ) &y; // evil floating point bit level hacking
|
t.i = 0x5f3759df - ( t.i >> 1 ); // what the fuck?
|
||||||
i = 0x5f3759df - ( i >> 1 ); // what the fuck?
|
y = t.f;
|
||||||
y = * ( float * ) &i;
|
|
||||||
y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
|
y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
|
||||||
// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
|
// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
|
||||||
|
|
||||||
|
|
|
@ -131,15 +131,17 @@ SquareRootFloat
|
||||||
================
|
================
|
||||||
*/
|
*/
|
||||||
float SquareRootFloat(float number) {
|
float SquareRootFloat(float number) {
|
||||||
long i;
|
union {
|
||||||
|
float f;
|
||||||
|
int i;
|
||||||
|
} t;
|
||||||
float x, y;
|
float x, y;
|
||||||
const float f = 1.5F;
|
const float f = 1.5F;
|
||||||
|
|
||||||
x = number * 0.5F;
|
x = number * 0.5F;
|
||||||
y = number;
|
t.f = number;
|
||||||
i = * ( long * ) &y;
|
t.i = 0x5f3759df - ( t.i >> 1 );
|
||||||
i = 0x5f3759df - ( i >> 1 );
|
y = t.f;
|
||||||
y = * ( float * ) &i;
|
|
||||||
y = y * ( f - ( x * y * y ) );
|
y = y * ( f - ( x * y * y ) );
|
||||||
y = y * ( f - ( x * y * y ) );
|
y = y * ( f - ( x * y * y ) );
|
||||||
return number * y;
|
return number * y;
|
||||||
|
|
Loading…
Reference in a new issue