OpenAL: Как да използвам линейно затихване?

Искам да контролирам начина, по който силата на звука на източника на звука намалява според разстоянието, как мога да направя това?

Редактиране: Също така бих искал да знам как да мащабирам съответно звуковата координатна система: не искам да чувам звук МНОГО далеч от източника: сега ще трябва да променя кода си за изобразяване, за да мащабирам координатите за да работи както искам.

Edit2: Въпреки това, едно решение може да бъде да умножа координатите си, преди да ги изпратя... но има ли по-елегантни начини?


person Rookie    schedule 25.04.2011    source източник


Отговори (1)


Това ще бъде alDistanceModel(AL_LINEAR_DISTANCE) или по-добре alDistanceModel(AL_LINEAR_DISTANCE_CLAMPED), което напълно ще изключи отдалечените източници.

Прочетете глави 3.4.3 и 3.4.4 тук. Трябва също така да зададете параметрите във формулите, изброени там (AL_MAX_DISTANCE и AL_REFERENCE_DISTANCE) за всеки източник (alSourcef).

Ако параметрите нямат смисъл, затихването се изключва. Ако звукът е стерео, по същия начин (стерео е точно това... стерео -- само моно звуците са 3D).

person Damon    schedule 25.04.2011