Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: spatialisation du son  (Lu 3076 fois)

0 Membres et 1 Invité sur ce sujet

mazertys17

  • Full Member
  • ***
  • Messages: 123
    • Voir le profil
    • E-mail
spatialisation du son
« le: Mars 15, 2015, 10:55:16 am »
Bonjour.

Il y a quelque chose avec la spatialisation du son que j'ai du mal à cerner :

dans mon cas, si je bouge la position d'un sond, il est bien atténué comme il faut.
Si en revanche, je bouge le listener seulement, il n'est pas atténué :

création du son :


void ENTITY_Sound::create( sf::SoundBuffer *buffer )
{

    sf::Sound sound ;
    sound.setBuffer ( *buffer ) ;
    sound.setRelativeToListener(true);
    sound.setMinDistance ( 100 ) ;
    sound.setAttenuation( 10 );
    sound.setLoop( true ) ;
    _sound.push_back( sound ) ;

}

 


exemple 1 : je bouge le son seulement en apuyant sur G . Ca marche.


    if ( sf::Keyboard::isKeyPressed ( sf::Keyboard::G ) )
    {
        _test += 10 ;
    }

    for ( auto& it : _sound )
    {
        sf::Listener::setPosition ( 0, 0, 0 ) ;
        it.setPosition( _test  , _test  , 0 ) ;
    }

 

exemple 2 : je bouge le Listener seulement en apuyant sur G . Ca ne marche pas.


    if ( sf::Keyboard::isKeyPressed ( sf::Keyboard::G ) )
    {
        _test += 10 ;
    }

    for ( auto& it : _sound )
    {
        sf::Listener::setPosition ( _test  , _test  , 0 ) ;
        it.setPosition( 0 , 0 , 0 ) ;
    }

 

Avez vous une explication ?

Merci si vous pouvez m'aider.
« Modifié: Mars 15, 2015, 11:49:43 am par mazertys17 »

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
Re : spatialisation du son
« Réponse #1 le: Mars 15, 2015, 11:40:39 am »
T'es sûr que c'est sound.setBuffer(*b) et pas sound.setBuffer(b) ?

mazertys17

  • Full Member
  • ***
  • Messages: 123
    • Voir le profil
    • E-mail
Re : spatialisation du son
« Réponse #2 le: Mars 15, 2015, 11:51:57 am »
Oui, merci pour ta réponse. J'ai édité le sujet.

Ca ne vient pas de là. Je met un buffer en tant que pointeur, afin de pouvoir partager celui ci avec d'autres objets copié comme celui ci. ( j'aurais certainement pu faire autrement, mais cette méthode me convient ).
Le son est joué bien comme il faut. C'est simplement quand je déplace le listener, que ca na marche pas.
« Modifié: Mars 15, 2015, 11:53:33 am par mazertys17 »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : spatialisation du son
« Réponse #3 le: Mars 15, 2015, 11:57:31 am »
Citer
sound.setRelativeToListener(true);
http://www.sfml-dev.org/documentation/2.2-fr/classsf_1_1SoundSource.php#ac478a8b813faf7dd575635b102081d0d

N'utilise pas une fonction sans savoir ce qu'elle fait ni même avoir lu sa documentation... ;)
« Modifié: Mars 15, 2015, 12:04:08 pm par Laurent »
Laurent Gomila - SFML developer

mazertys17

  • Full Member
  • ***
  • Messages: 123
    • Voir le profil
    • E-mail
Re : spatialisation du son
« Réponse #4 le: Mars 15, 2015, 12:07:30 pm »
yes.

Quel crétin je suis  :-X ...J'ai inversé.
Merci.

ps : j'ai pas eu de réponse sur ma présentation de projet et j'aimerais bien si possible avoir un avis sur le système de light par exemple, dont on a eu débat il y a quelques jours. Mon projet avance bien et pour réussir a tenir mes objectifs ( sortie en mai ), un tout petit minimum de soutien sur la programmation pourrais bien m'aider ;).

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : spatialisation du son
« Réponse #5 le: Mars 15, 2015, 01:50:25 pm »
Citer
j'ai pas eu de réponse sur ma présentation de projet
Le problème c'est qu'il n'y a pas grand monde sur le forum français, si tu veux du feedback il faudra poster sur le forum anglais.

Citer
j'aimerais bien si possible avoir un avis sur le système de light par exemple, dont on a eu débat il y a quelques jours.
Si tu arrives à l'expliquer (dans la discussion correspondante) de manière à ce que je le comprenne, je veux bien te donner mon avis :P
Laurent Gomila - SFML developer