나는 또한 이것을 약간 생각했다. (현실주의 / 성능 절충 측면에서) 주요 관심사는 공간적으로 귀가 눈보다 열등하다는 것입니다. 눈에 필요한 것만 큼 현실적이지 않은 것을 쉽게 받아 들일 수 있습니다. 로컬 환경에서 사운드를 완벽하게 모델링하려고 시도하는 것은 과도 할 가능성이 매우 높습니다. EAX는 아마도 '충분히'좋습니다.
닫힌 환경 (예 : Quake)에서 나는 먼저 각 방에 대해 'transferance'와 immersion의 두 가지 속성을 계산합니다.
트랜스퍼 런스 는이 룸을 통해 여행 할 때 사운드가 어떻게 영향을 받는지를 나타내며 파라 메트릭 EQ로 계산 될 것입니다. 파라 메트릭 EQ는 궁극적으로 사운드 감쇠를 시뮬레이션합니다.
침수 는 방을 9 개의 큐브로 나누고 (아마도 하나만으로도 충분할 수 있음) 해당 관점에서 로컬 사운드 속성을 계산하여 계산됩니다. 이 매개 변수는 EAX 환경에서 사용됩니다.
마지막으로 각 방은 그래프로 연결되며 그래프의 각 지점은 각 방을 연결하는 포털입니다.
소리가 울리면 플러드 필 (A * 검색 없음)을 수행하고 이동 거리와 이동 거리를 추적합니다. 사운드가 플레이어에 도달하면 나중에 어느 시점에서 재생하기 위해 대기합니다. 이동 한 거리를 기준으로합니다. 전달 된 그래프 포인트 수를 추적하고 결국 사운드를 '컬러'(즉, 연속적인 홍수 채우기) 할 수 있습니다. CPU 바인딩을 얻을 수 있으므로 CUDA를 사용해야 할 수도 있습니다.
사운드가 재생되면 3D 사운드 API (OpenAL)를 사용하여 입력 한 포털에 배치하면 플레이어가 현재있는 9 개의 큐브 중 어떤 큐브를 찾아 해당 EAX 환경을 적용 할 수 있습니다.
여기서 깔끔한 점은 환경이 충분히 복잡한 경우 무료 '전역'에코가 발생하고 플레이어가 올바른 방향에서 나오는 소리를 감지한다는 것입니다. EAX 환경을 올바르게 이해한다면 그 효과가 뇌가 그것을 받아 들일 정도로 설득력이있을 것입니다.