Français
Source/ Codesnippets

qui Quake-Trick

 
- page 1 -



p.specht

Berühmter bit-hack-Algorithmus aus QUAKE III
zum Invertieren de Quadratwurzeln
... wird chez qui Normierung qui Longueur de 3D-Vektoren dans Single precision float-Variablen eingesetzt. dans Assembler sur trois la fois plus rapide comme 1/Sqrt() !, faute max. 1 %:

Youtube-Link (engl.):  [...] 
 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
03.01.2021  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »


Michael
W.
eh bien, den devrait wir eigentlich nachbilden peut.

là qui (Microsoft-)Floats oui mittels Single() dans einem Longint gespeichert volonté peut...

// Inverse Square Racine

// Def !threehalfs 1.5 // ou bien comme wirkliche Konstante, ensuite comme Präfix

Proc Q_rsqrt
Paramètres number!
Déclarer i&, x2!, y!
Var threehalfs! = 1.5 // avec richtiger Konstante wird cet la ligne ensuite entfernt

x2! = number! * 0.5
y! = number!

i& = Single(y!)
i& = $5F3759DF - (i& >> 1)
y! = Double(i&)

y! = y! * (threehalfs! - (x2! * y! * y!)) // y! * (threehalfs! - (x2! * Sqr(y!)))
// y! = y! * (threehalfs! - (x2! * y! * y!)) // y! * (threehalfs! - (x2! * Sqr(y!)))
Retour y!
ENDPROC

j'ai seulement jusqu'à zur Formel geschaut.
simple la fois testen.
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
06.01.2021  
 




p.specht

Mutiger Versuch, großes DANKE!

Sieht bien aus:
// Inverse Square Racine
// Def !threehalfs 1.5  // ou bien comme wirkliche Konstante, ensuite comme Präfix

Proc Q_rsqrt

    Paramètres number!
    Déclarer i&, x2!, y!
    Var threehalfs! = 1.5// avec richtiger Konstante wird cet la ligne ensuite entfernt
    x2! = number! * 0.5
    y!  = number!
    i&  = Single(y!)
    i&  = $5F3759DF - (i& >> 1)
    y!  = Double(i&)
    y!  = y! * (threehalfs! - (x2! * y! * y!))// y! * (threehalfs! - (x2! * Sqr(y!)))
    '//y!  = y! * (threehalfs! - (x2! * y! * y!))  // y! * (threehalfs! - (x2! * Sqr(y!)))
    Retour y!

ENDPROC

Titre de la fenêtre "Testbench pour Michael Wodrichs Quake-Trick"
AppendMenubar 100,"   Testwert           Quake-Output          1/Sqrt()         Abs.faute         Rel.Err %"
cls:Set("decimals",7):Imprimer
Déclarer w!

WhileLoop 1,999999,50:w!=&Boucle/100//generiert 5000 test steps

    Imprimer "  ",w!,Q_rsqrt(w!),1/Sqrt(w!),(Q_rsqrt(w!)-1/Sqrt(w!)),(Abs(Q_rsqrt(w!)-1/Sqrt(w!))/(1/Sqrt(w!)))*100,"%"

    Si %csrlin>27:WaitInput 8000:cls:Imprimer:EndIf

    Endwhile

    Imprimer:Imprimer "---":Beep
    WaitInput
    Fin
 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
06.01.2021  
 




Sven
Bader
là je justement avec qui Generierung de Normalen arbeite, habe je aussi la fois den Hack ici ausprobiert. Pour cela gezeigte Beispiel konnte je keinen optischen Unterschied feststellen. si es dans XProfan réellement plus rapide ist habe je encore pas ausprobiert.

Im prochain Schritt devrait je incidemment encore qui je 4 Normalen, qui sich dans den Schnittpunkten rendez-vous zusammenfassen, ensuite ist qui répartition des ombres geglättet.


231 kB
Hochgeladen:25.09.2021
Downloadcounter57
Download
 
25.09.2021  
 




p.specht

Hält sûrement joli chaleureux avec den vielen Haaren!
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
27.09.2021  
 




Sven
Bader



301 kB
Hochgeladen:28.09.2021
Downloadcounter62
Download
 
28.09.2021  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

4.750 Views

Untitledvor 0 min.
Gast.0815Gestern (15:29)
Member 862464112.05.2024
Axel Berse13.08.2023
Sven Bader01.02.2023
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie