Español
Fuente/ Codesnippets

Der Quake-Trick

 
- Página 1 -



p.specht

Berühmter bit-hack-Algorithmus de QUAKE III
para Invertieren de Quadratwurzeln
... se en Normierung el Longitud de 3D-Vektoren en Single precision float-Variables eingesetzt. In Ensamblador encima drei veces más rápido como 1/Sqrt() !, Fehler 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  
 



« Dieser Contribución wurde como Solución gekennzeichnet. »


Michael
W.
Nun sí, el debería wir eigentlich nachbilden puede.

Como el (Microsoft-)Floats sí mittels Single() en un Longint gespeichert voluntad puede...

// Inverse Square Root

// Def !threehalfs 1.5 // oder como wirkliche Konstante, entonces como Präfix

Proc Q_rsqrt
Parámetros number!
Declarar i&, x2!, y!
Var threehalfs! = 1.5 // con richtiger Konstante se esta Línea entonces lejos

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!)))
Volver y!
ENDPROC

Yo habe sólo a a Formel geschaut.
Einfach veces testen.
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
06.01.2021  
 




p.specht

Mutiger Intento, großes DANKE!

Sieht bien de:
// Inverse Square Root
// Def !threehalfs 1.5  // oder como wirkliche Konstante, entonces como Präfix

Proc Q_rsqrt

    Parámetros number!
    Declarar i&, x2!, y!
    Var threehalfs! = 1.5// con richtiger Konstante se esta Línea entonces lejos
    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!)))
    Volver y!

ENDPROC

Título de la ventana "Testbench para Michael Wodrichs Quake-Trick"
AppendMenubar 100,"   Testwert           Quake-Output          1/Sqrt()         Abs.Fehler         Rel.Err %"
cls:Conjunto("decimals",7):Imprimir
Declarar w!

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

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

    If %csrlin>27:WaitInput 8000:cls:Imprimir:EndIf

    EndWhile

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




Sven
Bader
Desde que gerade con el Generierung de Normalen arbeite, Yo auch veces el Hack hier ausprobiert. Für el gezeigte Ejemplo podría Yo no optischen Diferencia determinar. Ob lo en XProfan tatsächlich más rápido es Todavía no ausprobiert.

Im nächsten Schritt debería Yo de paso todavía el je 4 Normalen, que en el Schnittpunkten treffen zusammenfassen, entonces el Schattierung geglättet.


231 kB
Hochgeladen:25.09.2021
Ladeanzahl57
Descargar
 
25.09.2021  
 




p.specht

Hält sicher schön warm con el 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
Ladeanzahl62
Descargar
 
28.09.2021  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

4.764 Views

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

Themeninformationen

Dieses Thema ha 3 subscriber:

p.specht (3x)
Sven Bader (2x)
Michael W. (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie