Cette documentation n’est plus mise à jour et est susceptible d’être supprimée.
Le plugin Oculus Spatializer permet de contourner les problèmes rencontrés et de trouver un compromis. Ce sujet décrit les fonctionnalités prises en charge, les choses à prendre en considération lors du développement à l’aide du SDK Oculus Audio et les fonctionnalités qui ne sont pas prises en charge par les outils connecteur audio. Nous recommandons également de lire le guide sur la spatialisation 3D pour plus de détails sur des concepts comme la fonction de transfert relative à la tête (HRTF) et la modélisation à distance.
Fonctionnalités prises en charge
Cette section fournit une description conceptuelle des fonctionnalités prises en charge par le SDK Oculus Audio.
Spatialisation
La spatialisation est le processus qui consiste à transformer des sources audio monophoniques pour donner l’impression qu’elles proviennent de la direction spécifique souhaitée. Le SDK Oculus Audio utilise les fonctions de transfert relative à la tête (HRTF) pour fournir une spatialisation audio via les plugins et le SDK C/C++. Remarque : il est important que tous les sons transmis au plugin Oculus Spatializer soient monophoniques. Le rendu stéréophonique sera géré par notre spatialisation et ne doit pas être appliqué sur un rendu stéréophonique supplémentaire fourni par votre moteur de jeu ou votre bibliothèque.
Propagation audio
La fonctionnalité de propagation audio du SDK Oculus Audio fournit une simulation de réverbération et d’obturation en temps réel basée sur la géométrie du jeu. Son objectif est de fournir une propagation audio précise à travers une scène avec un minimum de configuration. Il vous suffit d’identifier les maillages de scène que vous souhaitez inclure dans la simulation et de sélectionner le matériau acoustique pour chaque maillage.
Le système de propagation audio modélise les espaces intérieurs ou extérieurs. Il peut aussi modéliser des espaces asymétriques, ce qui le distingue des solutions de réverbération conventionnelles. Cela signifie que lorsque l’auditeur·ice se déplace entre des espaces intérieurs et extérieurs, la transition audio se fait de manière fluide, sans nécessiter de portails supplémentaires ni de configurations de réverbération multiples.
La propagation audio est également mentionnée dans une discussion sur Oculus Connect 5.
Suivi de la tête
En suivant la position et l’orientation de la tête de l’auditeur·ice, nous pouvons parvenir à une spatialisation sonore 3D précise. À mesure que la personne bouge ou tourne la tête, elle perçoit le son comme restant à un emplacement fixe dans l’univers virtuel.
Les équipes de développement peuvent transmettre les structures ovrPosef du SDK Oculus PC au SDK Oculus Audio pour prendre en charge le suivi de la tête. Parallèlement à cela, elles peuvent transmettre des positions sonores dans l’espace de l’auditeur·ice sans information de position pour obtenir le même effet.
Sources volumétriques
Les sources sonores peuvent être dotées d’un rayon qui les rendra volumétriques. Cela va répartir le son, de sorte qu’à mesure que la source se rapproche de l’auditeur·ice, puis l’enveloppe entièrement, le son sera réparti sur un volume d’espace. Cela se révèle tout particulièrement utile pour les objets plus volumineux qui donneraient autrement l’impression d’être plus petits lorsqu’ils sont proches de l’auditeur·ice. Pour plus d’informations, veuillez lire cet article du blog.
Rendu en champ proche
Les sources audio à proximité immédiate de la tête d’un·e auditeur·ice ont des propriétés qui rendent certains aspects de leur spatialisation indépendants de leur distance. Notre rendu en champ proche effectue automatiquement une approximation des effets de la diffraction acoustique pour offrir une représentation plus réaliste des sources audio situées à moins d’un mètre.
Modélisation environnementale
Les HRTF fournissent de puissants indices directionnels, mais sans les effets de pièce, ils ont souvent un son sec et sans vie. Certains signaux environnementaux (par exemple, les réflexions précoces et la réverbération tardive) sont également importants pour fournir des indices forts sur la distance d’une source audio.
Ambisonics est un format audio multicanal qui représente un champ sonore en 3D. Voyez-le comme une skybox pour le son, avec l’auditeur·ice au centre. C’est un moyen de calcul efficace pour lire une scène dont le rendu a été effectué au préalable ou enregistrée en direct. L’inconvénient des sons ambisoniques est qu’ils offrent moins de clarté spatiale et présentent davantage de flou que les sons traités avec HRTF à partir de sources ponctuelles. Nous recommandons d’utiliser l’ambisonie pour les sons extradiégétiques, tels que la musique et la musique d’ambiance.
Meta a développé une nouvelle méthode pour le rendu binaural des sons ambisoniques basée sur le décodage des harmoniques sphériques. Comparée aux méthodes de rendu traditionnelles qui utilisent des haut-parleurs virtuels, cette approche fournit une réponse en fréquence plus linéaire, une meilleure externalisation, moins de flou spatial et utilise aussi moins de ressources de calcul. Le SDK Oculus Audio prend en charge les sons ambisoniques de premier ordre au format AmbiX (ACN/SN3D).
Meta propose un pack de démarrage Ambisonics pour faciliter le travail des équipes de développement (disponible sur la page réservée aux téléchargements). Il inclut plusieurs fichiers AmbiX WAV sous licence Creative Commons. Ces fichiers représentent différents paysages sonores : parcs, environnements naturels avec eau courante, ventilation intérieure, pluie, ambiances urbaines et bruits de conduite.
Atténuation et réflexions
L’atténuation est une composante clé du son dans le jeu, mais la spatialisation 3D avec réflexions complique le sujet.
Les réflexions précises sont la caractéristique la plus importante pour simuler la distance. De plus, pour fournir des indices de distance corrects, il est essentiel d’avoir un équilibre naturel entre le chemin direct et les réflexions. Nous devons donc prendre en considération l’atténuation de tous les chemins de réflexion réfléchis par le modèle de la pièce.
Pour une source sonore proche de l’auditeur·ice, les réflexions du son sont à peine audibles, et le son est dominé par le signal direct. Un son plus éloigné a un contenu réverbérant plus important, et les réflexions sont généralement presque aussi fortes que le signal direct.
Autant dire un véritable défi si vous utilisez des courbes définies manuellement. Si elles ne correspondent pas à la courbe interne, elles produiront des signaux de distance contradictoires. Imaginez le cas où la courbe définie manuellement est plus progressive que la courbe interne : à mesure que le son s’éloigne de l’auditeur·ice, les réflexions diminuent plus rapidement, ce qui donne un son apparemment lointain sans réflexions audibles. C’est l’opposé de l’effet escompté.
Le meilleur moyen d’obtenir des signaux de distance précis consiste à utiliser le modèle Oculus Attenuation, car il garantira un bon équilibre entre les reflets et le signal direct. Si vous avez besoin d’utiliser des courbes définies manuellement, nous vous recommandons de fixer les plages d’atténuation minimale et maximale pour qu’elles leur correspondent le plus possible.
Éléments à prendre en compte
Lorsque vous utilisez les fonctionnalités offertes dans le SDK, il existe des compromis et des solutions de contournement que vous pourriez vouloir prendre en compte.
Casques
Le SDK Oculus Audio suppose que l’utilisateur ou l’utilisatrice final·e porte un casque, qui offre une meilleure isolation, confidentialité, portabilité et spatialisation que les systèmes d’enceintes en champ libre. Combinés à la technologie de suivi de la tête et de spatialisation, les casques créent un sentiment immersif de présence. Pour en savoir plus sur les avantages et les inconvénients des casques en réalité virtuelle, veuillez consulter le Guide des appareils d’écoute dans la section de présentation de l’audio dans la réalité virtuelle
Performances
Étant donné que la performance est un facteur essentiel dans le développement de la VR autonome, nous recommandons de prendre en compte la citation suivante extraite de notre guide sur l’audio VR :
La performance est une considération importante pour toute application en temps réel. Le plugin Oculus Spatializer est grandement optimisé et extrêmement efficace, mais la spatialisation des sons engendre des frais par rapport aux méthodes traditionnelles de panoramique 3D. Même dans les cas où il y a une quantité importante de traitement audio, cela ne devrait pas affecter la fréquence d’images car les systèmes audio en temps réel traitent l’audio dans un thread séparé du thread de rendu graphique principal. En règle générale, vous ne devriez pas être trop limité·e par les performances de la spatialisation, mais il est important de connaître votre budget en termes de performance audio et de mesurer les performances tout au long du développement.
Certains sons peuvent ne pas tirer parti de la spatialisation, même s’ils sont placés en 3D dans l’univers. Par exemple, des grondements ou des bourdonnements très faibles ont une mauvaise directionnalité et pourraient être diffusés en tant que sons stéréo classiques avec un petit effet panoramique et d’atténuation.
Artefacts audibles
Quand un son 3D se déplace dans l’espace, différentes fonctions HRTF et d’atténuation peuvent devenir actives, ce qui engendre parfois des discontinuités aux limites du tampon audio. Ces discontinuités se manifesteront souvent sous forme de clics, de crépitements ou de vagues. Elles peuvent être partiellement masquées en réduisant la vitesse des sons qui se déplacent et en veillant à ce que les sons aient un contenu spectral large.
Latence
Bien que la latence affecte tous les aspects de la VR, elle est souvent considérée comme un problème graphique. Cependant, la latence audio peut également être perturbante et rompre l’immersion. En fonction de la vitesse du système hôte et de la couche audio sous-jacente, la latence entre la soumission du tampon et la sortie sonore peut être aussi courte que 2 ms sur des PC haute performance utilisant des interfaces audio haut de gamme à faible latence ou, dans le pire des cas, atteindre plusieurs centaines de millisecondes.
Une latence système élevée devient un problème à mesure que la vitesse relative entre une source audio et la tête de l’auditeur·ice augmente. Dans une scène relativement statique avec un·e spectateur·ice qui se déplace lentement, la latence audio est plus difficile à détecter.
Compatibilité entre les jeux VR et les jeux non VR
Peu d’équipes de développement ont le luxe de cibler exclusivement les casques VR. Elles doivent aussi prendre en charge les jeux traditionnels non VR utilisant des enceintes externes et ne bénéficiant d’aucun suivi de position. Trouver un juste équilibre entre la qualité et la compatibilité se révèle ainsi difficile et entraîne un temps de développement supplémentaire.
Fonctionnalités non prises en charge
Il existe d’autres aspects pour une expérience audio de grande qualité. Cependant, mieux vaut que la personne qui programme l’application ou un moteur de niveau supérieur les implémente.
Occultation
Les sons interagissent avec l’environnement de bien des façons. Les objets et les murs peuvent obstruer, réfléchir ou propager un son à travers l’univers virtuel. Le SDK prend uniquement en charge les réflexions directes et ne tient pas compte de la géométrie de l’univers virtuel. Ce problème doit être résolu à un niveau plus élevé que le SDK Oculus Audio en raison des exigences d’analyse et de référencement de la géométrie de l’univers.
Effet Doppler
L’effet Doppler est le changement perçu de la hauteur du son qui se produit lorsqu’une source sonore se déplace rapidement vers un·e auditeur·ice ou s’en éloigne, comme le changement de hauteur perçu lorsqu’une voiture passe rapidement. Il est souvent simulé dans les middleware par un simple changement de vitesse de lecture effectué par le moteur sonore.
Effets créatifs
Des effets tels que l’égalisation, la distorsion, le flanging, etc., peuvent être utilisés de manière très efficace dans une expérience de réalité virtuelle. Par exemple, un filtre passe-bas peut imiter le son de la nage sous l’eau, où les hautes fréquences perdent de l’énergie beaucoup plus rapidement que dans l’air, la distorsion peut être utilisée pour simuler la désorientation, un égaliseur à bande étroite peut donner un effet « radio » sur les sources sonores, et ainsi de suite.
Le SDK Oculus Audio ne fournit pas ces effets. Généralement, ils seraient appliqués par un package middleware de niveau supérieur, soit avant, soit après le SDK Oculus Audio, en fonction du résultat souhaité. Par exemple, un filtre passe-bas pourrait être appliqué aux tampons stéréo principaux pour simuler la nage sous l’eau, et un effet de distorsion pourrait être appliqué avant la spatialisation pour un effet de radio cassée dans un jeu.
Sources sonores de zone et directionnelles
Le SDK Oculus Audio prend en charge les sources ponctuelles monophoniques. Lorsqu’un son est spécifié, on suppose que les données de forme d’onde représentent le son tel que l’auditeur·ice l’entend. Il revient à l’appelant d’atténuer le son entrant pour refléter l’atténuation directionnelle des haut-parleurs (par exemple, quelqu’un qui parle en tournant le dos à l’auditeur·ice) et les sources de zone telles que les cascades ou les rivières.