0x5f3759df

Polecono: 3 stycznia 2021

Materiał: https://www.youtube.com/watch?v=p8u_k2LIZyo

W świecie silników graficznych jedną z kluczowych operacji jest obliczanie odwrotności pierwiastka dodatniej liczby rzeczywistej. Niestety naiwne rozwiązanie 1 / sqrt(x) jest bardzo powolne. Na szczęście z pomocą przychodzi algorytm Szybkiej odwrotności pierwiastka kwadratowego (ang. Fast inverse square root). Jego najsłynniejsza implementacja pochodzi z kodu źródłowego gry Quake III Arena.

Polecamy przeze mnie dzisiaj film we wcale przystępny sposób opowiada o tym dlaczego występuje potrzeba tego algorytmu, jak działają jego poszczególne kroki i skąd się wzięła ta dziwaczna liczba, zawarta w tytule tego wpisu. Do jego zrozumienia potrzebna jest pewna wiedza o języku programowania C (czym są wskaźniki i jak komputer przechowuje zmienne w pamięci), oraz podstawowe pojęcie o pochodnych (dla zrozumienia metody Newtona).

Tych bardziej głodnych dokładniejszego wytłumaczenia zaplecza matematycznego — chociaż muszę przyznać, że autor filmu nie przelatuje tutaj po łebkach — i głębszej analizy błędu tego przybliżenia, zapraszam do przestudiowania tego artykułu.