Vixen
02b45cc4
csharp
public interface IAudioOcclusionProvider

Answers how much solid geometry is between a sound and the person hearing it.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

An interface, and not a reference to the physics assembly. Occlusion is a raycast and the only thing in this engine that casts rays is Vixen.Physics, which binds Jolt — a native library. A game with sound and no physics would then be shipping and loading Jolt to play a footstep, and the browser target would be shipping it to not load it. So the mixer states what it needs answered and something else answers; Vixen.Audio.Physics is that something for anybody who has physics, and a game with its own idea of what blocks sound implements this instead.

Asked on the game thread, once a frame, and not for every voice. A raycast per audible sound per frame is a real cost — sixty-four voices is sixty-four casts — so AudioOcclusion spreads them over frames and smooths between the answers. An implementation may therefore assume it is called a bounded number of times per frame and need not cache anything itself.

Methods (1)

  • float Occlusion(in Vector3 source, in Vector3 listener)

    How blocked the path is.

Used by (6)

  • AudioOcclusionVixen.Audio
  • BlockingVixen.Audio.Tests
  • ByPositionVixen.Audio.Tests
  • FixedVixen.Audio.Tests
  • PhysicsOcclusionProviderVixen.Audio.Physics
  • PhysicsOcclusionTestsVixen.Audio.Physics.Tests