- 3d audio was fundamnetally broken in HTML5 and Linux for a long time (probably since original port from UE3)
- Fix is to do 3d spatialization math the same way we do it on XAudio2 (i.e. transform to listener-space then do relative source position from there)
- Since HTML5 and Linux *both* use nearly identical OpenAL implementations (and Linux has been fixed by users for a few issues), I decided to nuke the HTML5 implementation and instead link to the Linux implementation. Not sure if we should move the linux OpenAL implementation to a different folder, but it turned out not to matter for packing and testing HTML5
- Also went ahead and added a -3dB headroom factor to reduce volume overall with OpenAL implementation since it was louder than the XAudio2 implementation. I didn't do any technical measurements to come up with this headroom factor, just ear-balled it. We can do something more precise if needed.
- Tested this fix using a simple test-map of a single looping sound source. It was obviously broken (i.e. not panning) and is now obviously fixed.
[CL 2611557 by Aaron McLeran in Main branch]
UPLAT-685 (Remove Virtual File System to reduce run-time memory overhead and allow for larger worlds in HTML5)
#codereview josh.adams, james.moran
[CL 2505577 by Ankit Khare in Main branch]
- Created audio device manager which manages weak ref handles to audio devices
- Audio device handles are created with WorldContexts and accessed through UWorld objects
- All access to audio devices are now through audio device handles
- There is a main/default audio device for GEngine for use with the Editor and single worldcontext games
#codereview marc.audy, matthew.griffin
[CL 2477046 by Aaron McLeran in Main branch]
Removed GVolumeMultiplier and added an equivalent to FApp to contain the code to load the unfocused volume multiplier from config.
UE-4449 - Allow users to choose whether audio can be heard when focus is lost
#codereview Robert.Manuszewski
[CL 2341022 by Matthew Griffin in Main branch]
New files added to contain FVorbisAudioInfo and FOpusAudioInfo, added all necessary includes
Added a few more checks for whether the target platform supports audio streaming where appropriate
Moved #define to .h file as it was being used in two .cpp files (working because of unity build)
[CL 2137973 by Matthew Griffin in Main branch]
Duplicate ResourceID would have caused the same problems in HTML5 and Linux as Android. Other duplications are errors waiting to happen, there are a couple of stats functions that could be using the base class versions and not displaying the correct information.
[CL 2119229 by Matthew Griffin in Main branch]
HTML5 browser build fixes for NFS over http.
Todo: Correctly generate html5 file when serving via NFS.
howto:
- flip relevant bools in UEBuildHTML5.cs
- build html5/cooker.
- run cook on the fly server via UFE.
- Remove .data/.data.js references from .html ( see todo)
- point browser at http://cookserver:DEFAULT_FILE_SERVING_PORT/gamename.html
#codereview peter.sauerbrei
[CL 2109950 by Ankit Khare in Main branch]