버전

menu_open
Wwise SDK 2019.2.15
사용자 지정으로 오디오 렌더링의 작업 일정 짜기

오디오 렌더링 스레드

기본적으로 Wwise 사운드 엔진은 모든 명령 처리와 오디오 렌더링을 전용 스레드인 AK::EventManager 에서 처리하며, 이는 AkPlatformInitSettings::threadLEngine 매개 변수로 제어됩니다. AK::SoundEngine::RenderAudio 를 호출하면 게임 프레임의 끝 신호를 주고 해당 스레드가 이전의 RenderAudio 호출 이후의 모든 API 명령을 소비하도록 합니다.

AkInitSettings::bUseLEngineThreadfalse 로 설정하면 이 스레드를 비활성화하고, RenderAudio 가 동기식으로 명령 처리를 하게 만들며, 필요한 경우 오디오를 렌더링합니다. 실제 오디오 출력 레이트는 그대로 오디오 말단에 의해 제어됩니다. RenderAudio 호출 간격이 AkInitSettings::uNumSamplesPerFrame 에서 정의한 버퍼 시간과 출력 샘플 레이트보다 짧을 경우, 일부 RenderAudio 호출은 오디오 렌더링 부분을 건너뛸 수 있습니다. 반대로, RenderAudio 호출 간격이 출력 버퍼 시간보다 길 경우에는 RenderAudio 가 한 번에 둘 이상의 버퍼를 처리해 CPU 사용률이 갑자기 치솟을 수 있고 결국 오디오가 지직거리는 현상이 발생할 수 있습니다.

오디오 렌더링 스레드를 비활성화했을 때, 동기화된 AK::SoundEngine::LoadBankAK::SoundEngine::UnloadBank API 호출은 RenderAudio 호출자와 동일한 스레드에서 처리해서는 안됩니다 .

AkInitSettings::bUseLEngineThread 를 false로 설정했을 때 CoInitializeEx() 는 AK::SoundEngine::Render() 를 호출하는 스레드에서 호출돼야 합니다. (STA를 사용하기 때문).

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

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

개별 Bus와 Voice 작업의 병렬 처리는 AkInitSettings::taskSchedulerDesc 에서 활성화할 수 있습니다. Wwise는, 안전하게 동시 실행할 수 있는 모든 작업 그룹에 대해 AkTaskSchedulerDesc::fcnParallelFor 콜백을 호출합니다. 이 요청은 게임 단의 작업 스케줄러로 전달되어, 작업자 스레드들에 걸쳐 처리 범위를 분산합니다.

주의
병렬 처리를 활성화하면, 일부 AK::SoundEngine 콜백이 동시 작업 스케줄러 스레드로부터 생성됩니다.
일부 플러그인은 병렬 처리를 지원하지 않을 수 있습니다.

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

지원이 필요하신가요?

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

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

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

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

Wwise를 시작해 보세요