Repository navigation
Spatial Clustering 3.0 - #10
Merged
Merged
Conversation
…direction from the listener - inputs join a cluster within the join angle and leave it beyond the leave angle after the dwell time - moves between clusters are crossfaded through per-input gain ramps - nearby clusters merge after the dwell time, and the cheapest pairs merge when outputs exceed the budget - cluster positions are loudness weighted, inputs near the listener or above a priority are never merged - all memory comes from one block through a ClusterAllocator, nothing is allocated per frame
…terEngine - cluster_harness test runs the assertion suite and is registered with CTest - cluster_harness bench times Update for 64 to 1024 inputs - cluster_harness scenario prints or writes per-frame results for seeded scenes - builds with CMake and needs no Wwise SDK
- mono 3D inputs are clustered, multichannel and partly 2D inputs pass through untouched - cluster outputs are mono and mixed with the engine's gain ramps, outputs are created in one batch and fetched once per frame - clusters carry the highest member priority, a spread from their angular size and the loudest member's custom metadata - new parameters: join angle, leave ratio, dwell time, crossfade time, max outputs, near-field radius, distance weight, exclude priority above, spread from size and loudness weighting - the parameter block is validated, and the plugin posts Capture Log messages for a missing object bus, failed output creation, memory and the output budget - the authoring plugin writes every parameter and uses the Wwise 2025 macro names - remove SpatialClusterer, Utilities and KMeansTest
- how the clustering works, the parameters with their ranges and defaults, and bus setup - profiling tips, the Capture Log messages and building for Wwise 2025 - how to run the harness without a game
…ide and issue templates
…and with clustering
…dio 2022 and drop empty packages
…rest in the property editor
…eparate pull request
… against the code and the benchmark
…bject limit, priority threshold, proximity radius, hold time, distance sensitivity and cluster spread
…the plug-in with add_subdirectory
phevosccp
marked this pull request as ready for review
October 16, 2026 15:08
ccp-zoetrope
approved these changes
Oct 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changelist
Rewrites the plug-in around a new clustering engine and renames it from ObjectCluster to Spatial Clustering 3.0.0 for Wwise 2025.1.
The old engine re-clustered positions every frame against a distance threshold. The new one groups inputs by direction from the listener into clusters that persist across frames, and crossfades inputs that change cluster.
ClusterEngineincore/, plain C++17 using the Wwise plug-in allocator. It clusters mono and stereo 3D inputs, passes everything else through, and can exclude high-priority and near-field inputs. An optional output budget merges the closest clusters.core/, Wwise project inwwise/. A single version file, a release script that packages a Wwise Launcher bundle, and a CMake build for the runtime and authoring plug-ins.core/teststhat don't need the Wwise SDK, plus a browser viewer that compares scenarios with and without clustering. CI runs the tests on Windows, Linux and macOS.Testing
Tested for EVE Frontier
Clustering bypassed
Clustering enabled
Upgrading from 2.0.0 or earlier
SpatialClusteringFX.liband includeSpatialClusteringFXFactory.h, or shipSpatialClustering.dll. Then regenerate SoundBanks.