Concept

Racine carrée inverse rapide

vignette|droite|Les calculs de lumière (ici dans OpenArena, un jeu de tir à la première personne) utilisent la racine carrée inverse rapide pour calculer les angles d'incidence et de réflexion. La racine carrée inverse rapide (en anglais fast inverse square root, parfois abrégé Fast InvSqrt() ou par la constante 0x5f3759df en hexadécimal) est une méthode pour calculer x−1⁄2, l'inverse de la racine carrée d'un nombre à virgule flottante à simple précision sur 32 bits. L'algorithme a probablement été développé chez Silicon Graphics au début des années 1990. Il a entre autres été utilisé dans le code source de Quake III Arena, un jeu vidéo sorti en 1999. À l'époque, le principal avantage de cet algorithme était d'éviter d'utiliser des coûteuses opérations à virgules flottantes en préférant des opérations sur entiers. Les racines carrées inverses sont utilisées pour calculer les angles d'incidence et la réflexion pour la lumière et l'ombre en . L'algorithme prend en entrée des flottants de 32 bits non signés et stocke la moitié de cette valeur pour l'utiliser plus tard. Ensuite, il traite le nombre à virgule flottante comme un entier et lui applique un à droite d'un bit et le résultat est soustrait à la valeur « magique » 0x5f3759df. Il s'agit de la première approximation de la racine carrée inverse du nombre passé en entrée. En considérant de nouveau les bits comme un nombre à virgule flottante et en appliquant au nombre la méthode de Newton, on améliore cette approximation. Bien que n'assurant pas la précision la plus fine possible, le résultat final est une approximation de la racine carrée inverse d'un nombre à virgule flottante qui s'exécute quatre fois plus vite qu'une division d'un tel nombre. vignette|droite|Les normales à une surface sont largement utilisées dans les calculs d'éclairage et d'ombrage, ce qui nécessite le calcul des normes des vecteurs. Ici, on montre un champ de vecteurs normaux à la surface. Les racines carrées inverses d'un nombre à virgule flottante sont utilisées pour calculer un vecteur normalisé.

À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.

Graph Chatbot

Chattez avec Graph Search

Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.

AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.