Gå til innhold

3d lyd eller lydillusjoner


Anbefalte innlegg

Videoannonse
Annonse
Jeg sliter litt med å skjønne hvorfor dette ikke er tatt i bruk i spill.

 

Fordi dette er en opptaksteknikk, ikke en avspillingsteknikk. Den matematiske modellen som skal til for å gjenskape dette for monokilder er uhyre komplisert, og det er ingen som har klart å gjenskape den realisme som kunsthodeopptak gir.

Endret av Distressor
Lenke til kommentar
Den matematiske modellen som skal til for å gjenskape dette for monokilder er uhyre komplisert, og det er ingen som har klart å gjenskape den realisme som kunsthodeopptak gir.

Egentlig ikke, men det krever datakraft. Man kan få til veldig realistiske modeller med speilkilde/strålegangsberegninger og HRTF. :)

Lenke til kommentar
Den matematiske modellen som skal til for å gjenskape dette for monokilder er uhyre komplisert, og det er ingen som har klart å gjenskape den realisme som kunsthodeopptak gir.

Egentlig ikke, men det krever datakraft. Man kan få til veldig realistiske modeller med speilkilde/strålegangsberegninger og HRTF. :)

 

HRTF ja. Den må ta hensyn til utforming av ørene og hvordan disse reflekterer / blokkerer lyd ved ulike frekvenser avhengig av hvor kilden befinner seg, det må taes hensyn til veiforskjellen mellom kilde -> trommehinne i det ene øret vs. kilde -> trommehinne i det andre øret, det må taes hensyn til hvordan hodet i seg selv blokkerer lyd ved ulike frekvenser for øret på andre siden av hodet avhengig av angrepsvinkel og man må hele tiden beregne forholdene mellom direktelyd og reflektert lyd. Reflektert lyd (romklang) har mye å si for hvor naturtro lyden vil oppfattes. Å plassere en kilde i et virtuelt rom låter ikke naturtro hvis ikke forholdet mellom direktelyd og romklang er riktig, og de fleste spill idag bruker jo omtrent ikke romklang på noe vis. Siste spill jeg spilte som prøvde seg en implementasjon av romklang, var Half Life 2, og selv ikke der låt det spesielt overbevisende. Det er en grunn til at realistiske, digitale modeller av romklang er noe av det mest ressurskrevende man bruker når man jobber med lydbearbeiding.

 

Har du 10 44.1 KHz, 16-bit lyder som beveger seg i rommet, og to ulike, realistiske romklang-modeller som ligger der, har du nok brukt opp store deler av datakraften din allerede. Det er ikke lenge siden man kunne sette spill til å bruke 22 KHz-lyder istedenfor 44 KHz for å spare datakraft - og det var på helt simpel stereo.

 

Alle disse parametrene må interpoleres i sanntid - og jeg har ennå tilgode å se noen fungerende datamodeller av dette som er noe i nærheten av så overbevisende som et binauralt opptak er.

 

...pr. nå ;)

Endret av Distressor
Lenke til kommentar

Kjekt at du lister opp ting vi har vært igjennom i posten allerede, men poenget mitt var at det ikke er "uhyre komplisert", men bare at det trenger datakraft.

 

Som du sier så vet alle som har prøvd en eller annen form for "streaming convolution" at det krever datakraft. I tillegg skal man regne ut en impulsrespons, noe som er enda mer heftig. Men det er egentlig ikke særlig komplisert. :)

Lenke til kommentar
Kjekt at du lister opp ting vi har vært igjennom i posten allerede, men poenget mitt var at det ikke er "uhyre komplisert", men bare at det trenger datakraft.

 

Som du sier så vet alle som har prøvd en eller annen form for "streaming convolution" at det krever datakraft. I tillegg skal man regne ut en impulsrespons, noe som er enda mer heftig. Men det er egentlig ikke særlig komplisert. :)

 

Hvorfor er det ingen som har implementert det? Etterligningene jeg har hørt i EAX osv. suger jo i forhold til ordentlig kunsthodestereo.

 

