我最近尝试在我的OpenGL程序中使用fmodex 3D声音库,但我遇到了一些问题..我在我的3D世界中放了一个扬声器,但声音不会衰减,无论怎么样光源和相机之间的距离很远。 我还有这种感觉,当我移动相机时,声音在我的2个扬声器之间切换(左右),我不知道这是否有意义!
这里有一些代码:
SoundManager.h
FMOD_SYSTEM *system;
std::vector<Sound*> sounds;
FMOD_VECTOR listenerp;
FMOD_VECTOR velocityp;
FMOD_VECTOR forwardp;
FMOD_VECTOR upp;
//initialisation
FMOD_System_Create(&system);
FMOD_System_Init(system, 32, FMOD_INIT_3D_RIGHTHANDED, NULL);
//update
FMOD_System_Set3DListenerAttributes(system,0, &listenerp, 0, &forwardp, &upp);
FMOD_System_Update(system);
Sound.h
FMOD_SOUND *son;
FMOD_SYSTEM* system;
FMOD_CHANNEL * channel;
FMOD_VECTOR position;
FMOD_VECTOR velocity;
//creating sound
FMOD_RESULT resultat = FMOD_System_CreateSound(system, "data/sounds/forest.wav", FMOD_3D, 0, &son);
//playing sound
FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, son, true, &channel);
FMOD_Channel_Set3DAttributes(channel,&position, 0);
FMOD_Channel_SetPaused(channel,false);
我正在更新相机的位置和每帧的来源。如果有人有想法我会非常感激!! :)