Forum de la communauté SFML
Aide => Audio => Discussion démarrée par: Visor le Février 09, 2017, 05:12:44 pm
-
Bonjour,
je cherche à calculer la distance maximum en pixels jusqu'à laquelle un son est audible suivant le SetAttenuation() d'un sf::Sound (peu importe le setMinDistance).
J'ai bien trouvé les formules concernant l’atténuation d'un son dans l'air, mais j'imagine que la formule intégrée dans la SFML est plus simpliste.
Quelqu'un aurait-il une idée sur quoi me diriger?
-
La formule est tout à la fin du tutoriel sur la spatialisation :
http://www.sfml-dev.org/tutorials/2.4/audio-spatialization-fr.php#les-sources-audio
-
Merci pour la réponse rapide!
Oui je l'avais vue en effet, mais je ne vois pas comment l'utiliser.
J'ai eu beau la torturer dans tous les sens, je n'ai trouvé pas comment déduire la distance max (facteur de ~0.1) à partir d'elle.
-
Il suffit de retravailler un peu l'équation, et si je ne me suis pas trompé, ça doit faire quelque chose du genre :
d = m * (9 - a) / a
d = la distance que tu cherches (pour laquelle le facteur vaut 0.1)
m = minDistance
a = attenuation
-
J'étais arrivé à quelque chose d'équivalent, mais qui ne correspondait pas toujours suivant l'atténuation choisie.
Par exemple 100 / (100 + 5 * (max(280, 100) - 100)) = 0.1
100 * (9 - 5) / 5 = 80, alors qu'on devrait trouver 280
Merci quand même, je vais continuer à chercher.
-
Oui j'ai effectivement retiré le max(distance, minDistance) de l'équation, et comme je te l'ai dit j'ai fait ça en 2 minutes sans me revérifier. Mais ce n'est que du bricolage simple d'équation, tu devrais pouvoir trouver la bonne formulation au bout du compte ;)
-
Entendu, je mettrais à jour le post si je trouve ;D
-
DistanceMax = DistanceMin * ((( 1 / VolumeFactor ) - 1 ) / Attenuation + 1)
Vous pouvez clôturer!