버전
menu_open
알림: 고객님의 주요 출시 버전( 2021.1.14.8108 )에 해당하는 최신 설명서로 이동했습니다. 특정 버전의 설명서를 보시려면 Audiokinetic 런처에서 오프라인 설명서를 다운로드하고 Wwise Authoring의 Offline Documentation을 확인하세요.
Wwise SDK 2021.1.14
Custom Scheduling of Audio Rendering

오디오 렌더링 스레드

기본적으로 Wwise 사운드 엔진은 모든 명령 처리와 오디오 렌더링을 전용 스레드인 AK::EventManager 에서 처리하며, 이는 AkPlatformInitSettings::threadLEngine 매개 변수로 제어됩니다. Calling AK::SoundEngine::RenderAudio signals the end of a game frame and allows the thread to consume all API commands received since the previous call to RenderAudio.

Setting AkInitSettings::bUseLEngineThread to false disables this thread and causes RenderAudio to run synchronously: processing commands and, if needed, rendering audio. 실제 오디오 출력 레이트는 그대로 오디오 말단에 의해 제어됩니다. If the RenderAudio call interval is shorter than the buffer period determined by AkInitSettings::uNumSamplesPerFrame and the output sample rate, some calls to RenderAudio will skip the audio rendering portion. Conversely, if the RenderAudio call interval is longer than the output buffer period, RenderAudio may process more than one buffer at a time, causing a CPU usage spike, and may eventually cause the audio to stutter.

Enabling offline rendering disables asynchronous command processing and audio rendering from the audio thread. The amount of audio rendered per call to RenderAudio is determined by a positive non-zero value sent to AK::SoundEngine::SetOfflineRenderingFrameTime. A zero or negative value will force RenderAudio to process precisely one audio buffer.

경고: With the audio rendering thread disabled or with offline rendering enabled, synchronous AK::SoundEngine::LoadBank and AK::SoundEngine::UnloadBank API calls must not be made from the same thread as the caller of RenderAudio. This is because these calls may block until an audio buffer is rendered to complete Stop operations and free SoundBank media, which won't happen without a concurrent call to RenderAudio.

On Microsoft platforms, due to the use of a single-threaded apartment (STA) concurrency model, CoInitializeEx() must be called from the same thread that calls AK::SoundEngine::RenderAudio when setting AkInitSettings::bUseLEngineThread to false.

Using Query API Functions

Certain AK::SoundEngine::Query functions can cause CPU spikes. To minimize wasted CPU time and ensure optimal performance, we recommend that you follow these guidelines:

  • Use the Query functions in development builds and avoid using them in production builds.
  • If it is necessary to use Query functions, use them inside SoundEngine global callbacks (see AkGlobalCallbackLocation). For example, if you have to read RTPC values, put the code in AkGlobalCallbackLocation_BeginRender or AkGlobalCallbackLocation_EndRender.

오디오 렌더링 작업의 병렬 처리

기본적으로 Wwise 사운드 엔진은 Bus와 Voice를 오디오 렌더링 스레드에서 처리합니다.

Parallel execution of individual Bus and Voice tasks can be enabled via AkInitSettings::taskSchedulerDesc. Wwise will call the AkTaskSchedulerDesc::fcnParallelFor callback for any group of tasks that can be safely executed concurrently. 이 요청은 게임 단의 작업 스케줄러로 전달되어, 작업자 스레드들에 걸쳐 처리 범위를 분산합니다.

참고: When enabling parallel execution, some AK::SoundEngine callbacks will be generated from concurrent task scheduler threads.
참고: 일부 플러그인은 병렬 처리를 지원하지 않을 수 있습니다.

이 페이지가 도움이 되었나요?

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요