Historique des modifications - Message

Message #938

Sujet: Opérations couteuses


TypeDateAuteurContenu
Création du message01-01-2007 14:39:26Aranoth
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

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
324 invités en ligne
membre en ligne: -
RSS Feed