At noe krever mye datakraft over kort tid, betyr vel nødvendigvis at det er "komplisert" / mange parametere som skal beregnes med stor nøyaktighet, gjør det ikke? Presise digitale modeller av analoge fenomener, som eksempelvis båndmetning og rørvreng, er en mer eller mindre evig prosess for å oppnå bedre og bedre "approximation". Vi er tydeligvis ikke helt der ennå når det gjelder etterligning av binaural stereo ;)

 

Jeg savner hvertfall stort mer naturtro lydgjengivelse i eksempelvis dataspill, og jeg tror det er et marked som skriker etter tilfredsstillelse her ;)

Endret av Distressor
Lenke til kommentar
Kjekt at du lister opp ting vi har vært igjennom i posten allerede, men poenget mitt var at det ikke er "uhyre komplisert", men bare at det trenger datakraft.

 

Som du sier så vet alle som har prøvd en eller annen form for "streaming convolution" at det krever datakraft. I tillegg skal man regne ut en impulsrespons, noe som er enda mer heftig. Men det er egentlig ikke særlig komplisert. :)

 

Hvorfor er det ingen som har implementert det? Etterligningene jeg har hørt i EAX osv. suger jo i forhold til ordentlig kunsthodestereo.

Fordi det dessverre kun fungerer med hodetelefoner (man kan altså ikke bruke sitt nye, dyre høyttalersystem), og (gode/brukbare) HRTF filer blir laget for spesifikke hodelefonmodeller (eksempelvis vil en HRTF for et en Sennheiser-modell ikke passe for en annen Sennheiser-modell). HRTF er altså ikke så "anvennelig" som kreves. Og HRTF-biten er jo bare en liten del. Impulsresponsen skal også beregnes.

 

At noe krever mye datakraft over kort tid, betyr vel nødvendigvis at det er "komplisert" / mange parametere som skal beregnes med stor nøyaktighet, gjør det ikke? Presise digitale modeller av analoge fenomener, som eksempelvis båndmetning og rørvreng, er en mer eller mindre evig prosess for å oppnå bedre og bedre "approximation". Vi er tydeligvis ikke helt der ennå når det gjelder etterligning av binaural stereo ;)

Å gjøre en speilkildeberegning og/eller strålegangsberegning er "matematisk enkelt". Jeg har selv laget en speilkildemetode i Excel, og skriver littegranne på min egen strålegangsberegning. Vi vet alle at 1+1 er en enkel beregning, men gjøres den mange nok ganger så tar det tid. ;)

 

Jeg savner hvertfall stort mer naturtro lydgjengivelse i eksempelvis dataspill, og jeg tror det er et marked som skriker etter tilfredsstillelse her ;)

Det kommer nok med tiden som det meste annet. Det er jo snakk om flere ting som spiller inn:

- Hvor nøyaktig trenger man impulsresponsen?

- Klarer man å komme frem til HRTF'er som fungerer tilfredstillende?

- Og er dette filleberegninger på maskinvare om 5-10 år? Her har det jo tross alt skjedd en revolusjon i de siste 5-10 år. ;) Muligens (og kanskje ikke usannsynlig) vil man få en egen "impulsresponsbrikke" som standard på lik linje med våre dedikerte grafikkprosessorer.

Lenke til kommentar
- Hvor nøyaktig trenger man impulsresponsen?

- Klarer man å komme frem til HRTF'er som fungerer tilfredstillende?

 

Blir ikke det noenlunde det samme da? HRTF er jo en slags modell for hvordan oppfattet lyd moduleres av hodeform, altså en modell for impulsrespons avhengig av hvor lyden kommer fra?

Lenke til kommentar

Nei, det er ikke helt det samme. :)

 

- HRTF kan enkelt sett betraktes som funksjoner som trengs for å konvertere 3D til våre ører som er "2D".

- Impulsresponsen forteller "nøyaktig" (avhengig om den er målt eller beregnet) hvordan responsen til selve rommet er (altså om akustiske parametre som etterklangsforløp, direktelyd, tidlige refleksjoner, etc, etc).

 

