【发布时间】:2012-10-12 08:21:29
【问题描述】:
使用OpenAL,可以设置距离模型:
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 另见code.google.com/p/libgdx/issues/detail?id=1183
标签: ios volume openal audio-panning