Aller au contenu

« Réunion du 09-04-2024 » et « Réunion du 16-04-2024 » : différence entre les pages

De OSWiki
(Différence entre les pages)
Page créée avec « = Changements du code de la semaine= === Mise en cache === Changements sur le comportement de [http://opensimulator.org/wiki/AssetCache la '''mise en cache'''] [http://opensimulator.org/viewgit/?a=commit&p=opensim&h=50f818c480fec80ccbf7562bb2e65ae778a6a8ec],[http://opensimulator.org/viewgit/?a=commit&p=opensim&h=7dc520399cd6d3757a15acb5be2c4370c63f1eac]. ===Gestion automatique de la mémoire : GC === * '''GC ''' [https://fr.wikipedia.org/wiki/GC][https://learn.mi... »
 
Page créée avec « = Introduction NDLR = * Cette réunion fut '''très très compliquée à résumer'''. J'ai du zapper pas mal de choses sur les physiques.Surtout vers la fin avec une histoire de boule creuse physique et un ou plusieurs avatars à l'intérieur. * Ubit Umarov parle aussi de définir '''les frames par secondes du simulateur à 50fps'''... je ne sais pas le faire, je n'ai pas pu ajouter l'information dans le résumé. Voulait-il parler de FrameTime (voir ci-dessous... »
 
Ligne 1 : Ligne 1 :
= Introduction NDLR =
* Cette réunion fut '''très très compliquée à résumer'''. J'ai du zapper pas mal de choses sur les physiques.Surtout vers la fin avec une histoire de boule creuse physique et un ou plusieurs avatars à l'intérieur.
* Ubit Umarov parle aussi de définir  '''les frames par secondes du simulateur à 50fps'''... je ne sais pas le faire, je n'ai pas pu ajouter l'information dans le résumé. Voulait-il parler de FrameTime (voir ci-dessous) ? Je ne sais pas. De plus il ne donne pas toutes la suite des configurations  Update[***]EveryNFrames, ... si vous voulez essayer cette config, faites des tests. Personnellement, je remplacerais peut être aussi UpdateTerrainEveryNFrames, UpdateStorageEveryNFrames et UpdateTempCleaningEveryNSeconds.
= Changements du code de la semaine=
= Changements du code de la semaine=
=== Mise en cache ===
=== Support SSL de Robust ===
Changements sur le comportement de [http://opensimulator.org/wiki/AssetCache la '''mise en cache'''] [http://opensimulator.org/viewgit/?a=commit&p=opensim&h=50f818c480fec80ccbf7562bb2e65ae778a6a8ec],[http://opensimulator.org/viewgit/?a=commit&p=opensim&h=7dc520399cd6d3757a15acb5be2c4370c63f1eac].
* Correction d'un bug  pour créer des clients web partagés après avoir lu la configuration.[http://opensimulator.org/viewgit/?a=commit&p=opensim&h=07d3d51c3b82f83981965e483886042632cb69d4]
===Gestion automatique de la mémoire : GC ===
=== Ajout de la capacité DispatchRegionInfo ===
* '''GC ''' [https://fr.wikipedia.org/wiki/GC][https://learn.microsoft.com/fr-fr/dotnet/core/runtime-config/garbage-collector] est un sous-système informatique de gestion automatique de la mémoire. Il est responsable du recyclage de la mémoire préalablement allouée puis inutilisée. '''Définition de la valeur du seuil de charge de mémoire élevé de GC  à 50 % de la mémoire totale.
* Liens [http://opensimulator.org/viewgit/?a=commit&p=opensim&h=7dda8b4154a3fe69e6b90f2dd1458981d25b97ae][http://opensimulator.org/wiki/Capabilities/fr]
<pre>
===Texture de terrain ===
"System.GC.HighMemoryPercent": 50,
* Mise à jour des caractéristiques du simulateur avec une taille de texture maximale de 1024px.[http://opensimulator.org/viewgit/?a=commit&p=opensim&h=ca69544ae92e32fc21984c398101cda966655926] (Linden Lab semble se lancer à fond dans les textures de 2048px).
</pre>
Il semble que les viewers affichent déjà des images de cette taille, mais n'autorisent pas le téléchargement.  
* Ce changement fait suite à des '''tests sur le comportement de GC entre les versions de dotnet'''. Les résultats plutôt ennuyeux montraient que les versions plus récentes consommaient plus de mémoire. Malheureusement, GC peut décider de l'ignorer.
* Modification  du rapport sur la mémoire dans '''show stats''' [http://opensimulator.org/wiki/Server_Commands/fr#Commandes_de_statistiques]
* Robust affiche également la mémoire dans show stats.
 
=== Libopenmetaverse ===
'''Mise à jour de libomv pour dotnet6''' [http://opensimulator.org/viewgit/?a=commit&p=opensim&h=30d2ad4bb413b188c89e5b47912fbd3b8d84d644]. Cela entraîne malheureusement un tas d'erreurs et d'avertissements. Pour l'instant, certaines choses sont désactivées et devront être corrigées à un moment ou un autre.


=== Autre changements ===
===Modules du l'ancien viewer de Diva ===
* Suppression de '''code inutile'''.
* Certains modules  dédiés à l'ancien viewer de Diva étaient activés par défauts. Ils sont maintenant désactivés par défaut mais activables depuis la configuration.[http://opensimulator.org/viewgit/?a=commit&p=opensim&h=c1c19784ff95bdd3bfa557f1b6f8b74a5636d30f]
* Ajout de quelques textures manquantes pour la bibliothèque qui ont été configurées pour PBR [https://fr.wikipedia.org/wiki/Physically_Based_Rendering] [https://wiki.secondlife.com/wiki/Les_mat%C3%A9riaux_PBR].


= 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.😉}}
= Plateformes de développement=
= Configuration et scripts=
=== Suppression d'éléments du runtime dotnet===
==[[Réunion_du_09-04-2024#Configuration_et_scripts |La gravité dans OpenSim (suite de la réunion du 09-04-2024)]]==
* Microsoft continue de supprimer des éléments du runtime dotnet, donc plusieurs choses devront être remplacées. Le plus ennuyeux est la suppression de '''System.Drawing'''. System.Drawing a partiellement disparu mais dans dotnet8 cela continue.  
==== Déplacement des avatars ====
* Pour l'instant '''dans OpenSim, les bibliothèques de base se construisent malgré les avertissements'''. Mais, à un moment donné il faudra s'en préoccuper. (Ubit Umarov s'est arraché les cheveux toute le semaine, ce n'est pas marrant.)
* Essayer de déplacer un avatar avec des scripts ne fonctionne pas même en utilisant llApplyimpulse[https://wiki.secondlife.com/wiki/LlApplyImpulse] (à moins qu'il ne soit assis), c'est parce que les avatars ont leurs propres moteurs de physique.
* Ubit Umarov va permettre la désactivation temporaire du moteur de l'avatar. Cela va aussi dépendre du moteur de physique.
* D'après Vincent Sylvester il est possible de déplacer physiquement un avatar et de le faire planer en utilisant dans un capteur :
llPushObject(llDetectedKey(agentNum), force, ZERO_VECTOR, 0) ;
== Problème  de la course à l’œuf ==
==== Description ====
*  Cuga Raja a un jeu dans lequel un avatar se tient à l'intérieur d'un ellipsoïde creux géant avec la physique activée. Le jeu est une "course à l'œuf", l'avatar court à l'intérieur de l'œuf et l'ellipsoïde est entraîné. Dans OpenSim les jambes de l'avatar passent à travers le fond de l’œuf. Cela se produit avec les deux moteurs de physique UbODE et BulletSim mais avec des bugs différents.
====Causes possibles ====
* Désynchronisation des objets envoyés via UDP.
* Limites de la force de séparation des objets et le moteur de l'avatar est très fort et peut annuler la séparation.
* On peut modifier la configuration. Les paramètres par défaut sont dans le fichier OpenSimDefaults.ini (même dossier que OpenSim.ini). Unit Umarov conseille de changer la configuration, les valeurs par défaut n'étant bonnes que pour les régions où l'on danse :
<pre>
  ; Cette valeur définit le rythme de plusieurs événements de simulation. MAIS on doit aussi modifier certains paramètres de fluidité pour que leur rythme reste similaire.
  ; FrameTime en millisecondes (ms) est le facteur .Le temps pris par OpenSimulator pour compléter la dernière image. Le temps standard est de 18,18 ms. Dans des
  ; conditions normales, il y aura de petites variations au-dessus et en dessous de ce chiffre, probablement en raison de la faible résolution de la mise en veille des
  ; threads. Ce chiffre peut parfois augmenter si la machine virtuelle sous-jacente (Mono ou .NET) prend beaucoup de temps pour récupérer la mémoire inutilisée. Si ce
  ; nombre est constamment plus élevé, c'est que votre simulateur est surchargé.  


=Configuration et scripts =
  FrameTime 0.02 ; Valeur d'origine 0.0909.  
=== La gravité dans OpenSim ===
  UpdateObjectsEveryNFrames = 1 ; inchangé
===== Configuration =====
  UpdateAgentsEveryNFrames = 1  ;  inchangé
* '''Le vecteur de gravité peut être modifié dans la configuration.''' Pour cela il faut utiliser le moteur physique  ubODE ou OpenDynamicsEngine et ensuite ajouter ces lignes sous [ODEPhysicsSettings] dans OpenSim.ini  et modifier les valeurs selon vos besoins. Exemples :
  UpdateEntityMovementEveryNFrames = 1 ;  inchangé
** Lune --> world_gravityz = -1.6
  UpdateCoarseLocationsEveryNFrames = 250 ; passe de 50 à 250
** Mars --> world_gravityz = -3.7
  etc.
<pre>   
[ODEPhysicsSettings]
;Gravity.  Feel like falling up?  change world_gravityz to 9.8 instead of -9.8.  m/s (Gravité. Vous avez envie de tomber ? Changez world_gravityz à 9.8 au lieu de -9.8. m/s)
    world_gravityx = 0
    world_gravityy = 0
    world_gravityz = -9.8
</pre>
</pre>
* Pour plus de précisions se référer au fichier '''OpenSimDefaults.ini''' situé au même endroit que le fichier OpenSim.ini [http://opensimulator.org/wiki/OSHT#Part_8:_Additional_Administrative_Options]
* Pour que la commande '''stats show''' affiche les fps réelles vous pouvez utiliser le paramètre de configuration :
[[Fichier:Snapshots tintin 058.png|350px]]
Normalized55FPS = true
 
= Viewers=
===== Parachutes et marcher au plafond =====
=== Contours des objets physiques ===
* Cuga Rajal aimerait qu'une fonction qui s'appelerait llApplyForce existe, pour créer un parachute ou marcher sur un plafond par exemple dans un monde où la gravité serait normale. Il dit qu'on peut utiliser '''llApplyImpulse''' [https://wiki.secondlife.com/wiki/LlApplyImpulse] avec un timer [https://wiki.secondlife.com/wiki/Timer], mais ce n'est pas fluide, et ça demande beaucoup de cpu.
====Retour sur une question de la semaine dernière ====
* D'après Vincent Sylvester '''on peut utiliser un timer plus lent avec plus de boucles while'''. Pour lisser le mouvement, il faut utiliser une boucle while pour obtenir des intervalles plus rapides et un timer pour vérifier si l'avatar est toujours au-dessus du sol. Le minutage n'est pas facile, mais il permet de rendre les choses plus fluides.
* Est-il possible de voir les contours des objets physiques dans la viewer ? (C'est à dire la surface qui a un effet de blocage). [[Réunion_du_09-04-2024#Contours_des_objets_physiques]]
* Vincent Sylvester dit aussi qu'il ne serait probablement  pas problématique de permettre à l'avatar de '''se retourner en fonction du vecteur de gravité'''. Mais c'est un cas d'utilisation très particulier. Il dit aussi qu'une fonction '''SetForce'''  existera  quand quelqu'un aura assez de volonté pour s'attaquer '''aux moteurs de l'avatar'''.
* Motoko Karu a fait pour Second Life  '''un script de marche au plafond''' en utilisant une '''animation pour retourner l'avatar'''.
 
= Base de données =
=== Migration ===
* '''SqLite''' n'a pas de commentaires de table [https://sql.sh/cours/commentaires]. Apparemment, les commentaires de table sont une demande de fonctionnalité pour sqlite qui a reçu une certaine attention, mais qui n'a jamais abouti.
* '''Postgres''' ne sera probablement pas supporté par ceci et pourrait même être supprimé complètement. La base de données a un besoin urgent de mises à jour pour OpenSim.


= Modules =
==== Réponse d'Ubit Umarov ====
=== Chat vocal ===
* Il n'y a pas de moyen de voir la boîte de délimitation des physiques. De toute façon ce serait faux pour le moteur de physiques BulletSim. Le type de forme de physiques est en grande partie erroné sur BulletSim. Il n'y a pas de surfaces de délimitation.  Chaque moteur fait les premières étapes de détection des collisions en utilisant sa propre idée des boîtes de rebond (bouding box). Certains moteurs peuvent en avoir une pour un objet lié... d'autres, juste pour les primitives...
'''Étapes''' pour avoir un module de chat vocal WebRTC [https://fr.wikipedia.org/wiki/WebRTC] [https://wiki.secondlife.com/wiki/WebRTC_Voice] pour Opensim :
* Avec Firestorm, on peut voir le maillage utilisé pour les physiques, mais ça ne s'affichera pas pour  les sculpties et les prims normales. La physique utilise tout au plus des boîtes alignées sur l'axe.
* mettre en place de '''JanusXR''' [https://janusxr.org/index.html]
* Developer -> Render Metadata -> Physics Shapes (Développeurs -> Métadonnées de rendu -> formes physiques) ne fonctionne pas , cette option montre la physique pour toutes les primitives.
* trouver le protocole,  
==== Réponse de Gavin Hird ====
* créer '''un module''' pour OpenSim,
* Gavin Hird est sur que son viewer Dayturn affichera cela à partir de  l'éditeur dans l'onglet Features (Attributs).
* implémenter l''''audio spatiale'''
* Ubit Umarov  dit aussi que dans l'éditeur c'est beaucoup mieux, il ne montre pas les primitives normales ni les sculpties.
* ...
==== Test dans l'éditeur avec un mesh  ====
* Dans Attributs sélectionner "enveloppe ..." et cliquer sur l'oeil.
<gallery>
Fichier:Bounding_box.png||BulletSim
Fichier:Bounding box UbODE.png|UbODE
</gallery>


= Viewers=
==== Peut-on définir une primitive d'objet lié à non physique ? ====
=== Contours des objets physiques ===
* Oui on peut définir le format d'une primitive à "non-physique" sauf si c'est la primitive racine.  
==== Question ====
* Une primitive enfant "non physique" agira comme une primitive fantôme sauf que le fantôme entre en collision avec le terrain, pas la primitive non physique. Ceci est vérifié avec le moteur de physiques UbODE, à vérifier pour BulletSim.
* Est-il possible de voir les contours des objets physiques dans la viewer ? (C'est à dire la surface qui a un effet de blocage).  
==== Réponse ====
* Pour Dayturn et Firestorm, c'est au même endroit : Develop->Render Metadata->Physics shapes (Développeurs -> Métadonnées de rendu -> formes physiques).
* Developer -> Render metadata -> Bounding Boxes  (Développeurs -> Métadonnées de rendu -> Cadres): montre la boîte de délimitation de l'objet .


= Source=
= Source=
http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2024-04-09
http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2024-04-16

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

Introduction NDLR

  • Cette réunion fut très très compliquée à résumer. J'ai du zapper pas mal de choses sur les physiques.Surtout vers la fin avec une histoire de boule creuse physique et un ou plusieurs avatars à l'intérieur.
  • Ubit Umarov parle aussi de définir les frames par secondes du simulateur à 50fps... je ne sais pas le faire, je n'ai pas pu ajouter l'information dans le résumé. Voulait-il parler de FrameTime (voir ci-dessous) ? Je ne sais pas. De plus il ne donne pas toutes la suite des configurations Update[***]EveryNFrames, ... si vous voulez essayer cette config, faites des tests. Personnellement, je remplacerais peut être aussi UpdateTerrainEveryNFrames, UpdateStorageEveryNFrames et UpdateTempCleaningEveryNSeconds.

Changements du code de la semaine

Support SSL de Robust

  • Correction d'un bug pour créer des clients web partagés après avoir lu la configuration.[1]

Ajout de la capacité DispatchRegionInfo

Texture de terrain

  • Mise à jour des caractéristiques du simulateur avec une taille de texture maximale de 1024px.[4] (Linden Lab semble se lancer à fond dans les textures de 2048px).

Il semble que les viewers affichent déjà des images de cette taille, mais n'autorisent pas le téléchargement.

Modules du l'ancien viewer de Diva

  • Certains modules dédiés à l'ancien viewer de Diva étaient activés par défauts. Ils sont maintenant désactivés par défaut mais activables depuis la configuration.[5]

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.😉


Configuration et scripts

La gravité dans OpenSim (suite de la réunion du 09-04-2024)

Déplacement des avatars

  • Essayer de déplacer un avatar avec des scripts ne fonctionne pas même en utilisant llApplyimpulse[6] (à moins qu'il ne soit assis), c'est parce que les avatars ont leurs propres moteurs de physique.
  • Ubit Umarov va permettre la désactivation temporaire du moteur de l'avatar. Cela va aussi dépendre du moteur de physique.
  • D'après Vincent Sylvester il est possible de déplacer physiquement un avatar et de le faire planer en utilisant dans un capteur :
llPushObject(llDetectedKey(agentNum), force, ZERO_VECTOR, 0) ;

Problème de la course à l’œuf

Description

  • Cuga Raja a un jeu dans lequel un avatar se tient à l'intérieur d'un ellipsoïde creux géant avec la physique activée. Le jeu est une "course à l'œuf", l'avatar court à l'intérieur de l'œuf et l'ellipsoïde est entraîné. Dans OpenSim les jambes de l'avatar passent à travers le fond de l’œuf. Cela se produit avec les deux moteurs de physique UbODE et BulletSim mais avec des bugs différents.

Causes possibles

  • Désynchronisation des objets envoyés via UDP.
  • Limites de la force de séparation des objets et le moteur de l'avatar est très fort et peut annuler la séparation.
  • On peut modifier la configuration. Les paramètres par défaut sont dans le fichier OpenSimDefaults.ini (même dossier que OpenSim.ini). Unit Umarov conseille de changer la configuration, les valeurs par défaut n'étant bonnes que pour les régions où l'on danse :
  ; Cette valeur définit le rythme de plusieurs événements de simulation. MAIS on doit aussi modifier certains paramètres de fluidité pour que leur rythme reste similaire.
  ; FrameTime en millisecondes (ms) est le facteur .Le temps pris par OpenSimulator pour compléter la dernière image. Le temps standard est de 18,18 ms. Dans des 
  ; conditions normales, il y aura de petites variations au-dessus et en dessous de ce chiffre, probablement en raison de la faible résolution de la mise en veille des 
  ; threads. Ce chiffre peut parfois augmenter si la machine virtuelle sous-jacente (Mono ou .NET) prend beaucoup de temps pour récupérer la mémoire inutilisée. Si ce 
  ; nombre est constamment plus élevé, c'est que votre simulateur est surchargé. 

  FrameTime =  0.02 ; Valeur d'origine 0.0909. 
  UpdateObjectsEveryNFrames = 1 ;  inchangé
  UpdateAgentsEveryNFrames = 1  ;  inchangé
  UpdateEntityMovementEveryNFrames = 1 ;  inchangé
  UpdateCoarseLocationsEveryNFrames = 250 ; passe de 50 à 250
  etc.
  • Pour que la commande stats show affiche les fps réelles vous pouvez utiliser le paramètre de configuration :
Normalized55FPS = true

Viewers

Contours des objets physiques

Retour sur une question de la semaine dernière

Réponse d'Ubit Umarov

  • Il n'y a pas de moyen de voir la boîte de délimitation des physiques. De toute façon ce serait faux pour le moteur de physiques BulletSim. Le type de forme de physiques est en grande partie erroné sur BulletSim. Il n'y a pas de surfaces de délimitation. Chaque moteur fait les premières étapes de détection des collisions en utilisant sa propre idée des boîtes de rebond (bouding box). Certains moteurs peuvent en avoir une pour un objet lié... d'autres, juste pour les primitives...
  • Avec Firestorm, on peut voir le maillage utilisé pour les physiques, mais ça ne s'affichera pas pour les sculpties et les prims normales. La physique utilise tout au plus des boîtes alignées sur l'axe.
  • Developer -> Render Metadata -> Physics Shapes (Développeurs -> Métadonnées de rendu -> formes physiques) ne fonctionne pas , cette option montre la physique pour toutes les primitives.

Réponse de Gavin Hird

  • Gavin Hird est sur que son viewer Dayturn affichera cela à partir de l'éditeur dans l'onglet Features (Attributs).
  • Ubit Umarov dit aussi que dans l'éditeur c'est beaucoup mieux, il ne montre pas les primitives normales ni les sculpties.

Test dans l'éditeur avec un mesh

  • Dans Attributs sélectionner "enveloppe ..." et cliquer sur l'oeil.

Peut-on définir une primitive d'objet lié à non physique ?

  • Oui on peut définir le format d'une primitive à "non-physique" sauf si c'est la primitive racine.
  • Une primitive enfant "non physique" agira comme une primitive fantôme sauf que le fantôme entre en collision avec le terrain, pas la primitive non physique. Ceci est vérifié avec le moteur de physiques UbODE, à vérifier pour BulletSim.

Source

http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2024-04-16