Historique des modifications - Message

Message #938

Sujet: Opérations couteuses


Type Date Auteur Contenu
Création du message 01-01-2007 14:39:26 Aranoth
Les méthodes réputés gourmandes dans tout les moteurs sont les racines carrés "SQRT" pour les calculs de distance par exemple.Il vaut mieux préférer un calcul par vecteur si l'on a la possibilité de le coder de cette manière.

D'ailleurs petits conseils :

Dans les calculs de distance entre deux points, on utilise souvent pythagore et la racine carré intervient. Or il est plus rapide de comparer les carrés que de s'encombrer d'une racine.

Ou alors faire appel à Carmack :
float SquareRootFloat(float number)
{
    long i;
    float x, y;
    const float f = 1.5F;
    
    x = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;
    i  = 0x5f3759df - ( i >> 1 );
    y  = * ( float * ) &i;
    y  = y * ( f - ( x * y * y ) );
    y  = y * ( f - ( x * y * y ) );
    return number * y;
}

(code en licence GPL, attention !)

Cette fonction tirée de Quake3 est réputée très rapide

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
171 invités en ligne
membre en ligne: -
RSS Feed