Chaos Computer Club - recent audio-only feed   /     0x5f3759df - ein WTF für mehr FPS (gpn20)

Description

Im Source von Quake III Arena von 1999 findet sich ein auf den ersten Blick kurioser Algorithmus Q_rsqrt mit "evil floating point bit level hacking" zur schnellen und genauen Berechnung des Kehrwerts von Quadratwurzeln, der ein Grund für die schnelle Grafik des Spiels ist. Was für Prinzipien stecken hinter der Konstruktion des Verfahrens, und warum ist die Idee des Algorithmus über 20 Jahre später immer noch relevant? https://github.com/id-Software/Quake-III-Arena/blob/master/code/game/q_math.c /* Copyright (C) 1999-2005 Id Software, Inc., GPLv2 */ 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 return y; } about this event: https://cfp.gulas.ch/gpn20/talk/DJHG7X/

Subtitle
Duration
00:54:49
Publishing date
2022-05-20 16:15
Link
https://media.ccc.de/v/gpn20-91-0x5f3759df-ein-wtf-fr-mehr-fps
Contributors
  Sebastian Ritterbusch
author  
Enclosures
https://cdn.media.ccc.de/events/gpn/gpn20/mp3/gpn20-91-deu-0x5f3759df_-_ein_WTF_fuer_mehr_FPS_mp3.mp3
audio/mpeg