De er i slekt med hverandre men ikke det samme.

 

Et lite eksempel:

Jeg har laget en 3D modell av et rom. I denne putter jeg en lydkilde og en mottaker. Det kan jeg bruke til å beregne impulsresponsen. Den kan jeg folde over et signal for å få farget signalet som om det var spilt av i rommet. For å få det til å høres ut som om jeg er der må impulsresponsen bearbeides av HRTF (og dette gjøres mens den beregnes, ikke i etterkant) for mitt Sennheiser HD515 (greit og billig headsett som har HRTF). Både impulsresponsen og HRTF er avhengig av kildens plassering i forhold til mottakeren, så vi snakker jo om litt beregningstid.

 

Nedenfor vises "impulsresponsen" (her egentlig bare refleksjoner) til venstre, en markert refleksjon i rødt, og denne refleksjonen vist i 3D modellen til høyre sammen med innfallsvinkler i midten. Denne modellen forutsetter at mottakeren "retter ansiktet" mot senderen. Og det er generelt sett en enkel rom-modell.

 

post-13975-1213340606_thumb.jpg

Lenke til kommentar

Ok, impulsrespons er ikke helt utvetydig. Det er kun et uttrykk for hvordan en impuls ser ut etter at den har vært gjennom en eller annen "mølle".

 

Jeg ser for meg HRTF som en matematisk modell for impulsresponsen til den menneskelige hørsel. Hvis du har en sirkulær innretning med høyttalere, et kunsthode i sentrum, og kan rotere høyttalerringen rundt hodet, kan du i praksis få en tilnærmet modell for HRTF i rommet både vertikalt og horisontalt, eller en serie "impulsresponser" for kunsthodet, om du vil.

 

Sånn tenkte jeg, hvertfall.

Lenke til kommentar
Ok, impulsrespons er ikke helt utvetydig. Det er kun et uttrykk for hvordan en impuls ser ut etter at den har vært gjennom en eller annen "mølle".

Og det har du selvfølgelig rett i. Når jeg sier "impulsrespons" så mener jeg egentlig "impulsresponsen til et gitt rom fra en definert sender til en mottaker". Beklager, jeg kunne vært tydeligere på det. Man kan jo ta impulsresponsen til mye, men jeg tenkte at her er det ikke så mange alternativer. ;)

 

Jeg ser for meg HRTF som en matematisk modell for impulsresponsen til den menneskelige hørsel. Hvis du har en sirkulær innretning med høyttalere, et kunsthode i sentrum, og kan rotere høyttalerringen rundt hodet, kan du i praksis få en tilnærmet modell for HRTF i rommet både vertikalt og horisontalt, eller en serie "impulsresponser" for kunsthodet, om du vil.

Og det er også ganske riktig. Bare at det egentlig ikke er en impulsrespons, men man kan (bl.a.) bruke en HRIR (altså en "Head related impulse response") til å finne HRTFen. Altså en "bearbeidet impulsrespons". Men dette trengs ikke gjøres fortløpende, man kan ha et "bibliotek" av HRTF'er (og det har man vanligvis i applikasjoner som bruker HRTFer).

 

Mitt store poeng er at for å "bra lydopplevelse i spill" så må man fortløpende regne ut den "romlige impulsresponsen" (som er den heftigste beregningen) og så bruke rettningsdata for å velge tilhørende HRTF. Og dette skal gjøres i sanntid. Det er absolutt ikke umulig, men det skal litt til for at det skal fungere pr. dags dato.

Lenke til kommentar

Da er vi inne på noe. Personlig tror jeg ikke det er nødvendig med ray-traced reverb for en fullgod opplevelse av romklang, men snarere en mengde gode generiske klangalgoritmer som man så kan interpolere mellom utifra hva slags miljø man befinner seg i. Den formen for ray-traced reverb jeg har hørt i spill hittil, er såpass grov at det høres mer ut som multiple ekko. Men det er vel også kun et utslag av at man forsøker å holde litt igjen på ressursbruken ved å begrense antall "lydstråler" i beregningen.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...