声音引擎内部内存池的默认大小非常大,这是为了确保当您首次尝试声音引擎时,能够有足够的资源来应对最坏的运行情况。
每个池的默认实际大小是:
16MB 默认内存池
16MB 底层引擎内存池
注意 | |
---|---|
如果采用示例代码来集成流播放管理器,那么还会为流播放缓冲区指派 8 MB 内存。 |
默认内存池的大小最终应当取决于您的游戏类型。例如,如果您的游戏包含几个 G 的音频素材,但同时播放超过 4 或 5 个声音的情况并不多,而且没有或很少使用效果器,那么内存可能会要求使用较大的默认内存池,而仅需要较小的底层引擎内存池。而如果您的游戏包含较少的声音,但需要同时播放所有的声音,并包含很多混响、延迟和其它环境效果(如第一人称射击游戏),那么可能会要求较小的默认内存池,但要求较大的底层引擎内存池。
底层引擎内存池的大小最终应当取决于您希望声音引擎执行处理的复杂程度。如果您的游戏将同时播放大量声音并处理大量效果,那么就需要该内存池提供更多的内存。
注意 | |
---|---|
这里也包括虚声部数量! |
在 PC 中,如果不加载音频包也不播放声音,则需要使用约 150kB 的内存。您可以在 Wwise 中查看确切内存量,方法是切换至 Profiler 布局,并在 Performance Monitor 中查看 Total Used Memory 值。当已加载资源数量、播放声部、游戏对象位置数量增加,该值将显著增长,
所需的内存池大小应当视这些因素而定:包括音频的品质、所加载声音的数量、同时播放的声部数量、声音结构的复杂性、选择的编码方法、需要处理的效果器类型和数量、3D 定位声音的数量、切换开关的数量等。
获取需要多少内存的唯一可靠方式如下:
为各内存池分配任意大小的内存。如果可以,则一开始请使用默认内存大小。
将 Wwise 连接至游戏。
使用声音引擎的 Profile 版本,运行游戏中声音最复杂的场景。
查看 Advanced Profiler 中的 Memory 选项卡。Peak Used 一栏将提示您需要使用多大的内存池。通常情况下,各个内存池的最佳大小应超出内存占用峰值的 15-20%。
减去 Communications、Monitor 和 Monitor Queue 内存池的大小。这些内存池包含仅针对调试的内存分配,而在发布版本中不存在这些分配。减去这些内存池的大小可以让您了解发行版本内存占用。
注意 | |
---|---|
无需连接至游戏,您也可了解声音引擎内存占用。只需启动捕获会话,然后在 Transport Control(播放控制)或 Soundcaster(声音选角器)中播放若干个事件或对象。用于播放这些事件或对象的内存大小将显示在 Advanced Profiler 的 Memory 选项卡中。 |