我的系统是win7,64位,最近用openal,播放3d声音,有一个较短的爆炸音效有3d效果,近大远小
但是,其他的声音都是,不论我放多远都是一样大小的声音
下面是一些关键代码
alutLoadWAVFile("../../res/audio/bomb.wav", &format, &data, &size, &freq, &loop);
alBufferData(Buffers[BOMB], format, data, size, freq);
alutUnloadWAV(format, data, size, freq);
alutLoadWAVFile("../../res/audio/hecli.wav", &format, &data, &size, &freq, &loop);
alBufferData(Buffers[HELIC], format, data, size, freq);
alutUnloadWAV(format, data, size, freq);
//上面的代码是读取文件的,bomb可以正常播放,hecli却没有近大远小的效果
source->id=id;
source->bufid=Buffers[source->soundtype];
source->pos[0]=x;
source->pos[1]=z;
source->pos[2]=-y;
source->vel[0]=vx;
source->vel[1]=vz;
source->vel[2]=-vy;
alSourcei (source->index, AL_BUFFER, source->bufid);
alSourcef (source->index, AL_PITCH, 1.0 );
//alSourcef (source->index, AL_GAIN,Volume[source->bufid]*factor );
//alSourcef (source->index, AL_MAX_DISTANCE, maxDistance[source->bufid]);
//alSourcef (source->index, AL_REFERENCE_DISTANCE, minDistance[source->bufid]);
//alSourcef (source->index, AL_ROLLOFF_FACTOR, Attenuation[source->bufid]);
alSourcefv(source->index, AL_POSITION, source->pos );
alSourcefv(source->index, AL_VELOCITY, source->vel );
alSourcei (source->index, AL_LOOPING, AL_FALSE );
alSourcePlay(source->index);