Dynamic Zone Emitters: Improved Spatialization of Large Regions Bryan Pearson Senior Engineer Treyarch GDC 08 Overview Look at different techniques for representing large regions of sound Streams and Rivers Rainforests Wildfires Point Emitters Line, Spline, and Block Emitters Dynamic Zone Emitters As always... These are not hard and fast rules Use and/or adapt them to suit your game’s needs Jumping off point for drawing your own conclusions Point Emitter Sound spatialized from a single point in space Good for small objects Also good for distant objects Point Emitter Point Emitter Point Emitter Point Emitter Multiple Point Emitters Multiple Point Emitters FLANGING! Line Emitter Sound spatialized from the single point nearest to the listener on the line segment As the listener moves, the emission point moves within its range Works well for distant objects Line Emitter Only works for objects that are perfectly straight Breaks down when you cross over the line Sometimes the player can outrun the updating of the emission point Line Emitter Spline Emitter Not limited to a straight line Still breaks down crossing the spline Player may still outrun the update spLine Emitter Block Emitter Sound spatialized from the single point nearest to the listener within the block The player can outrun the emission point update, particularly when inside the block Makes the spatialization sound very jerky Dynamic Zone Emitter Single sample played from multiple positions at once Defined by: A samplecount A list of coordinates Dynamic Zone Emitter qsort the list of coordinates based on proximity to listener For each coordinate within the samplecount Calculate speaker volumes for the coordinate relative to the listener Add those volumes into temporary memory Finally, divide the accumulated speaker volumes by samplecount, to get the averaged speaker volumes Dynamic Zone Emitter Use a special falloff curve to accentuate the nearby coordinates Dynamic Zone Emitter Crossfade coordinates as they come in and out of range Simply halve the contribution of coordinates that either just entered or just left the samplecount this frame No additional storage needed, just a temp copy of the list before it was sorted for comparison Really Dynamic Zone Emitters Generate our list of coordinates programmatically Accurately depict our wildfire as it expands or contracts Really Dynamic Zone Emitters Use a list of objects rather than coordinates Allows our sample positions to move in realtime Walla As members of a crowd move around, the walla moves with them Q&A
© Copyright 2026 Paperzz