Lots of ‘surround emulation’ or 5.1 / 7.1 modes for headphones are using vector-based amplitude panning, with a ‘snowman’ head model for some shadowing effects like inter-aural time difference.
The reason is that it’s very computationally efficient, and with a touch of light ‘room reverb’ the effect can be quite good. Consider that our threshold of detection can be quite large, up to 30 degrees for some stimulus.
High-order Ambisonics models are more accurate, and that’s what some of the modern headphones are using, based on binaural input data and spherical harmonic decomposition. It is much better for complex placement of multiple sources, and transitioning between ‘areas’ with their own environmental factors. The issue with that method is the extra horsepower needed, along with the increased margin of error.
Vertical imaging is the hardest thing to get right, especially using a generic or non-personalised HRTF. The algorithmically generated HRTFs, like Creative, Sony and Genelec appear to do a pretty good job, but it’s ‘semi-personalised’ as they're likely using a neural network to iterate through many principle component analysis methods relatively quickly to find the best fit.
As ever, there are diminishing returns and I question whether a £500 fee for a custom HRTF made from a video is really worth it. I did try to make my own from a photogrammetry mesh of my head and ear, but my phone's front camera and IR blaster lacks the resolution to make it worthwhile. If anyone has access to a laser scanner though, the tool I tried is very good:
Unilateral (single-sided) hearing loss really plays havoc with it too. For example, I only have a small magnitude offset in my right ear, and a tiny bit of tinnitus, but most 'binaural' experiments I've done show a significant vertical shift (most sounds feel to be above me) and severe front-back confusion on top.
You can play with hearing loss and placement of sources, with custom HRTF support from SOFA files using the 3D Tune-In Toolkit; it comes with VST plugins and a standalone app in the install folder. Free and open source: