Aller au contenu

« Réunion du 30-04-2024 » et « Réunion du 07-05-2024 » : différence entre les pages

De OSWiki
(Différence entre les pages)
Page créée avec « = Changements du code de la semaine= === Quelques changements dans le code UDP=== * Commit : [http://opensimulator.org/viewgit/?a=commit&p=opensim&h=41ef04902f66349007689498171973cb2a5ea4e7] * Création d'une '''table de saut''' pour chaque nouvel utilisateur : ** Lorsque le programme doit effectuer un branchement conditionnel en fonction d'une valeur, il utilise l'index de la valeur dans la jump table pour accéder directement à l'adresse correspondante. ** bu... »
 
Page créée avec « = Changements du code de la semaine= ===Connecteur MySQL 8.3.0=== * Changement de connecteur pour MySQL et passage à la version 8.3.0 avec deux lignes modifiés par Ubit Umarov. * Le code est dans OpenSim-libs [https://github.com/opensim/opensim-libs/tree/master/trunk/managed/MySQL830MOD] * Dans l'avenir ce connecteur posera plus de problème, mais aujourd'hui, il fonctionne. * '''La nouvelle version d'OpenSimulator est encore compatible avec MySQL 8.0.31. '''... »
 
Ligne 1 : Ligne 1 :
= Changements du code de la semaine=
= Changements du code de la semaine=
=== Quelques changements dans le code UDP===
===Connecteur MySQL 8.3.0===
* Commit : [http://opensimulator.org/viewgit/?a=commit&p=opensim&h=41ef04902f66349007689498171973cb2a5ea4e7]
* Changement de connecteur pour MySQL et passage à la version 8.3.0 avec deux lignes modifiés par Ubit Umarov.
* Création d'une '''table de saut''' pour chaque nouvel utilisateur :
* Le code est dans OpenSim-libs [https://github.com/opensim/opensim-libs/tree/master/trunk/managed/MySQL830MOD]
** Lorsque le programme doit effectuer un branchement conditionnel en fonction d'une valeur, il utilise l'index de la valeur dans la jump table pour accéder directement à l'adresse correspondante.
* Dans l'avenir ce connecteur posera plus de problème, mais aujourd'hui, il fonctionne.
** but :  trouver le code pour gérer chaque type de paquet UDP.
* '''La nouvelle version d'OpenSimulator  est encore compatible avec MySQL 8.0.31. '''
* Nouveau dictionnaire : '''FrozenDictionary'''
* Pour MariaDB il faut les modifications apportées par  Ubit Umarov.
** Dictionnaire dotNet
** Structure de données conçue pour stocker et accéder efficacement à un dictionnaire (une collection de paires clé-valeur) de manière immuable et en lecture seule.


=== Texture de terrain ===
===Nouveau réglage pour midi===
* '''Correction d'un bug sur les changements de texture du terrain''' [http://opensimulator.org/viewgit/?a=commit&p=opensim&h=2736d36391c324c9db1f9caef1700cf080f97222]. Les changements n'étaient pas envoyés aux autres personnes dans la région.
* Ajout d'un nouveau réglage nécessaire pour midi '''pour les nouvelles versions des viewers''' (Firestorm 7.1.7). La nouvelle version de viewer  dispose de l'UUID correspondant, donc il faut qu'OpenSim le fournisse.
* Le viewer affiche celui qui est mis en cache c'est la raison pour laquelle il a fallu un certain temps à Ubit Umarov  pour remarquer que ce réglage manquait.


=== Connecteur MySQL d'Oracle ===
=== Changement de version du compilateur Yengine ===
* '''Retour à l'ancien connecteur''' (déjà la semaine dernière).
* '''Mantis 9125''' : Les scripts sont réinitialisés/tués lors de la traversée d'une région de dotnet vers une région mono.[http://opensimulator.org/mantis/view.php?id=9125]
* Le nouveau ne fonctionnait pas pour l'architecture '''ARM64''' : Raspberry Pi et Orange Pi. Cela fonctionne pour  Apple. Tous les processeurs de la série Apple sont des Arm64, avec leurs propres instructions ajoutées.
* '''Commit c39fa1''' [http://opensimulator.org/viewgit/?a=commit&p=opensim&h=c39fa1e7760f47e36677b761cdf2e8ca400bb955]
* Avec le nouveau connecteur il y aurait un peu moins d'utilisation de cpu et de mémoire mais, ce n'est pas flagrant.


= Avertissement =
= Avertissement =
{{Avertissement_résumé|fond=pink |bord=red |message = Ce résumé existe pour orienter vos recherches. Des erreurs d'interprétation ne sont pas à exclure. Pour plus de précisions, veuillez vous référer aux sources ou vous adresser directement aux développeurs d'OpenSimulator en assistant aux [http://opensimulator.org/wiki/Office_hours réunions du mardi] ou  sur [http://opensimulator.org/wiki/IRC le canal IRC]. Je ne fais pas partie des développeurs, ne vous adressez pas à moi pour les joindre. Merci.😉}}
{{Avertissement_résumé|fond=pink |bord=red |message = Ce résumé existe pour orienter vos recherches. Des erreurs d'interprétation ne sont pas à exclure. Pour plus de précisions, veuillez vous référer aux sources ou vous adresser directement aux développeurs d'OpenSimulator en assistant aux [http://opensimulator.org/wiki/Office_hours réunions du mardi] ou  sur [http://opensimulator.org/wiki/IRC le canal IRC]. Je ne fais pas partie des développeurs, ne vous adressez pas à moi pour les joindre. Merci.😉}}
= Noyau=
= Base de données =
===PBR===
=== Abandon de PostgreSQL ?===
* Avec PBR[https://fr.wikipedia.org/wiki/Rendu_Physique_R%C3%A9aliste] sans un viewer compatible, on voit tous les '''terrains en gris'''. Ubit Umarov  aimerait avoir une solution de repli. Mais, les viewers ne disent pas  encore au simulateur qu'ils peuvent utiliser PBR pour le terrain. Faire cette supposition en se basant sur les chaînes de version, c'est s'exposer à des problèmes.
* Qu'en est-il de Postgresql maintenant. Doit-il être abandonné complètement à l'avenir ? Les gens finiront par passer à des versions plus récentes et le système ne démarrera pas.  
* Cette information pourrait être envoyées à la région au moment de la connexion, mais ce n'est pas le cas. Une autre solution serait d'envoyer '''une fausse capacité''', mais cette information pourrait arriver trop tard.
* '''Le connecteur''' a besoin d'être réparé ou d'une migration pour passer du type '''GUID''' [https://fr.wikipedia.org/wiki/Globally_Unique_Identifier] en '''VARCHAR'''[https://fr.wikipedia.org/wiki/Varchar]. Le "connecteur" fait référence à un composant logiciel qui permet à OpenSimulator d'interagir avec la base de données PostgreSQL.
* Précision : les objets PBR ont un nouveau format UDP et ils sont activés via une capacité, la région est informée. En revanche, les terrains envoient simplement les UUID des assets PBR à la place de ceux des textures, donc les anciens viewers (qui ne sont pas PBR compatibles) vont lire ces UUID comme ceux des textures et ne trouveront rien.  
* D'autres choses peuvent être cassées en dehors de cela.
* S'il n'y a pas d'option de repli, la région doit être conçue pour le mode PBR ou le mode non PBR. Mais, beaucoup de monde ne pourra pas  utiliser les nouveaux viewers. À l'heure actuelle , seules les personnes qui testent le viewer (alpha ?) de Second  Life peuvent voir les terrains PBR.
* Si on prend '''la version actuelle de PostgreSQL''' et qu'on essaie de la faire tourner avec la dernière version de PostgreSQL '''sur ubuntu 22, c'est déjà cassé'''.
 
* Solution possibles : enlever PostgreSQL ou  refaire et mettre à jour le connecteur ce qui serait ardu. Le code pourrait rester dans OpenSim pour une éventuelle mise à jour future.  
= Modules =
*[http://opensimulator.org/mantis/view.php?id=8959 '''Mantis 0008959''': Postgresql ne se chargera pas, quelque chose avec un certificatcallback]
=== Chat vocal WebRTC, Linden Lab publie des informations ===
* Le chat vocal WebRTC va probablement prendre beaucoup de temps pour être achevé.
===== Protocole =====
* Vincent Sylvester essaie de définir '''le protocole''' et toutes les parties pour former une sorte de plan d'attaque pour ce projet.
===== Janus WEBRTC=====
* '''Le serveur web Janus''' [https://janus.conf.meetecho.com/] est un serveur web open-source très utilisé pour le développement d'applications de communication en temps réel, comme des systèmes de visioconférence, de streaming, etc. Quelqu'un a informé Vincent Sylvester  que le backend de l'application utilise le serveur web Janus et il a configuré son système pour intégrer et utiliser le serveur Janus dans OpenSim.
* Janus est simple à installer, mais d'après la documentation, Liden Lab utilise les  canaux de données fournis par Janus et les traite avec un plugin personnalisé.
 
=====Publication d'informations =====
* Linden Lab (?) a publié beaucoup d''''informations''' sur ce qu'ils utilisent, des liens utiles sur GitHub vers les différents outils. Mais les changements propres pour supporter le son 3D n'ont pas été publiés, seul ce qui est '''opensource''' l'a été. Certains codes côté serveur sont uniquement pour Linux. Ils ont ajouté des capacités[http://opensimulator.org/wiki/Capabilities/fr] au serveur et en utilisent des anciennes.  
* C'est une version de WebRTC propre à Liden Lab qui ne fonctionne que sur leur propre serveur. Les connexions de base à WebRTC sont normales, c'est tout ce qui suit qui est un peu en désordre.
* Il semble que ce soit le viewer qui reçoive le flux audio et place la voix en fonction des données de position. Malheureusement, certaines choses ne sont pas complètement documentées et il n'y a que des extraits, le reste est à deviner. Au moins, la plupart des éléments fournis permettent de faire  une '''rétro-ingénierie''' sur ce qui n'est pas là. C'est '''le gestionnaire du canal de données''' qui est personnalisé et '''non ouvert'''.
* Les connexions vocales entre les régions ont changé. La documentation semble montrer que les serveurs de région communiquent avec les serveurs vocaux et que chaque région a au moins un serveur vocal pour la voice 3D des parcelles.
* Les parties client sont directement dans le viewer.  Il semble qu'il y ait aussi d'autres données que le viewer récupère... quelque part dans les données de l'agent.
 
===== Problèmes =====
* Comment faire pour changer de canal et les distribuer sur le backend ?
* Henri Beauchamp a posté beaucoup de choses[https://groups.google.com/a/lists.secondlife.com/g/opensource-dev/c/ZE57CVX50vk](attention lien Google) sur la liste de diffusion opensource Linden Lab [https://wiki.secondlife.com/wiki/OpenSource-Dev].
* Entre la région, le serveur vocal potentiel et les clients, il faut déterminer ce qu'il faut faire pour obtenir la meilleure latence. Idéalement, il faudrait géolocaliser le serveur vocal le plus proche des clients, mais la région est aussi un "client". Mais, On ne peut pas l'évaluer de la même manière qu'un client, ce qui pose un problème.
* Il faut aussi trouver le code de transfert pour passer d'un serveur vocal à l'autre, ce qui n'est pas encore fait.
 
= Divers=
=== Problème de précision des grandes régions ===
* Vincent Sylvester a configuré plus de 120000 régions 16x16 et OpenSim ne s'est pas cassé. Il a utilisé 1200 simulateurs avec chacun 100 régions en désactivant des tas de modules. Il a fait cela pour tester le temps de rendu des cartes de région. Cela a pris 3 heures avec le nouveau système.
* '''Les grandes régions ont des problèmes de précision''', la limite serait  4km  de côté, raison similaire pour laquelle on ne peut pas reezer à plus de 4km d'altitude. C'est pourquoi les régions sont limitées à 4 km et  c'est peut-être déjà trop selon Ubit Umarov. 1km (4x4) est un bon chiffre.
* Certains nombres réels ne peuvent pas être représentés de manière exacte en utilisant des '''nombres à virgule flottante''', ce qui peut entraîner des '''erreurs d'arrondi''' et des approximations. Plus les régions sont grandes et plus des écarts liés à cette approximation sont importants. Quand on dépasse les 1500 mètres l'arrondi commence à avoir un effet sur la précision. C'est la décision d'arrondir vers le bas ou vers le haut qui cause l'instabilité. Mais les besoins de résolution d'OpenSim ne sont pas très élevés sauf peut-être pour les nanoprimes.
Explication par Ubit Umarov
- Les nombres à virgule comportent une partie fixe de 24 bits et un multiplicateur.
- La partie fixe permet d'avoir 6 chiffres décimaux :
  * proche de zéro, cela signifie par exemple une résolution de 6 micron.  
  * à 1 km de l'origine le multiplicateur est de 1000, donc cela fait une résolution de 1 mm.  
 
* Les objets peuvent se déplacer de manière imprécise. Cela peut se manifester par des '''mouvements inattendus ou des décalages''' dans la position des objets.
* L'effet est plus important au coin opposé à 0,0 dans une région.
Ndlr : sauf erreur de ma part, 16x16 devrait correspondre à une région de 16*256m de côté c'est à dire 4096 mètres, donc approximativement 4km.


= Viewers=
= Viewers=
=== Firestorm viewer et PBR===
===Dayturn===
* Changements dans l''''éditeur''' (ndlr : de terrain ?) de la version de développement de Firestorm  pour faciliter l'utilisation des '''3 types de matériaux'''. Les utilisateurs feraient pression sur Firestorm pour que les développeurs produisent un viewer mobile qui pourrait avoir besoin du terrain PBR.
* Début de '''mise à jour''' du viewer.  
* '''Miroirs'''
* D'après Gavin Hird, il est presque impossible de suivre tous les changements de Linden Lab et le contexte à moins d'avoir un accès à TPV (Third Party Viewer).
* '''Importation complète d'une scène GLTF'''[https://fr.wikipedia.org/wiki/GlTF], c'est une interface comparable à celle de l'importation de fichier Collada. (Ndlr : je ne sais pas si cette interface existe déjà dans le viewer en développement ou si elle est planifiée.)
* Le problème de l'importation avec un viewer c'est qu'on ne peut pas trouver de format d'objets "prêts pour le jeu" sans avoir à les retoucher ou les convertir. Il semble que certains attendent que GLTF apporte une solution à cela mais, ce  ne sera pas encore le cas.


===Divers===
= Source=
= Source=
http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2024-04-30
http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2024-05-07

Dernière version du 30 novembre 2024 à 15:54

Changements du code de la semaine

Connecteur MySQL 8.3.0

  • Changement de connecteur pour MySQL et passage à la version 8.3.0 avec deux lignes modifiés par Ubit Umarov.
  • Le code est dans OpenSim-libs [1]
  • Dans l'avenir ce connecteur posera plus de problème, mais aujourd'hui, il fonctionne.
  • La nouvelle version d'OpenSimulator est encore compatible avec MySQL 8.0.31.
  • Pour MariaDB il faut les modifications apportées par Ubit Umarov.

Nouveau réglage pour midi

  • Ajout d'un nouveau réglage nécessaire pour midi pour les nouvelles versions des viewers (Firestorm 7.1.7). La nouvelle version de viewer dispose de l'UUID correspondant, donc il faut qu'OpenSim le fournisse.
  • Le viewer affiche celui qui est mis en cache c'est la raison pour laquelle il a fallu un certain temps à Ubit Umarov pour remarquer que ce réglage manquait.

Changement de version du compilateur Yengine

  • Mantis 9125  : Les scripts sont réinitialisés/tués lors de la traversée d'une région de dotnet vers une région mono.[2]
  • Commit c39fa1 [3]

Avertissement

Attention : Ce résumé existe pour orienter vos recherches. Des erreurs d'interprétation ne sont pas à exclure. Pour plus de précisions, veuillez vous référer aux sources ou vous adresser directement aux développeurs d'OpenSimulator en assistant aux réunions du mardi ou sur le canal IRC. Je ne fais pas partie des développeurs, ne vous adressez pas à moi pour les joindre. Merci.😉


Base de données

Abandon de PostgreSQL ?

  • Qu'en est-il de Postgresql maintenant. Doit-il être abandonné complètement à l'avenir ? Les gens finiront par passer à des versions plus récentes et le système ne démarrera pas.
  • Le connecteur a besoin d'être réparé ou d'une migration pour passer du type GUID [4] en VARCHAR[5]. Le "connecteur" fait référence à un composant logiciel qui permet à OpenSimulator d'interagir avec la base de données PostgreSQL.
  • D'autres choses peuvent être cassées en dehors de cela.
  • Si on prend la version actuelle de PostgreSQL et qu'on essaie de la faire tourner avec la dernière version de PostgreSQL sur ubuntu 22, c'est déjà cassé.
  • Solution possibles : enlever PostgreSQL ou refaire et mettre à jour le connecteur ce qui serait ardu. Le code pourrait rester dans OpenSim pour une éventuelle mise à jour future.
  • Mantis 0008959: Postgresql ne se chargera pas, quelque chose avec un certificatcallback

Viewers

Dayturn

  • Début de mise à jour du viewer.
  • D'après Gavin Hird, il est presque impossible de suivre tous les changements de Linden Lab et le contexte à moins d'avoir un accès à TPV (Third Party Viewer).

Divers

Source

http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2024-05-07