X3DAUDIO_DSP_SETTINGS 구조체(x3daudio.h)
X3DAudioCalculate 호출에서 결과를 받습니다.
구문
typedef struct X3DAUDIO_DSP_SETTINGS {
FLOAT32 *pMatrixCoefficients;
FLOAT32 *pDelayTimes;
UINT32 SrcChannelCount;
UINT32 DstChannelCount;
FLOAT32 LPFDirectCoefficient;
FLOAT32 LPFReverbCoefficient;
FLOAT32 ReverbLevel;
FLOAT32 DopplerFactor;
FLOAT32 EmitterToListenerAngle;
FLOAT32 EmitterToListenerDistance;
FLOAT32 EmitterVelocityComponent;
FLOAT32 ListenerVelocityComponent;
} X3DAUDIO_DSP_SETTINGS, *LPX3DAUDIO_DSP_SETTINGS;
멤버
pMatrixCoefficients
각 대상 채널에 있는 각 원본 채널의 볼륨 수준으로 초기화될 호출자 제공 배열입니다. 배열에는 적어도 (SrcChannelCount × DstChannelCount) 요소가 있어야 합니다. 배열은 원본 채널을 배열의 열 인덱스로, 대상 채널을 배열의 행 인덱스로 정렬합니다. 예를 들어 2개 채널 스테레오 입력을 5.1 출력으로 렌더링하여 전면 채널에 가중치를 적용하지만 가운데 및 빈도가 낮은 채널에는 없는 경우 행렬은 다음 표와 같이 표시될 수 있습니다.
출력 | 왼쪽 입력 | 오른쪽 입력 |
---|---|---|
왼쪽 | 1.0 | 0.0 |
오른쪽 | 0.0 | 1.0 |
프런트 센터 | 0.0 | 0.0 |
Lfe | 0.0 | 0.0 |
후면 왼쪽 | 0.8 | 0.0 |
오른쪽 후면 | 0.0 | 0.8 |
왼쪽 및 오른쪽 채널은 출력 왼쪽 및 오른쪽 채널에 완전히 매핑됩니다. 왼쪽 및 오른쪽 입력의 80%는 후방 왼쪽 및 오른쪽 채널에 매핑됩니다.
X3DAudioCalculate를 호출할 때 X3DAUDIO_CALCULATE_MATRIX 플래그를 지정하지 않으면 pMatrixCoefficients 멤버가 NULL일 수 있습니다.
XAudio2와 함께 X3DAudio를 사용하는 경우 pMatrixCoefficients 멤버에 반환된 값은 IXAudio2Voice::SetOutputMatrix를 사용하여 음성에 적용됩니다.
pDelayTimes
호출자는 각 대상 채널에 대한 지연을 밀리초 단위로 수신하는 지연 시간 배열을 제공했습니다. 이 배열에는 DstChannelCount 요소 이상이 있어야 합니다. X3DAudio는 실제로 지연을 수행하지 않습니다. 효과 체인에 배치된 지연 DSP 효과를 조정하는 데 사용할 수 있는 계수를 반환하기만 하면 됩니다. X3DAudioCalculate를 호출할 때 X3DAUDIO_CALCULATE_DELAY 플래그가 지정되지 않은 경우 pDelayTimes 멤버는 NULL일 수 있습니다.
SrcChannelCount
원본 채널 수입니다. X3DAudioCalculate를 호출하기 전에 이 채널을 방출기 채널 수로 초기화해야 합니다.
DstChannelCount
원본 채널 수입니다. X3DAudioCalculate를 호출하기 전에 이 채널을 방출기 채널 수로 초기화해야 합니다.
LPFDirectCoefficient
LPF 직접 경로 계수입니다. X3DAudioCalculate를 호출할 때 X3DAUDIO_CALCULATE_LPF_DIRECT 플래그가 지정된 경우에만 계산됩니다.
XAudio2와 함께 X3DAudio를 사용하는 경우 LPFDirectCoefficient 멤버에 반환된 값은 IXAudio2Voice::SetFilterParameters를 사용하여 원본 음성의 로우 패스 필터에 적용됩니다.
LPFReverbCoefficient
LPF 반향 경로 계수입니다.
X3DAudioCalculate를 호출할 때 X3DAUDIO_CALCULATE_LPF_REVERB 플래그가 지정된 경우에만 계산됩니다.
ReverbLevel
반향 보내기 수준입니다. X3DAudioCalculate를 호출할 때 X3DAUDIO_CALCULATE_REVERB 플래그가 지정된 경우에만 계산됩니다.
DopplerFactor
도플러 시프트 팩터. Doppler 시프트 효과에 대한 리샘플러 비율을 조정합니다. 여기서 다음을 수행합니다.
effective_frequency = DopplerFactor × original_frequency
X3DAudioCalculate를 호출할 때 X3DAUDIO_CALCULATE_DOPPLER 플래그가 지정된 경우에만 계산됩니다.
XAudio2와 함께 X3DAudio를 사용하는 경우 DopplerFactor에 반환된 값은 IXAudio2SourceVoice::SetFrequencyRatio를 사용하여 원본 음성에 적용됩니다.
EmitterToListenerAngle
방출기 전면 방향과 관련하여 라디안으로 표현된 방출기-수신기 내부 각도입니다.
X3DAudioCalculate를 호출할 때 X3DAUDIO_CALCULATE_EMITTER_ANGLE 플래그가 지정된 경우에만 계산됩니다.
EmitterToListenerDistance
수신기에서 방출기 기준 위치까지 사용자 정의 월드 단위의 거리입니다.
EmitterVelocityComponent
초당 사용자 정의 월드 단위로 방출기-수신기 벡터에 프로젝션된 방출기 속도 벡터의 구성 요소입니다.
X3DAudioCalculate를 호출할 때 X3DAUDIO_CALCULATE_DOPPLER 플래그가 지정된 경우에만 계산됩니다.
ListenerVelocityComponent
초당 사용자 정의 월드 단위로 방출>기 수신기 벡터에 프로젝션된 수신기 속도 벡터의 구성 요소입니다. X3DAudioCalculate를 호출할 때 X3DAUDIO_CALCULATE_DOPPLER 플래그가 지정된 경우에만 계산됩니다.
설명
이 구조를 X3DAudioCalculate 함수에 전달하기 전에 다음 멤버를 초기화해야 합니다.
- pMatrixCoefficients
- pDelayTimes
- SrcChannelCount
- DstChannelCount
- pMatrixCoefficients
- pDelayTimes
- LPFDirectCoefficient
- LPFReverbCoefficient
- ReverbLevel
- DopplerFactor
- EmitterToListenerAngle
- EmitterToListenerDistance
- EmitterVelocityComponent
- ListenerVelocityComponent
플랫폼 요구 사항
Windows 10(XAudio2.9); Windows 8, Windows Phone 8(XAudio 2.8); DirectX SDK(XAudio 2.7)요구 사항
요구 사항 | 값 |
---|---|
헤더 | x3daudio.h |