0

初めてOpenALを使用したとき、ソースの位置を設定してもサウンドに影響がない理由がわかりません。サウンドはステレオ形式です。リスナーの位置を設定していることを確認しました。サウンドはリスナーにとって現実的ではなく、OpenALはエラーを出していません。

誰かが光を当てることができますか?

オーディオデバイスを作成する

ALenum result;

mDevice = alcOpenDevice(NULL);
if((result = alGetError()) != AL_NO_ERROR)
{
    std::cerr << "Failed to create Device. " << GetALError(result) << std::endl;
    return;
}

mContext = alcCreateContext(mDevice, NULL);
if((result = alGetError()) != AL_NO_ERROR)
{
    std::cerr << "Failed to create Context. " << GetALError(result) << std::endl;
    return;
}
alcMakeContextCurrent(mContext);

SoundListener::SetListenerPosition(0.0f, 0.0f, 0.0f);
SoundListener::SetListenerOrientation(0.0f, 0.0f, -1.0f);

2つのリスナー関数は

alListener3f(AL_POSITION, x, y, z);
Real vec[6] = {x, y, z, 0.0f, 1.0f, 0.0f};
alListenerfv(AL_ORIENTATION, vec);

ソースの位置を1,0,0に設定しました。これはリスナーの右側にあるはずですが、効果がありません。

alSource3f(mSourceHandle, AL_POSITION, x, y, z);

任意のガイダンスをいただければ幸いです

4

1 に答える 1

2

ああ、ステロはローカライズされていません。モノラルではないところでステロスチャンネルがすでに計算されているので、パンはopenALによって計算されるので、今ではすべてが理にかなっています。

于 2010-04-27T11:20:39.470 に答える