2014-01-06 7 views
1

openAL을 (3D 포지셔닝을 조작하여) 2D로 패닝하는 방법을 알아 내려고합니다. 이상적으로는 왼쪽 또는 오른쪽 채널이 완전히 다른 채널과 완전히 밀착되도록 패닝을 수행하고자합니다. Open AL은 3D 거리와 폴 오프를 멋지게 처리하지만이 종류의 2D 패닝을 모방하는 데 어려움을 겪고 있습니다. 내가OpenAL 2d 패닝 C++

alDistanceModel(AL_LINEAR_DISTANCE_CLAMPED) 

float sourcePosition[3] = {0.99f,0.f,0.f}; 
alSourcefv(sourceID, AL_POSITION, sourcePosition); 
alSourcei(sourceID, AL_SOURCE_RELATIVE, AL_FALSE); 
alSourcef(sourceID, AL_MAX_DISTANCE, 1.f); 
alSourcef(sourceID, AL_REFERENCE_DISTANCE, 0.5f); 

을 사용하고

그러나 오른쪽 채널 오디오의 상당한 양의가있다. 나는 거리를 기반으로 하락하는 이득을 정말로 원하지 않는다. 단지 채널의 비율에 비례한다.

열린 AL로 2 차원 패닝을 에뮬레이트 할 수 있습니까?

답변

2

AL_SOURCE_RELATIVE를 false가 아닌 AL_TRUE로 설정하려고합니다. AL_TRUE 설정

AL_SOURCE_RELATIVE은 위치, 소스의 속도 콘 및 방향 특성 청취자 위치에 대하여 해석 될 것을 나타낸다.

그래서 OpenAL 1.1 Specification (34 페이지)이라고 말합니다.

alSourcei(sourceID, AL_SOURCE_RELATIVE, AL_FALSE); 

alSourcei(sourceID, AL_SOURCE_RELATIVE, AL_TRUE); 

로 변경

따라서는 원하는 결과를 달성한다.