2
使用OpenAL的,一個可以設置距離模型:OpenAL的3D定位和平移中心
alDistanceModel(AL_LINEAR_DISTANCE_CLAMPED);
和聲音效果的位置:
float globalRefDistance = 125.0f;
float globalMaxDistance = 1250.0f;
ALfloat alPos[] = {pos.x, pos.y, 0.0f};
alSourcefv(soundId, AL_POSITION, alPos);
alSourcef(soundId, AL_REFERENCE_DISTANCE, globalRefDistance);
alSourcef(soundId, AL_MAX_DISTANCE, globalMaxDistance);
這樣做會降低,並很好地平底鍋的聲音,除了當聆聽者靠近聲源並且在聲音的左側和右側來回走動時。在這種情況下,平移很快從左向右。在中央播放聲音的地方並不是真正的地方。
我該如何定義一個範圍/窗口/錐體,其中OpenAL將3D聲音置於中央,而不進行平移?
我希望能夠走到左邊的聲音,聽到它逐漸從左聲道淡入。然後在兩個渠道上一段時間。然後在正確的頻道逐漸淡出。
我試着設置聲音是方向性搞亂,但它似乎並沒有這樣的伎倆:
alPos[0] = 0.0f; alPos[1] = 0.0f; alPos[2] = 1.0f;
alSourcefv(soundId, AL_DIRECTION, alPos);
alSourcef(soundId, AL_CONE_INNER_ANGLE, 180.0f);
alSourcef(soundId, AL_CONE_OUTER_ANGLE, 240.0f);
顯然這是一個最近的變化:opensource.creative.com/pipermail/openal/2013-July/012714.html另請參閱https://code.google.com/p/libgdx/issues/detail?id=1183 – rogerdpack