Echogram Refinement

Empty Bins

EAX properties can only be calculated correctly if the emitter's echogram contains enough data. Echograms are rendered in the debug window, and show how much energy is returning back to the emitter over time. The length of the echogram is determined by emitter.MaxEchogramTime, and the duration of each 'bin' (a bar in the image below) is controlled by emitter.EchogramGranularity.

Red bars indicates bins with zero energy, and they break the calculation of EAX properties such as decay time, diffusion, density and delay:

echogram_with_gap.png

To ensure there are no gaps in your echograms, you can either:

An echogram with higher granularity has fewer bins and is less likely to have gaps:

echogram_without_gaps.png

EchogramGranularity defaults to 10 (milliseconds) - increase it to 20, 30, 40, etc. until your echogram no longer has any red gaps. Alternatively, increase the number of reverb rays until all bins are populated.

Max Duration

Echograms default to 1000ms in length (emitter.MaxEchogramTime), which suits most indoor environments. But if you have a large building, or highly reflective materials, this might not be enough to fully capture the reverb tail.

For example, for a large building with a reflective concrete material, an echogram with 1000ms worth of data looks like this:

short_echogram.png

The bars on the far right still contain energy, which means our echogram isn't long enough. I recommend increasing MaxEchogramTime until you see red bars at the end:

echogram_with_red_bars_at_end.png

This means the echogram is now large enough to capture reverb for the 'worst case' scenario, i.e. the largest/most reflective environment in your game. This ensures all environments in your game will have correct reverb as well.

Summary

In the image below:

three_echograms.png