Historique des modifications - Message

Message #1719

Sujet: Dessiner un cercle


Type Date Auteur Contenu
Création du message 01-03-2007 13:00:13 izguit
exact ca peut marcher comme ca aussi mais les racines carrées sont pas mal lentes non plus.

float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;
    
    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;  // evil floating point bit level hacking
    i  = 0x5f3759df - ( i >> 1 ); // what the fuck?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
    // y  = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
    
    #ifndef Q3_VM
    #ifdef __linux__
        assert( !isnan(y) ); // bk010122 - FPE?
    #endif
    #endif
    return y;
}

Fonction de racine carrée utilisée par John Carmack dans Quake 3 (license GPL attention), beaucoup plus rapide que la fonction native. (Oui oui chelou hein smile ca utilise le nombre 0x5f3759df me demandez pas à quoi il correspond wink )

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
193 invités en ligne
membre en ligne: -
RSS Feed