OpenAL声音的衰减:
// 衰減模型
- alDistanceModel(AL_INVERSE_DISTANCE_CLAMPED);
- // 衰減速度,內插範圍內才有效
- alSourcef(theSource, AL_ROLLOFF_FACTOR, 1.0);
- // 內插範圍內界,進內界之前不會衰減
- alSourcef(theSource, AL_REFERENCE_DISTANCE, 5);
- // 內插範圍外界,出外界之後不再衰減
- alSourcef(theSource, AL_MAX_DISTANCE, 10);
在声音正常加载绑定的情况下调用以上4个函数来设置衰减相关的参数。
要想声音的衰减真正的实现,这需要注意以下几点:
1、设置音源的位置
2、更新听着的位置
3、音源必须的单声道的(在所有代码都正常的情况下声音不能衰减很可能就是音源的问题。这个花了一天的时间找到的问题)