Motore fisico con posizioni a virgola fissa [chiuso]

-3

Le posizioni degli oggetti a virgola fissa consentono mondi che sono molto più scalabili. Utilizzando un numero intero a 64 bit (per dimensione) e una precisione di 0,1 millimetri, è possibile creare un mondo costituito da unità astronomiche al 100% numericamente stabili e 12.000 .

Ho cercato su Internet e non riesco a trovare un motore fisico che supporti questo.

Esiste un motore fisico 3D che utilizza valori punti fissi (vale a dire interi, si spera int-64) per le posizioni delle entità?

È per un gioco di fantascienza davvero ambizioso su cui sto lavorando.

    
posta Kent 14.02.2014 - 01:04
fonte

1 risposta

6

Non ne ho mai sentito parlare.

E ci sono dei motivi per cui nessuno lo fa in questo modo.

In primo luogo, calcoli intensamente numericamente portati a punto mobile decenni fa a causa della quantità di mal di testa coinvolti nel tenere traccia del punto decimale tra moltiplicazioni, divisioni ed esponenziamenti. Nel momento in cui colpisci le funzioni trascendentali (sin, cos, exp), muori orribilmente.

In secondo luogo, un anno luce è di circa 63000 UA, quindi il tuo "universo" è pari a 1/5 di un anno luce. Dato che Alpha Centauri è a 4,3 anni luce dal Sole, il tuo Universo è limitato a un (1) sistema solare. AL MOMENTO, è estate su Plutone, il che significa che è appena all'interno dell'orbita di Nettuno, e quindi l'intero sistema solare di base è di 60 UA (30 UA fino all'orbita di Nettuno, x 2).

Stai proponendo di usare 64 bit. Bastano circa 55 bit per rappresentare il sistema solare di base, con la precisione desiderata. Usa un altro bit e vai a 120 AU.

Ora, la precisione estesa x86 (doppia) è di 80 bit, con un bit di segno, un esponente a 15 bit e una mantissa a 64 bit. Il tuo suggerimento usa una mantissa a 64 bit, con nessun esponente. Senza mezzi termini, non ti stai risparmiando problemi scrivendo il tuo pacchetto matematico a punto fisso.

Il mio suggerimento per te è questo: Sviluppa un prototipo del tuo gioco, usando un semplice punto di virgola mobile di precisione esteso, e vedi se incontri instabilità numeriche.

    
risposta data 14.02.2014 - 03:03
fonte

Leggi altre domande sui tag