alDistanceModel
(Mehr Informationen/weitere Artikel)
Bilder der gainkurven nachliefern. Die Bilder von CREATIVE sind geschützt! |
Inhaltsverzeichnis
alDistanceModel
Name
alDistanceModel - Diese Funktion setzt das Distanzmodell für OpenAL.
Delphi-Spezifikation
procedure alDistanceModel(value: TALenum)
Parameter
value | Symbolische Konstante, welche das zu nutzende Distanzverhalten representiert. Gültige Werte sind:
AL_INVERSE_DISTANCE, AL_INVERSE_DISTANCE_CLAMPED, AL_LINEAR_DISTANCE, AL_LINEAR_DISTANCE_CLAMPED, AL_EXPONENT_DISTANCE, AL_EXPONENT_DISTANCE_CLAMPED, oder AL_NONE |
---|
Beschreibung
alDistanceModel bestimmt wie das Tonverhalten in Abhängigkeit von der Entfernung modelliert werden soll.
Es folgt für jedes Distanzmodell die Beschreibung wie die Verstärkung (gain) errechnet wird.
AL_INVERSE_DISTANCE
gain = AL_REFERENCE_DISTANCE / (AL_REFERENCE_DISTANCE + AL_ROLLOFF_FACTOR * (distance – AL_REFERENCE_DISTANCE) );
AL_INVERSE_DISTANCE_CLAMPED
Dieses Distanzmodell ist das Standardmodell von OpenAL.
distance = max(distance,AL_REFERENCE_DISTANCE); distance = min(distance,AL_MAX_DISTANCE); gain = AL_REFERENCE_DISTANCE / (AL_REFERENCE_DISTANCE + AL_ROLLOFF_FACTOR * (distance – AL_REFERENCE_DISTANCE) );
Das folgende Bild zeigt die inverse Distanzkurve.
bitte Bild bauen und einfügen - Die Bilder von Creative sind geschützt
AL_LINEAR_DISTANCE
distance = min(distance, AL_MAX_DISTANCE) // avoid negative gain gain = ( 1 – AL_ROLLOFF_FACTOR * (distance – AL_REFERENCE_DISTANCE) / (AL_MAX_DISTANCE – AL_REFERENCE_DISTANCE) )
AL_LINEAR_DISTANCE_CLAMPED
distance = max(distance, AL_REFERENCE_DISTANCE) distance = min(distance, AL_MAX_DISTANCE) gain = ( 1 – AL_ROLLOFF_FACTOR * (distance – AL_REFERENCE_DISTANCE) / (AL_MAX_DISTANCE – AL_REFERENCE_DISTANCE) )
Das nachfolgende Bild zeigt die Kurve des linearen Distanzmodells.
bitte Bild bauen und einfügen - Die Bilder von Creative sind geschützt
AL_EXPONENT_DISTANCE
gain = (distance / AL_REFERENCE_DISTANCE) ^ (- AL_ROLLOFF_FACTOR)
AL_EXPONENT_DISTANCE_CLAMPED
distance = max(distance, AL_REFERENCE_DISTANCE) distance = min(distance, AL_MAX_DISTANCE) gain = (distance / AL_REFERENCE_DISTANCE) ^ (- AL_ROLLOFF_FACTOR)
Das nachfolgende Bild zeigt die Kurve des exponentiellen Distanzmodells.
bitte Bild bauen und einfügen - Die Bilder von Creative sind geschützt
AL_NONE
gain = 1;
Hinweise
Verfügbar ab OpenAL Version 1.0
Änderungen
Folgende Erweiterungen hat die Funktion erfahren:
bisher keine
Fehlermeldungen
AL_INVALID_VALUE wird generiert, wenn das angegebene Distanzmodell nicht gültig ist. AL_INVALID_OPERATION wird generiert, wenn kein Kontext vorhanden ist.
Zugehörige Wertrückgaben
alGet mit Token AL_DISTANCE_MODEL
Siehe auch
passende Funktionen nachpflegen