Ho anche pensato a questo. Ho sentito la preoccupazione principale (in termini di realismo / compromesso delle prestazioni) era che spazialmente le tue orecchie sono inferiori ai tuoi occhi - e accettano abbastanza facilmente qualcosa che potrebbe non essere realistico quanto i tuoi occhi avrebbero bisogno. Esistono ottime possibilità che provare a modellare perfettamente il suono nell'ambiente locale sia eccessivo: EAX è probabilmente "abbastanza buono".
In un ambiente chiuso (ad es. Quake) calcolerei innanzitutto due proprietà per ogni stanza: "transferrance" e immersione:
Il transferrance indicherebbe come il suono verrebbe influenzato viaggiando attraverso questa stanza e conterebbe molto probabilmente verso un EQ parametrico (idealmente aggiungeresti eco / riverbero da ogni stanza, ma il tuo chip EAX potrebbe non avere così tanta larghezza di banda). L'EQ parametrico simulerebbe infine anche l'attenuazione del suono.
L'immersione sarebbe calcolata dividendo la stanza in nove cubi (forse, anche solo uno potrebbe essere abbastanza buono) e calcolando le proprietà del suono locale da quella prospettiva. Questi parametri verrebbero utilizzati nell'ambiente EAX.
Infine, ciascuna delle tue stanze verrebbe connessa da un grafico, in cui ogni punto nel grafico sono i portali che collegano ogni stanza.
Quando si attiva il suono, esegui un riempimento di piena (nessuna ricerca A *) e tieni traccia del trasferimento e della distanza percorsa. Quando il suono raggiunge il lettore, lo metti in coda per suonare ad un certo punto in futuro; in base alla distanza percorsa. È possibile tenere traccia del numero di punti del grafico passati ed eventualmente "abbattere" il suono (in altre parole, un riempimento continuo). Potrebbe essere necessario utilizzare CUDA per fare ciò in quanto potrebbe essere associato alla CPU.
Quando viene riprodotto un suono, si utilizza un'API 3D del suono (OpenAL) e la si colloca nel portale in cui è entrato, quindi si scoprirà in quale dei nove cubi si trova il lettore e si applica quell'ambiente EAX.
La cosa bella qui è che se il tuo ambiente è sufficientemente complesso otterresti echi 'globali' gratuiti e i giocatori percepiranno il suono proveniente dalla giusta direzione; e se si ottiene l'ambiente EAX corretto si spera che l'effetto sarebbe abbastanza convincente da essere accettato dal cervello.