« Réunion du 03-05-2022 » : différence entre les versions

De OSWiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
 
(23 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :


= Introduction=
= Introduction=
[11:02] Kayaker Magic : Le voilà !
[11:02] '''Kayaker Magic''' : Le voilà !


[11:03] Andrew Hellershanks : Bonjour, tout le monde.
[11:03] '''Andrew Hellershanks''' : Bonjour, tout le monde.


= Problème de script : Rezzeur =  
= Problème de script : Rezzeur =  
[11:03] Kayaker Magic : J'ai un problème aujourd'hui : Quelqu'un sait-il ce qui peut causer ce message d'erreur sur la console opensim ?
* [http://opensimulator.org/wiki/OSSL_Constants#osGetRegionStats.28.29 osGetRegionStats()] : fonction OSSL  qui renvoie une liste de float représentant un certain nombre de statistiques sur la région. Renvoie 21 statistiques simultanément dont STATS_SIM_FPS, STATS_PHYSICS_FPS et STATS_SCRIPT_LPS.
*Yeti : version d'OpenSimulator (0.9.2.0 Yeti)


[11:03] Kayaker Magic: 10:54:41 - [WATCHDOG]: Timeout detected for thread "Heartbeat-(Test_Bed_3x3)". ThreadState=Running. Last tick was 21253ms ago.
[11:03] '''Kayaker Magic''' : J'ai un problème aujourd'hui : Quelqu'un sait-il ce qui peut causer ce message d'erreur sur la console opensim ?


[11:04] Kayaker Magic : J'ai un script qui peut verrouiller une région et qui provoque ce message une minute plus tard. TOUT LE TEMPS
[11:03] '''Kayaker Magic''': 10:54:41 - [WATCHDOG]: Timeout detected for thread "Heartbeat-(Test_Bed_3x3)". ThreadState=Running. Last tick was 21253ms ago.


[11:04] Ubit Umarov : le lit est très bon et le cœur bat en s'endormant.
[11:04] '''Kayaker Magic''' : J'ai un script qui peut verrouiller une région et qui provoque ce message une minute plus tard. TOUT LE TEMPS


[11:05] Kayaker Magic : Mais j'essaie de faire une version plus petite du script, et l'erreur ne se produit pas. Du moins pas encore...
[11:04] '''Ubit Umarov''' : le lit est très bon et le cœur bat en s'endormant.


[11:05] Ubit Umarov : les scripts peuvent provoquer ça, mais c'est difficile à dire.
[11:05] '''Kayaker Magic''' : Mais j'essaie de faire une version plus petite du script, et l'erreur ne se produit pas. Du moins pas encore...


[11:05] Vincent.Sylvester @hg.zetaworlds.com:8002 : Tu viens de répondre à ta propre question
[11:05] '''Ubit Umarov''' : les scripts peuvent provoquer ça, mais c'est difficile à dire.


[11:05] Vincent.Sylvester @hg.zetaworlds.com:8002 : Habituellement, les scripts chargés ou mal écrits consomment une tonne de mémoire.
[11:05] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Tu viens de répondre à ta propre question


[11:06] Kayaker Magic : Le script fonctionnait parfaitement sur les anciennes versions d'OpenSim. L'erreur a commencé avec les versions récentes.
[11:05] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Habituellement, les scripts chargés ou mal écrits consomment une tonne de mémoire.


[11:06] Vincent.Sylvester @hg.zetaworlds.com:8002 : Cependant, cela fonctionne
[11:06] '''Kayaker Magic''' : Le script fonctionnait parfaitement sur les anciennes versions d'OpenSim. L'erreur a commencé avec les versions récentes.


[11:06] Kayaker Magic : Non, ce script n'est pas mauvais. Il a bien fonctionné pendant des années.
[11:06] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Cependant, cela fonctionne


[11:06] Vincent.Sylvester @hg.zetaworlds.com:8002 : Indices de défaillance potentielle de la file d'attente de mise à jour des scènes dans long terme.
[11:06] '''Kayaker Magic''' : Non, ce script n'est pas mauvais. Il a bien fonctionné pendant des années.


[11:07] Kayaker Magic : Les tests sont difficiles, chaque test nécessite généralement de redémarrer ou d'attendre 2 minutes pour que la région récupère.
[11:06] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Indices de défaillance potentielle de la file d'attente de mise à jour des scènes dans long terme.


[11:08] Andrew Hellershanks : Oui, vous retirez des éléments d'un script jusqu'à ce que les erreurs cessent. La dernière chose retirée était la cause de l'erreur.
[11:07] '''Kayaker Magic''' : Les tests sont difficiles, chaque test nécessite généralement de redémarrer ou d'attendre 2 minutes pour que la région récupère.


[11:08] Andrew Hellershanks: :)
[11:08] '''Andrew Hellershanks''' : Oui, vous retirez des éléments d'un script jusqu'à ce que les erreurs cessent. La dernière chose retirée était la cause de l'erreur.


[11:08] Ubit Umarov : selby, tu es coincé ?
[11:08] '''Andrew Hellershanks''': :)


[11:09] Vincent.Sylvester @hg.zetaworlds.com:8002 : Il n'est pas nécessaire que ce soit un seul script, la charge globale est également un facteur et le type d'opérations effectuées par ces scripts.
[11:08] '''Ubit Umarov''' : selby, tu es coincé ?


[11:09] Andrew Hellershanks : Kayaker, le script utilise-t-il un timer ? Si oui, est-ce qu'il en fait trop dans le timer handler ?
[11:09] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Il n'est pas nécessaire que ce soit un seul script, la charge globale est également un facteur et le type d'opérations effectuées par ces scripts.


[11:09] Kayaker Magic : A moins qu'il s'agisse d'une condition de concurrence, alors enlever quelque chose sans rapport change suffisamment le timing pour changer le résultat.
[11:09] '''Andrew Hellershanks''' : Kayaker, le script utilise-t-il un [https://wiki.secondlife.com/wiki/Timer/fr timer] ? Si oui, est-ce qu'il en fait trop dans le timer handler ?


[11:09] Kayaker Magic : Le script est complètement piloté par les évènements, il a un timer qui tourne à 0.5 secondes.
[11:09] '''Kayaker Magic''' : A moins qu'il s'agisse d'une condition de concurrence, alors enlever quelque chose sans rapport change suffisamment le timing pour changer le résultat.


[11:10] Kayaker Magic : En fait il y a deux scripts, un rezzeur et la chose qu'il rezze. J'envisage une condition de concurrence sur la façon dont les deux communiquent, mais je ne peux pas encore le vérifier.
[11:09] '''Kayaker Magic''' : Le script est complètement piloté par les évènements, il a un timer qui tourne à 0.5 secondes.


[11:10] Selby.Evans @grid.kitely.com:8002 : Je suppose que oui, mais corrigé
[11:10] '''Kayaker Magic''' : En fait il y a deux scripts, un rezzeur et la chose qu'il rezze. J'envisage une condition de concurrence sur la façon dont les deux communiquent, mais je ne peux pas encore le vérifier.


[11:11] Ubit Umarov : ok
[11:10] '''Selby.Evans @grid.kitely.com:8002''' : Je suppose que oui, mais corrigé


[11:11] Andrew Hellershanks : Kayaker, est-ce que c'est ton propre rezzeur ou l'un de ceux que l'on trouve facilement ?
[11:11] '''Ubit Umarov''' : ok


[11:11] Ubit Umarov : kayker nous ne pouvons pas deviner ces choses.
[11:11] '''Andrew Hellershanks''' : Kayaker, est-ce que c'est ton propre rezzeur ou l'un de ceux que l'on trouve facilement ?


[11:11] Andrew Hellershanks : J'ai utilisé Builder's Buddy et je n'ai pas eu de problème avec lui.
[11:11] '''Ubit Umarov''' : kayker nous ne pouvons pas deviner ces choses.


[11:12] Ubit Umarov : je cherche seulement à écrire du code, trouver des relations potentielles et les tester.
[11:11] '''Andrew Hellershanks''' : J'ai utilisé [https://wiki.secondlife.com/wiki/Builders_Buddy_v1 Builder's Buddy] et je n'ai pas eu de problème avec lui.


[11:12] Ubit Umarov : bien sûr, rezzer une prim est une opération lourde...
[11:12] '''Ubit Umarov''' : je cherche seulement à écrire du code, trouver des relations potentielles et les tester.


[11:12] Ubit Umarov: ''1000 od them a bit worse''..
[11:12] '''Ubit Umarov''' : bien sûr,  rezzer une prim est une opération lourde...


[11:12] Ubit Umarov: :p
[11:12] '''Ubit Umarov''': ''1000 od them a bit worse''..


[11:13] Kayaker Magic : Mon propre rezzer.
[11:12] '''Ubit Umarov''': :p


[11:13] Ubit Umarov : et rezzer n'est pas une opération multithread.
[11:13] '''Kayaker Magic''' : Mon propre rezzeur.


[11:13] Andrew Hellershanks : Kayaker, as-tu vérifié les statistiques de la région quand elle émet l'erreur pour voir si elle montre un nombre élevé de LPS ou un nombre faible de FPS ?
[11:13] '''Ubit Umarov''' : et rezzer n'est pas une opération multithread.


[11:13] Kayaker Magic : J'espère seulement avoir des suggestions sur ce qui peut causer le blocage maintenant alors que ça n'est pas arrivé dans le dernier Yeti que j'ai compilé.
[11:13] '''Andrew Hellershanks''' : Kayaker, as-tu vérifié les statistiques de la région quand elle émet l'erreur pour voir si elle montre un nombre élevé de LPS (Ligne par seconde) ou un nombre faible de FPS (Frame par seconde) ?


[11:13] Andrew Hellershanks : Bonjour, Michael.
[11:13] '''Kayaker Magic''' : J'espère seulement avoir des suggestions sur ce qui peut causer le blocage maintenant alors que ça n'est pas arrivé dans le dernier Yeti que j'ai compilé.


[11:13] Michael.Christopher @cc.opensimulator.org:8002: hello
[11:13] '''Andrew Hellershanks''' : Bonjour, Michael.


[11:13] Ubit Umarov : cela arrêtera les autres threads pendant la transformation des données partagées.
[11:13] '''Michael.Christopher @cc.opensimulator.org:8002''': hello


[11:14] Ubit Umarov : mais, comme je l'ai dit, nous ne pouvons que deviner.
[11:13] '''Ubit Umarov''' : cela arrêtera les autres threads pendant la transformation des données partagées.


[11:16] Kayaker Magic : Oui, je vais continuer à essayer de trouver un moyen simple de répéter le problème. Mais soyez avertis : Il y a un moyen de planter Yeti qui n'existait pas avant. Je ne peux plus utiliser les versions récentes sur mes régions de peur que d'autres choses déclenchent cela.
[11:14] '''Ubit Umarov''' : mais, comme je l'ai dit, nous ne pouvons que deviner.
 
[11:16] '''Kayaker Magic''' : Oui, je vais continuer à essayer de trouver un moyen simple de répéter le problème. Mais soyez avertis : Il y a un moyen de planter Yeti qui n'existait pas avant. Je ne peux plus utiliser les versions récentes sur mes régions de peur que d'autres choses déclenchent cela.


= Changements dans le code cette semaine =  
= Changements dans le code cette semaine =  
* [http://opensimulator.org/viewgit/?a=shortlog&p=opensim Journal des commits OpenSim]
* [http://opensimulator.org/mantis/my_view_page.php Mantis : Suivi des bogues]
== Moteurs physiques ubODE et ODE ==
== Moteurs physiques ubODE et ODE ==
[11:15] Ubit Umarov : bien sur les changements de code de la semaine dernière.
* [https://fr.wikipedia.org/wiki/Moteur_physique Moteur physique] :  bibliothèque logicielle indépendante appliquée à la résolution de problèmes de la mécanique classique. Les résolutions typiques sont les collisions, la chute des corps, les forces, la cinétique, etc. Les moteurs physiques sont principalement utilisés dans des simulations scientifiques et dans les jeux vidéo.
* [https://fr.wikipedia.org/wiki/Open_Dynamics_Engine ODE] :  bibliothèque logicielle libre (double licence GNU LGPL et BSD) se plaçant dans la catégorie des moteurs physiques. Elle sert à simuler l'interaction physique de corps rigides.
* ubODE : moteur physique
 
[11:15] '''Ubit Umarov''' : bien sur les changements de code de la semaine dernière.
 
[11:16] '''Ubit Umarov''' : j'ai fait en sorte que ubode utilise ses propres copies des bibliothèques[https://fr.wikipedia.org/wiki/Biblioth%C3%A8que_logicielle] non administrées.
 
[11:16] '''Andrew Hellershanks''' : J'ai vu principalement des changements de type nettoyage de code mais il y avait deux [https://fr.wikipedia.org/wiki/Commit commits] référençant des rapports mantis.
 
[11:16] '''Ubit Umarov''' : donc l'ancien module ode peut rester inchangé.
 
[11:16] '''Ubit Umarov''' : donc maintenant ubode utilise ubode.dll et l'ancienne ode utilise ode.dll.
 
[11:17] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Oui, il y avait quelques petits bogues amusants qui nous avaient échappé, tout est résolu maintenant, mais étant donné les changements apportés à la physique, il se peut qu'il y en ait un ou deux de plus à mesure que les gens testent les choses.
 
[11:17] '''Ubit Umarov''' : cela sur Windows, similaire pour les autres systèmes d'exploitation.
 
[11:18] '''Ubit Umarov''' : puis j'ai mis à jour ubode avec le code que j'avais ici et qui prend la poussière depuis des années maintenant.
 
[11:18] '''Andrew Hellershanks''': Je reviens tout de suite
 
[11:18] '''Ubit Umarov''' : et d'autres que j'ai fait récemment.
 
[11:18] '''Ubit Umarov''' : la plupart du temps c'est la même chose, j'essaie d'économiser du cpu [https://fr.wikipedia.org/wiki/Processeur] ici et là.
 
[11:18] '''Ubit Umarov''' : en fait, ODE est un code assez mauvais.
 
[11:19] '''Ubit Umarov''' : comme si c'était une série de différentes bibliothèques, toutes collées d'une manière ou d'une autre.
 
[11:19] '''Ubit Umarov''' : le problème typique est que chacun a sa propre conception de ce qu'est une rotation.
 
[11:20] '''Ubit Umarov''' : et il y a des tonnes de code pour convertir et copier entre ces différentes versions.
 
== Quaternions et matrices ==
 
[11:20] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Ce ne sont pas tous des quaternions [https://fr.wikipedia.org/wiki/Quaternions_et_rotation_dans_l%27espace] ?
 
[11:20] '''Ubit Umarov''' : bien sûr que non !
 
[11:20] '''Ubit Umarov''' : les quaternions sont en fait incorrects.
 
[11:20] '''Michael.Christopher @cc.opensimulator.org:8002''' : oh ?
 
[11:21] '''Ubit Umarov''' : tous utilisent des matrices [https://fr.wikipedia.org/wiki/Matrice_de_rotation]  pour les rotations.
 
[11:21] '''Michael.Christopher @cc.opensimulator.org:8002''' : cela a attiré mon attention lol. quelle est la meilleure façon ?
 
[11:21] '''Ubit Umarov''' : vous pouvez comprendre cela si je vous dis que pour faire une rotation avec un quaternion vous aurez toujours besoin de connaître la matrice correspondante.
 
[11:22] '''Ubit Umarov''' : donc, réellement, tout le monde utilise les matrices dans les moteurs de bas niveau.
 
[11:23] '''Ubit Umarov''' : le quaternion a  le seul avantage de l'espace... avec 4 float [https://fr.wikipedia.org/wiki/Virgule_flottante] contre 9 pour la matrice correspondante.
 
[11:23] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Différence dans le traitement requis pour eux ?
 
[11:24] '''Ubit Umarov''' : ils ne s'adaptent pas non plus aux instructions SIMD[https://fr.wikipedia.org/wiki/Single_instruction_multiple_data#Instructions_SIMD] moder.
 
[11:24] '''Ubit Umarov''' : l'utilisation de SIMD sur eux peut être beaucoup plus lente.
 
[11:24] '''Ubit Umarov''' : bien SIMD a été conçu en vue d'utiliser des matrices.
 
[11:25] '''Ubit Umarov''' : la plupart au moins.
 
[11:25] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : La conversion de valeurs à virgule flottante et l'application de certaines opérations pour faire rentrer 9 dans 4 ne semble pas non plus très efficace.
 
[11:26] '''Ubit Umarov''' : vous pouvez voir le code de [https://bitbucket.org/opensimulator/libopenmetaverse/src/master/ libomv] par exemple.
 
[11:26] '''Ubit Umarov''' : comme je l'ai dit pour multiplier un vecteur par un quaternion, le code de base va récupérer la matrice puis faire la multiplication de la matrice.
 
[11:27] '''Ubit Umarov''' : sur la matrice vous pouvez aussi extraire plus d'information directement
 
[11:27] '''Ubit Umarov''' : comme l'axe associé à la rotation... blabla
 
[11:27] '''Ubit Umarov''' : une rotation peut aussi être une opération de taille.
 
[11:28] '''Ubit Umarov''' : donc seul un petit nombre de code pas très rapide utilise le quaternion comme représentation de la rotation.
 
[11:28] '''Ubit Umarov''' : ou comme stockage inchangé sur le long terme, bien sûr.
 
[11:29] '''Andrew Hellershanks''' : Je suis de retour.
 
[11:29] '''Ubit Umarov''' : même, avec un quaternion, une rotation c'est juste 3 floats.
 
[11:29] '''Michael.Christopher @cc.opensimulator.org:8002''': Bon retour
 
[11:29] '''Ubit Umarov''' : parce qu'un quat doit être normalisé... ce qui veut dire que le 4ème float est 1 - Somme des carrés des autres.
 
[11:29] '''Ubit Umarov''' : LLUDP [http://opensimulator.org/wiki/LLUDP_ClientStack/fr] utilise cela
 
[11:30] '''Ubit Umarov''' : les lindens [https://fr.wikipedia.org/wiki/Linden_Lab] étaient des codeurs intelligents à l'époque.
 
[11:30] '''Ubit Umarov''' : ce n'était pas ce code très peu performant qu'ils font aujourd'hui.
 
[11:30] '''Ubit Umarov''' : bon, c'est une autre histoire.
 
== Refus d'utiliser une capacité==
[11:31] '''Ubit Umarov''' : j'ai aussi refusé de soutenir l'utilisation d'une autre cap[http://opensimulator.org/wiki/CAPS] de viewer.
 
[11:31] '''Ubit Umarov''' : Rye[https://github.com/RyeMutt] ou Beq[https://github.com/beqjanus][http://world.secondlife.com/resident/12475f25-933a-4312-8a32-9516e93e6c3b] l'ont mentionné.
 
[11:32] '''Ubit Umarov''' : il s'agissait juste de passer de lludp très compact et rapide à http[https://fr.wikipedia.org/wiki/Hypertext_Markup_Language] lent en utilisant un encodage de type xml[https://fr.wikipedia.org/wiki/Extensible_Markup_Language].
 
[11:32] '''Ubit Umarov''' : cela correspond à 10 octets d'information dans environ 200 octets.
 
[11:32] '''Ubit Umarov''' : ( dans ce cas beaucoup plus )
 
[11:33] '''Ubit Umarov''' : donc... les changements de code...
 
[11:33] '''Ubit Umarov''' : il est possible qu'ubode ait maintenant de nouveaux problèmes, bien sûr.
 
[11:33] '''Ubit Umarov''' : et très difficile à déboguer.
 
[11:33] '''Ubit Umarov''' : en général nous n'avons que le BUMMMMM  de la région qui est morte.
 
[11:33] '''Ubit Umarov''' : ce genre de reports :P
 
[11:34] '''Ubit Umarov''' : dans le cas de Windows un BSOD[https://fr.wikipedia.org/wiki/%C3%89cran_bleu_de_la_mort] est aussi possible :)
 
[11:34] '''Michael.Christopher @cc.opensimulator.org:8002''': :))
 
[11:34] '''Ubit Umarov''' : le dernier que j'ai reçu testait les changements de ode.dll.
 
[11:34] '''Ubit Umarov''' : :)
 
[11:34] '''Michael.Christopher @cc.opensimulator.org:8002''' : ouille.
 
== Remplacement de parse par tryparse ==
* Traduction du mot "parse" : Analyser
 
[11:35] '''Ubit Umarov''' : d'autres changements où quelques corrections de bugs récents.
 
[11:35] '''Ubit Umarov''': ''changed some user por uuid parse by tryparse''
 
[11:35] '''Ubit Umarov''' : parce que parse s'arrête maintenant avec une erreur, comme guid le fait.
 
[11:36] '''Ubit Umarov''' : dans le passé, il ne retournait pas uuid.zero, comme tryparse le fait.
 
[11:36] '''Ubit Umarov''' : même chose pour int, vector3 et bool parse.
 
[11:37] '''Ubit Umarov''' : évidemment cela a provoqué un bug stupide, trouvé par vincent et maintenant aussi corrigé.
 
== Saut des avatars ==
[11:37] '''Ubit Umarov''' : le nouveau code de saut des avatars avait également un petit problème.
 
[11:37] '''Ubit Umarov''' : les sauts au dessus d'une prim mesh étaient beaucoup plus courts qu'au dessus d'une prim normale ou d'un terrain.
 
[11:38] '''Ubit Umarov''' : nous avons travaillé un peu sur ce problème... ils sont à nouveau similaires.
 
[11:38] '''Ubit Umarov''' : le problème est la façon dont la collision est détectée [https://fr.wikipedia.org/wiki/D%C3%A9tection_de_collision]...
 
[11:39] '''Ubit Umarov''' : sur une simulation, une collision d'avatar avec n'importe quelle prim retourne au plus 2 collisions.
 
[11:39] '''Ubit Umarov''' : avec un mesh cela peut aller jusqu'à 80...
 
[11:40] '''Ubit Umarov''' : la méthode globale IsColliding compte les collisions.
 
[11:40] '''Ubit Umarov''' : donc... bien mal :)
 
[11:40] '''Ubit Umarov''' : cela devrait être mieux maintenant.
 
[11:40] '''Ubit Umarov''' : mais il y a d'autres parties du code qui ont besoin d'être révisées.
 
[11:41] '''Ubit Umarov''' : toujours une vieille structure de code...
 
[11:41] '''Ubit Umarov''' : malheureusement pas la meilleure... mais toujours présente.
 
== Rotation sur les sièges ==
[11:41] '''Ubit Umarov''' : j'ai aussi cassé des sièges :p
 
[11:42] '''Ubit Umarov''' : dans les mêmes cas, en fonction du timing, la rotation du siège peut être perdue en raison d'une mise à jour retardée envoyée par les viewers.
 
[11:42] '''Ubit Umarov''' : toujours avec une rotation debout...
 
[11:43] '''Ubit Umarov''' : cette mise à jour retardée est à nouveau ignorée...
 
[11:44] '''Ubit Umarov''' : j'espère que vous voyez tous les autres assis ici maintenant :)


[11:16] Ubit Umarov : j'ai fait en sorte que ubode utilise ses propres copies des bibliothèques non administrées.
[11:44] '''Selby.Evans @grid.kitely.com:8002''' : Je les vois.


[11:16] Andrew Hellershanks : J'ai vu principalement des changements de type nettoyage de code mais il y avait deux commits référençant des rapports mantis.
[11:45] '''Ubit Umarov''' : c'était un peu aléatoire, mais nous aurions pu voir des rotations incorrectes comme je l'ai dit.


[11:16] Ubit Umarov : donc l'ancien module ode peut rester inchangé.
[11:46] '''Ubit Umarov''' : typique d'opensim...   1 amélioration 2 nouveaux bugs


[11:16] Ubit Umarov : donc maintenant ubode utilise ubode.dll et l'ancienne ode utilise ode.dll.
[11:46] '''Ubit Umarov''': oups :p


[11:17] Vincent.Sylvester @hg.zetaworlds.com:8002 : Oui, il y avait quelques petits bogues amusants qui nous avaient échappé, tout est résolu maintenant, mais étant donné les changements apportés à la physique, il se peut qu'il y en ait un ou deux de plus à mesure que les gens testent les choses.
[11:46] '''Michael.Christopher @cc.opensimulator.org:8002''': lol


[11:17] Ubit Umarov : cela sur Windows, similaire pour les autres systèmes d'exploitation.
[11:46] '''Ubit Umarov''' : ( toujours à la recherche du deuxième bug sur ce sujet :P )
= Compilation =
[11:47] '''Ubit Umarov''' : à propos du code ubode unmaged, je ne peux compiler que pour win32, 64 et linux64.


[11:18] Ubit Umarov : puis j'ai mis à jour ubode avec le code que j'avais ici et qui prend la poussière depuis des années maintenant.
[11:47] '''Ubit Umarov''' : pas pour mac ou linux32


[11:18] Andrew Hellershanks: Je reviens tout de suite
[11:48] '''Ubit Umarov''' : la bonne nouvelle est que gavin a dit qu'il compilera pour mac dans les prochains jours.


[11:18] Ubit Umarov : et d'autres que j'ai fait récemment.
[11:48] '''Ubit Umarov''' : comme je l'ai fait plusieurs fois dans le passé.


[11:18] Ubit Umarov : la plupart du temps c'est la même chose, j'essaie d'économiser du cpu ici et là.
[11:48] '''Ubit Umarov''' : je veux dire qu' IL l'a fait...


[11:18] Ubit Umarov : en fait, ODE est un code assez mauvais.
[11:48] '''Ubit Umarov''' : :)


[11:19] Ubit Umarov : comme si c'était une série de différentes bibliothèques, toutes collées d'une manière ou d'une autre.
[11:48] '''Michael.Christopher @cc.opensimulator.org:8002''' : ok bien lol j'essayais de penser à la façon de proposer d'utiliser le nôtre en toute confiance :)))


[11:19] Ubit Umarov : le problème typique est que chacun a sa propre conception de ce qu'est une rotation.
[11:49] '''Ubit Umarov''' : donc les utilisateurs de mac auront aussi de magnifiques BSODs.


[11:20] Ubit Umarov : et il y a des tonnes de code pour convertir et copier entre ces différentes versions.
[11:49] '''Ubit Umarov''' : (je ne suis pas sûr que le bleu soit aussi présent sur mac)


[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002 : Ce ne sont pas tous des quaternions ?
[11:51] '''Ubit Umarov''' : alors quelles nouvelles avez-vous ?


[11:20] Ubit Umarov : bien sûr que non !
[11:52] '''Michael.Christopher @cc.opensimulator.org:8002''' : le dépôt de brevet est terminé et un spécialiste des bases de données est censé arriver pour essayer de déterminer par où commencer.


[11:20] Ubit Umarov : les quaternions sont en fait incorrects.
[11:52] '''Andrew Hellershanks''' : Le fait que Gavin travaille toujours sur le code est une bonne nouvelle.


[11:20] Michael.Christopher @cc.opensimulator.org:8002 : oh ?
[11:52] '''Andrew Hellershanks''' : Michael, quel dépôt de brevet ?


[11:21] Ubit Umarov : tous utilisent des matrices pour les rotations.
[11:53] '''Michael.Christopher @cc.opensimulator.org:8002''' : couche d'intégration de la réalité.


[11:21] Michael.Christopher @cc.opensimulator.org:8002 : cela a attiré mon attention lol. quelle est la meilleure façon ?
= Nouvelle pré-version de Firestorm =


[11:21] Ubit Umarov : vous pouvez comprendre cela si je vous dis que pour faire une rotation avec un quaternion vous aurez toujours besoin de connaître la matrice correspondante.
[11:53] '''Ubit Umarov''' : En parlant de Gavin, il y a une nouvelle préversion de Firestorm.[https://www.firestormviewer.org/]


[11:22] Ubit Umarov : donc, réellement, tout le monde utilise les matrices dans les moteurs de bas niveau.
[11:53] '''Ubit Umarov''' : oups lol :)


[11:23] Ubit Umarov : le quaternion a  le seul avantage de l'espace... avec 4 float contre 9 pour la matrice correspondante.
[11:53] '''Andrew Hellershanks''': :)


[11:23] Vincent.Sylvester @hg.zetaworlds.com:8002 : Différence dans le traitement requis pour eux ?
[11:53] '''Ubit Umarov''' : qui inclut maintenant le code LL avec la validation de l'inventaire.


[11:24] Ubit Umarov : ils ne s'adaptent pas non plus aux instructions SIMD moder.
[11:54] '''Ubit Umarov''' : il semble que certaines personnes obtiennent des erreurs à ce sujet et ne peuvent pas utiliser le viewer.


[11:24] Ubit Umarov : l'utilisation de SIMD sur eux peut être beaucoup plus lente.
[11:54] '''Ubit Umarov''' : je n'ai encore aucune explication.


[11:24] Ubit Umarov : bien SIMD a été conçu en vue d'utiliser des matrices.
[11:54] '''Ubit Umarov''' : mais cette "validation" est bien sûr conforme à l'idée actuelle de lindens de ce qu'un inventaire devrait être


[11:25] Ubit Umarov : la plupart au moins.
[11:54] '''Ubit Umarov''' : je ne serais pas surpris si le SL avait aussi des échecs.


[11:25] Vincent.Sylvester @hg.zetaworlds.com:8002 : La conversion de valeurs à virgule flottante et l'application de certaines opérations pour faire rentrer 9 dans 4 ne semble pas non plus très efficace.
[11:55] '''Ubit Umarov''' : mais malheureusement, il faut s'attendre à beaucoup d'échecs ici, avec les anciens inventaires que certains ont.


[11:26] Ubit Umarov : vous pouvez voir le code de libomv par exemple.
[11:55] '''Kayaker Magic''' : Le nouveau FS beta résout un problème avec Vivox [https://en.wikipedia.org/wiki/Vivox](en) que Kitely [https://www.kitely.com/] avait avec les HG TPs.


[11:26] Ubit Umarov : comme je l'ai dit pour multiplier un vecteur par un quaternion, le code de base va récupérer la matrice puis faire la multiplication de la matrice.
[11:55] '''Ubit Umarov''' : ahh le truc de la boucle ?


[11:27] Ubit Umarov : sur la matrice vous pouvez aussi extraire plus d'information directement
[11:56] '''Kayaker Magic''' : J'ai entendu dire que Vivox raccrochait sur un TP HG.


[11:27] Ubit Umarov : comme l'axe associé à la rotation... blabla
[11:56] '''Ubit Umarov''' : il semble qu'un commit de Beq corrige ce problème.


[11:27] Ubit Umarov : une rotation peut aussi être une opération de taille.
[11:56] '''Ubit Umarov''' : il semble que le viewer était placé dans une boucle sans fin :)


[11:28] Ubit Umarov : donc seul un petit nombre de code pas très rapide utilise le quaternion comme représentation de la rotation.
[11:57] '''Kayaker Magic''' : C'est vrai. C'est corrigé !


[11:28] Ubit Umarov : ou comme stockage inchangé sur le long terme, bien sûr.
[11:57] '''Michael.Christopher @cc.opensimulator.org:8002''' : Opensim était l'inspiration originale, mais "la même solution" devrait être utilisable dans la plupart des environnements virtuels.  C'est une question de cas d'utilisation pour chaque entreprise, comment ils l'utiliseraient au mieux (les utilisateurs finaux devraient bénéficier de notre plateforme mais ne pas avoir à payer pour elle).


[11:29] Andrew Hellershanks : Je suis de retour.
[11:57] '''Ubit Umarov''' : les rebakes 2 secondes après l'arrivée sur une région ont également disparu.


[11:29] Ubit Umarov : même, avec un quaternion, une rotation c'est juste 3 floats.
[11:58] '''Ubit Umarov''' : j'ai parlé de cette correction lors d'une autre réunion.


[11:29] Michael.Christopher @cc.opensimulator.org:8002: Bon retour
[11:58] '''Ubit Umarov''': moi rye et beq


[11:29] Ubit Umarov : parce qu'un quat doit être normalisé... ce qui veut dire que le 4ème float est 1 - Somme des carrés des autres.
[11:59] '''Selby.Evans @grid.kitely.com:8002''' : Je dois y aller -- au revoir à tous.


[11:29] Ubit Umarov : LLUDP utilise cela
[11:59] '''Ubit Umarov''' : et le mauvais extra " !".


[11:30] Ubit Umarov : les lindens étaient des codeurs intelligents à l'époque.
= Conclusion =
[11:59] '''Michael.Christopher @cc.opensimulator.org:8002''' : au revoir selby !


[11:30] Ubit Umarov : ce n'était pas ce code très peu performant qu'ils font aujourd'hui.
[12:00] '''Andrew Hellershanks''': Bye, Selby


[11:30] Ubit Umarov : bon, c'est une autre histoire.
[12:00] '''Andrew Hellershanks''' : Une autre heure s'est écoulée. Des questions de dernière minute pour aujourd'hui ?


= Refus d'utiliser une capacité=
[12:00] '''Michael.Christopher @cc.opensimulator.org:8002''' : pas ici.
[11:31] Ubit Umarov : j'ai aussi refusé de soutenir l'utilisation d'une autre cap de viewer.


[11:31] Ubit Umarov : Rye ou Beq l'ont mentionné.
[12:01] '''Kayaker Magic''' : Pas pour moi !


[11:32] Ubit Umarov : il s'agissait juste de passer de lludp très compact et rapide à http lent en utilisant un encodage de type xml.
[12:01] '''Andrew Hellershanks''' : ok. Je ne vois personne d'autre taper alors je vais prendre ça comme un non de la part des autres.


[11:32] Ubit Umarov : cela correspond à 10 octets d'information dans environ 200 octets.
[12:01] '''Andrew Hellershanks''' : Merci à tous d'être venus. Nous nous reverrons la semaine prochaine.


[11:32] Ubit Umarov: ( in that case a lot more )
[12:01] '''Michael.Christopher @cc.opensimulator.org:8002''' : Bonne semaine à tous !
[11:33] Ubit Umarov: so.. code changes...
[11:33] Ubit Umarov: it is possible ubode now has new issues, ofc
[11:33] Ubit Umarov: nad very hard to debug
[11:33] Ubit Umarov: usually we only get  BUMMMMM region died
[11:33] Ubit Umarov: kind of reports :P
[11:34] Ubit Umarov: in windows case a BSOD is also possible :)
[11:34] Michael.Christopher @cc.opensimulator.org:8002: :))
[11:34] Ubit Umarov: the last one i got was testing ode.dll changes
[11:34] Ubit Umarov: :)
[11:34] Michael.Christopher @cc.opensimulator.org:8002: ouch
[11:35] Ubit Umarov: another changes where a few recent bug fixes
[11:35] Ubit Umarov: changed some user por uuid parse by tryparse
[11:35] Ubit Umarov: because parse now does stop with a error, like guid does.
[11:36] Ubit Umarov: in past it did not, just did return uuid.zero, like tryparse does
[11:36] Ubit Umarov: same on int, vector3 and bool parse
[11:37] Ubit Umarov: ofc made a silly bug on that, found by vicent and now also fixed
[11:37] Ubit Umarov: the avatars new jump code also had a small issue
[11:37] Ubit Umarov: jumps on top of a mesh prim where a lot shorter than on top of a normal prim or terrain
[11:38] Ubit Umarov: added some work aroudn on that.. they look similar again
[11:38] Ubit Umarov: issue is how collision is detected...
[11:39] Ubit Umarov: on a simulation look,  a avatar collsion with any prim returns at most 2 collisions
[11:39] Ubit Umarov: with a mesh can returrn like 80...
[11:40] Ubit Umarov: hte overall IsColliding  basicly counts collisions
[11:40] Ubit Umarov: so..  well bad :)
[11:40] Ubit Umarov: should be better now
[11:40] Ubit Umarov: but other area of code tha tneeds revision
[11:41] Ubit Umarov: still old ode code structure..
[11:41] Ubit Umarov: sadly not the best.. but still there
[11:41] Ubit Umarov: i had also broken sits :p
[11:42] Ubit Umarov: in same cases, depending on timing, the sit rotation could be lost due to a delayed update sent by viewers
[11:42] Ubit Umarov: still with a standing rotation...
[11:43] Ubit Umarov: that delayed one is again ignored...
[11:44] Ubit Umarov: hope you all see others sitting right here now :)
[11:44] Selby.Evans @grid.kitely.com:8002: I do
[11:45] Ubit Umarov: wel was a bit random, but we coudl see wrong rotations as i told
[11:46] Ubit Umarov: typical opensim...  1 improvement 2 new bugs
[11:46] Ubit Umarov: oops :p
[11:46] Michael.Christopher @cc.opensimulator.org:8002: lol
[11:46] Ubit Umarov: ( still looking for the second bug on that :P )
[11:47] Ubit Umarov: about ubode unmaged code, i can only compile for win32, 64 and linux64
[11:47] Ubit Umarov: not mac or linux32
[11:48] Ubit Umarov: good news is that gavin told he will complie for mac in next few days
[11:48] Ubit Umarov: as i did many times in past
[11:48] Ubit Umarov: i mean as HE did..
[11:48] Ubit Umarov: :)
[11:48] Michael.Christopher @cc.opensimulator.org:8002: ok good lol i was trying to think of a way to safely offer to use ours  :))
[11:49] Ubit Umarov: so mac users will also get the happy BSODs
[11:49] Ubit Umarov: ( not sure if also blue on mac )
[11:51] Ubit Umarov: so what news do you have?
[11:52] Michael.Christopher @cc.opensimulator.org:8002: done with the patent filing and supposed to have a database specialist on the way over to try ti figure out where we should start
[11:52] Andrew Hellershanks: Hearing that Gavin is still working on the code is good news.
[11:52] Andrew Hellershanks: Michael, what patent filing?
[11:53] Michael.Christopher @cc.opensimulator.org:8002: reality integration layer
[11:53] Ubit Umarov: Well and speaking of Gavin, there is a new pre-release Firestorm
[11:53] Ubit Umarov: oops lol :)
[11:53] Andrew Hellershanks: :)
[11:53] Ubit Umarov: that includes now LL code with inventory validation
[11:54] Ubit Umarov: seems some people is getting errors on that and can't use the viewer
[11:54] Ubit Umarov: i have no idea still
[11:54] Ubit Umarov: but that "validation" is ofc acording to current lindens idea of what a inventory should be
[11:54] Ubit Umarov: would not be suprised if the also had fails at SL
[11:55] Ubit Umarov: but sadly many to be expected here, with the old inventories some ppl have
[11:55] Kayaker Magic: The new FS beta solves a problem with Vivox that Kitely was having with HG TPs.
[11:55] Ubit Umarov: ahh the loop thing?
[11:56] Kayaker Magic: I hear Vivox was hanging up on an HG TP
[11:56] Ubit Umarov: seem a commi tby Beq fixing that
[11:56] Ubit Umarov: seems the viewer was placed on a never ending loop :)
[11:57] Kayaker Magic: Right. That has been fixed!
[11:57] Michael.Christopher @cc.opensimulator.org:8002: Opensim was the original inspiration, but "the same solution" should be usable in most to all virtual environments.  It's a question of use case for each company how they would best use it (end users should benefit from our platform but not have to pay for it)
[11:57] Ubit Umarov: well the rebakes 2 seconds or so afatasr arrival on a region also now gone
[11:58] Ubit Umarov: i did spoke about that fix on another meeting
[11:58] Ubit Umarov: me rye and beq
[11:59] Selby.Evans @grid.kitely.com:8002: must go -- bye all
[11:59] Ubit Umarov: and the bad extra "!"
[11:59] Michael.Christopher @cc.opensimulator.org:8002: bye selby!
[12:00] Andrew Hellershanks: Bye, Selby
[12:00] Andrew Hellershanks: Another hour has gone by. Any last minute items for today?
[12:00] Michael.Christopher @cc.opensimulator.org:8002: not here
[12:01] Kayaker Magic: Not from me!
[12:01] Andrew Hellershanks: ok. I don't see anyone else typing so I will take that as a no from the others.
[12:01] Andrew Hellershanks: Thank you all for coming. See you again next week.
[12:01] Michael.Christopher @cc.opensimulator.org:8002: have a great week everyone!
</pre>

Dernière version du 4 mai 2022 à 17:38

Source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-05-03

Introduction

[11:02] Kayaker Magic : Le voilà !

[11:03] Andrew Hellershanks : Bonjour, tout le monde.

Problème de script : Rezzeur

  • osGetRegionStats() : fonction OSSL qui renvoie une liste de float représentant un certain nombre de statistiques sur la région. Renvoie 21 statistiques simultanément dont STATS_SIM_FPS, STATS_PHYSICS_FPS et STATS_SCRIPT_LPS.
  • Yeti : version d'OpenSimulator (0.9.2.0 Yeti)

[11:03] Kayaker Magic : J'ai un problème aujourd'hui : Quelqu'un sait-il ce qui peut causer ce message d'erreur sur la console opensim ?

[11:03] Kayaker Magic: 10:54:41 - [WATCHDOG]: Timeout detected for thread "Heartbeat-(Test_Bed_3x3)". ThreadState=Running. Last tick was 21253ms ago.

[11:04] Kayaker Magic : J'ai un script qui peut verrouiller une région et qui provoque ce message une minute plus tard. TOUT LE TEMPS

[11:04] Ubit Umarov : le lit est très bon et le cœur bat en s'endormant.

[11:05] Kayaker Magic : Mais j'essaie de faire une version plus petite du script, et l'erreur ne se produit pas. Du moins pas encore...

[11:05] Ubit Umarov : les scripts peuvent provoquer ça, mais c'est difficile à dire.

[11:05] Vincent.Sylvester @hg.zetaworlds.com:8002 : Tu viens de répondre à ta propre question

[11:05] Vincent.Sylvester @hg.zetaworlds.com:8002 : Habituellement, les scripts chargés ou mal écrits consomment une tonne de mémoire.

[11:06] Kayaker Magic : Le script fonctionnait parfaitement sur les anciennes versions d'OpenSim. L'erreur a commencé avec les versions récentes.

[11:06] Vincent.Sylvester @hg.zetaworlds.com:8002 : Cependant, cela fonctionne

[11:06] Kayaker Magic : Non, ce script n'est pas mauvais. Il a bien fonctionné pendant des années.

[11:06] Vincent.Sylvester @hg.zetaworlds.com:8002 : Indices de défaillance potentielle de la file d'attente de mise à jour des scènes dans long terme.

[11:07] Kayaker Magic : Les tests sont difficiles, chaque test nécessite généralement de redémarrer ou d'attendre 2 minutes pour que la région récupère.

[11:08] Andrew Hellershanks : Oui, vous retirez des éléments d'un script jusqu'à ce que les erreurs cessent. La dernière chose retirée était la cause de l'erreur.

[11:08] Andrew Hellershanks: :)

[11:08] Ubit Umarov : selby, tu es coincé ?

[11:09] Vincent.Sylvester @hg.zetaworlds.com:8002 : Il n'est pas nécessaire que ce soit un seul script, la charge globale est également un facteur et le type d'opérations effectuées par ces scripts.

[11:09] Andrew Hellershanks : Kayaker, le script utilise-t-il un timer ? Si oui, est-ce qu'il en fait trop dans le timer handler ?

[11:09] Kayaker Magic : A moins qu'il s'agisse d'une condition de concurrence, alors enlever quelque chose sans rapport change suffisamment le timing pour changer le résultat.

[11:09] Kayaker Magic : Le script est complètement piloté par les évènements, il a un timer qui tourne à 0.5 secondes.

[11:10] Kayaker Magic : En fait il y a deux scripts, un rezzeur et la chose qu'il rezze. J'envisage une condition de concurrence sur la façon dont les deux communiquent, mais je ne peux pas encore le vérifier.

[11:10] Selby.Evans @grid.kitely.com:8002 : Je suppose que oui, mais corrigé

[11:11] Ubit Umarov : ok

[11:11] Andrew Hellershanks : Kayaker, est-ce que c'est ton propre rezzeur ou l'un de ceux que l'on trouve facilement ?

[11:11] Ubit Umarov : kayker nous ne pouvons pas deviner ces choses.

[11:11] Andrew Hellershanks : J'ai utilisé Builder's Buddy et je n'ai pas eu de problème avec lui.

[11:12] Ubit Umarov : je cherche seulement à écrire du code, trouver des relations potentielles et les tester.

[11:12] Ubit Umarov : bien sûr, rezzer une prim est une opération lourde...

[11:12] Ubit Umarov: 1000 od them a bit worse..

[11:12] Ubit Umarov: :p

[11:13] Kayaker Magic : Mon propre rezzeur.

[11:13] Ubit Umarov : et rezzer n'est pas une opération multithread.

[11:13] Andrew Hellershanks : Kayaker, as-tu vérifié les statistiques de la région quand elle émet l'erreur pour voir si elle montre un nombre élevé de LPS (Ligne par seconde) ou un nombre faible de FPS (Frame par seconde) ?

[11:13] Kayaker Magic : J'espère seulement avoir des suggestions sur ce qui peut causer le blocage maintenant alors que ça n'est pas arrivé dans le dernier Yeti que j'ai compilé.

[11:13] Andrew Hellershanks : Bonjour, Michael.

[11:13] Michael.Christopher @cc.opensimulator.org:8002: hello

[11:13] Ubit Umarov : cela arrêtera les autres threads pendant la transformation des données partagées.

[11:14] Ubit Umarov : mais, comme je l'ai dit, nous ne pouvons que deviner.

[11:16] Kayaker Magic : Oui, je vais continuer à essayer de trouver un moyen simple de répéter le problème. Mais soyez avertis : Il y a un moyen de planter Yeti qui n'existait pas avant. Je ne peux plus utiliser les versions récentes sur mes régions de peur que d'autres choses déclenchent cela.

Changements dans le code cette semaine

Moteurs physiques ubODE et ODE

  • Moteur physique : bibliothèque logicielle indépendante appliquée à la résolution de problèmes de la mécanique classique. Les résolutions typiques sont les collisions, la chute des corps, les forces, la cinétique, etc. Les moteurs physiques sont principalement utilisés dans des simulations scientifiques et dans les jeux vidéo.
  • ODE : bibliothèque logicielle libre (double licence GNU LGPL et BSD) se plaçant dans la catégorie des moteurs physiques. Elle sert à simuler l'interaction physique de corps rigides.
  • ubODE : moteur physique

[11:15] Ubit Umarov : bien sur les changements de code de la semaine dernière.

[11:16] Ubit Umarov : j'ai fait en sorte que ubode utilise ses propres copies des bibliothèques[1] non administrées.

[11:16] Andrew Hellershanks : J'ai vu principalement des changements de type nettoyage de code mais il y avait deux commits référençant des rapports mantis.

[11:16] Ubit Umarov : donc l'ancien module ode peut rester inchangé.

[11:16] Ubit Umarov : donc maintenant ubode utilise ubode.dll et l'ancienne ode utilise ode.dll.

[11:17] Vincent.Sylvester @hg.zetaworlds.com:8002 : Oui, il y avait quelques petits bogues amusants qui nous avaient échappé, tout est résolu maintenant, mais étant donné les changements apportés à la physique, il se peut qu'il y en ait un ou deux de plus à mesure que les gens testent les choses.

[11:17] Ubit Umarov : cela sur Windows, similaire pour les autres systèmes d'exploitation.

[11:18] Ubit Umarov : puis j'ai mis à jour ubode avec le code que j'avais ici et qui prend la poussière depuis des années maintenant.

[11:18] Andrew Hellershanks: Je reviens tout de suite

[11:18] Ubit Umarov : et d'autres que j'ai fait récemment.

[11:18] Ubit Umarov : la plupart du temps c'est la même chose, j'essaie d'économiser du cpu [2] ici et là.

[11:18] Ubit Umarov : en fait, ODE est un code assez mauvais.

[11:19] Ubit Umarov : comme si c'était une série de différentes bibliothèques, toutes collées d'une manière ou d'une autre.

[11:19] Ubit Umarov : le problème typique est que chacun a sa propre conception de ce qu'est une rotation.

[11:20] Ubit Umarov : et il y a des tonnes de code pour convertir et copier entre ces différentes versions.

Quaternions et matrices

[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002 : Ce ne sont pas tous des quaternions [3] ?

[11:20] Ubit Umarov : bien sûr que non !

[11:20] Ubit Umarov : les quaternions sont en fait incorrects.

[11:20] Michael.Christopher @cc.opensimulator.org:8002 : oh ?

[11:21] Ubit Umarov : tous utilisent des matrices [4] pour les rotations.

[11:21] Michael.Christopher @cc.opensimulator.org:8002 : cela a attiré mon attention lol. quelle est la meilleure façon ?

[11:21] Ubit Umarov : vous pouvez comprendre cela si je vous dis que pour faire une rotation avec un quaternion vous aurez toujours besoin de connaître la matrice correspondante.

[11:22] Ubit Umarov : donc, réellement, tout le monde utilise les matrices dans les moteurs de bas niveau.

[11:23] Ubit Umarov : le quaternion a le seul avantage de l'espace... avec 4 float [5] contre 9 pour la matrice correspondante.

[11:23] Vincent.Sylvester @hg.zetaworlds.com:8002 : Différence dans le traitement requis pour eux ?

[11:24] Ubit Umarov : ils ne s'adaptent pas non plus aux instructions SIMD[6] moder.

[11:24] Ubit Umarov : l'utilisation de SIMD sur eux peut être beaucoup plus lente.

[11:24] Ubit Umarov : bien SIMD a été conçu en vue d'utiliser des matrices.

[11:25] Ubit Umarov : la plupart au moins.

[11:25] Vincent.Sylvester @hg.zetaworlds.com:8002 : La conversion de valeurs à virgule flottante et l'application de certaines opérations pour faire rentrer 9 dans 4 ne semble pas non plus très efficace.

[11:26] Ubit Umarov : vous pouvez voir le code de libomv par exemple.

[11:26] Ubit Umarov : comme je l'ai dit pour multiplier un vecteur par un quaternion, le code de base va récupérer la matrice puis faire la multiplication de la matrice.

[11:27] Ubit Umarov : sur la matrice vous pouvez aussi extraire plus d'information directement

[11:27] Ubit Umarov : comme l'axe associé à la rotation... blabla

[11:27] Ubit Umarov : une rotation peut aussi être une opération de taille.

[11:28] Ubit Umarov : donc seul un petit nombre de code pas très rapide utilise le quaternion comme représentation de la rotation.

[11:28] Ubit Umarov : ou comme stockage inchangé sur le long terme, bien sûr.

[11:29] Andrew Hellershanks : Je suis de retour.

[11:29] Ubit Umarov : même, avec un quaternion, une rotation c'est juste 3 floats.

[11:29] Michael.Christopher @cc.opensimulator.org:8002: Bon retour

[11:29] Ubit Umarov : parce qu'un quat doit être normalisé... ce qui veut dire que le 4ème float est 1 - Somme des carrés des autres.

[11:29] Ubit Umarov : LLUDP [7] utilise cela

[11:30] Ubit Umarov : les lindens [8] étaient des codeurs intelligents à l'époque.

[11:30] Ubit Umarov : ce n'était pas ce code très peu performant qu'ils font aujourd'hui.

[11:30] Ubit Umarov : bon, c'est une autre histoire.

Refus d'utiliser une capacité

[11:31] Ubit Umarov : j'ai aussi refusé de soutenir l'utilisation d'une autre cap[9] de viewer.

[11:31] Ubit Umarov : Rye[10] ou Beq[11][12] l'ont mentionné.

[11:32] Ubit Umarov : il s'agissait juste de passer de lludp très compact et rapide à http[13] lent en utilisant un encodage de type xml[14].

[11:32] Ubit Umarov : cela correspond à 10 octets d'information dans environ 200 octets.

[11:32] Ubit Umarov : ( dans ce cas beaucoup plus )

[11:33] Ubit Umarov : donc... les changements de code...

[11:33] Ubit Umarov : il est possible qu'ubode ait maintenant de nouveaux problèmes, bien sûr.

[11:33] Ubit Umarov : et très difficile à déboguer.

[11:33] Ubit Umarov : en général nous n'avons que le BUMMMMM de la région qui est morte.

[11:33] Ubit Umarov : ce genre de reports :P

[11:34] Ubit Umarov : dans le cas de Windows un BSOD[15] est aussi possible :)

[11:34] Michael.Christopher @cc.opensimulator.org:8002: :))

[11:34] Ubit Umarov : le dernier que j'ai reçu testait les changements de ode.dll.

[11:34] Ubit Umarov : :)

[11:34] Michael.Christopher @cc.opensimulator.org:8002 : ouille.

Remplacement de parse par tryparse

  • Traduction du mot "parse" : Analyser

[11:35] Ubit Umarov : d'autres changements où quelques corrections de bugs récents.

[11:35] Ubit Umarov: changed some user por uuid parse by tryparse

[11:35] Ubit Umarov : parce que parse s'arrête maintenant avec une erreur, comme guid le fait.

[11:36] Ubit Umarov : dans le passé, il ne retournait pas uuid.zero, comme tryparse le fait.

[11:36] Ubit Umarov : même chose pour int, vector3 et bool parse.

[11:37] Ubit Umarov : évidemment cela a provoqué un bug stupide, trouvé par vincent et maintenant aussi corrigé.

Saut des avatars

[11:37] Ubit Umarov : le nouveau code de saut des avatars avait également un petit problème.

[11:37] Ubit Umarov : les sauts au dessus d'une prim mesh étaient beaucoup plus courts qu'au dessus d'une prim normale ou d'un terrain.

[11:38] Ubit Umarov : nous avons travaillé un peu sur ce problème... ils sont à nouveau similaires.

[11:38] Ubit Umarov : le problème est la façon dont la collision est détectée [16]...

[11:39] Ubit Umarov : sur une simulation, une collision d'avatar avec n'importe quelle prim retourne au plus 2 collisions.

[11:39] Ubit Umarov : avec un mesh cela peut aller jusqu'à 80...

[11:40] Ubit Umarov : la méthode globale IsColliding compte les collisions.

[11:40] Ubit Umarov : donc... bien mal :)

[11:40] Ubit Umarov : cela devrait être mieux maintenant.

[11:40] Ubit Umarov : mais il y a d'autres parties du code qui ont besoin d'être révisées.

[11:41] Ubit Umarov : toujours une vieille structure de code...

[11:41] Ubit Umarov : malheureusement pas la meilleure... mais toujours présente.

Rotation sur les sièges

[11:41] Ubit Umarov : j'ai aussi cassé des sièges :p

[11:42] Ubit Umarov : dans les mêmes cas, en fonction du timing, la rotation du siège peut être perdue en raison d'une mise à jour retardée envoyée par les viewers.

[11:42] Ubit Umarov : toujours avec une rotation debout...

[11:43] Ubit Umarov : cette mise à jour retardée est à nouveau ignorée...

[11:44] Ubit Umarov : j'espère que vous voyez tous les autres assis ici maintenant :)

[11:44] Selby.Evans @grid.kitely.com:8002 : Je les vois.

[11:45] Ubit Umarov : c'était un peu aléatoire, mais nous aurions pu voir des rotations incorrectes comme je l'ai dit.

[11:46] Ubit Umarov : typique d'opensim... 1 amélioration 2 nouveaux bugs

[11:46] Ubit Umarov: oups :p

[11:46] Michael.Christopher @cc.opensimulator.org:8002: lol

[11:46] Ubit Umarov : ( toujours à la recherche du deuxième bug sur ce sujet :P )

Compilation

[11:47] Ubit Umarov : à propos du code ubode unmaged, je ne peux compiler que pour win32, 64 et linux64.

[11:47] Ubit Umarov : pas pour mac ou linux32

[11:48] Ubit Umarov : la bonne nouvelle est que gavin a dit qu'il compilera pour mac dans les prochains jours.

[11:48] Ubit Umarov : comme je l'ai fait plusieurs fois dans le passé.

[11:48] Ubit Umarov : je veux dire qu' IL l'a fait...

[11:48] Ubit Umarov : :)

[11:48] Michael.Christopher @cc.opensimulator.org:8002 : ok bien lol j'essayais de penser à la façon de proposer d'utiliser le nôtre en toute confiance :)))

[11:49] Ubit Umarov : donc les utilisateurs de mac auront aussi de magnifiques BSODs.

[11:49] Ubit Umarov : (je ne suis pas sûr que le bleu soit aussi présent sur mac)

[11:51] Ubit Umarov : alors quelles nouvelles avez-vous ?

[11:52] Michael.Christopher @cc.opensimulator.org:8002 : le dépôt de brevet est terminé et un spécialiste des bases de données est censé arriver pour essayer de déterminer par où commencer.

[11:52] Andrew Hellershanks : Le fait que Gavin travaille toujours sur le code est une bonne nouvelle.

[11:52] Andrew Hellershanks : Michael, quel dépôt de brevet ?

[11:53] Michael.Christopher @cc.opensimulator.org:8002 : couche d'intégration de la réalité.

Nouvelle pré-version de Firestorm

[11:53] Ubit Umarov : En parlant de Gavin, il y a une nouvelle préversion de Firestorm.[17]

[11:53] Ubit Umarov : oups lol :)

[11:53] Andrew Hellershanks: :)

[11:53] Ubit Umarov : qui inclut maintenant le code LL avec la validation de l'inventaire.

[11:54] Ubit Umarov : il semble que certaines personnes obtiennent des erreurs à ce sujet et ne peuvent pas utiliser le viewer.

[11:54] Ubit Umarov : je n'ai encore aucune explication.

[11:54] Ubit Umarov : mais cette "validation" est bien sûr conforme à l'idée actuelle de lindens de ce qu'un inventaire devrait être

[11:54] Ubit Umarov : je ne serais pas surpris si le SL avait aussi des échecs.

[11:55] Ubit Umarov : mais malheureusement, il faut s'attendre à beaucoup d'échecs ici, avec les anciens inventaires que certains ont.

[11:55] Kayaker Magic : Le nouveau FS beta résout un problème avec Vivox [18](en) que Kitely [19] avait avec les HG TPs.

[11:55] Ubit Umarov : ahh le truc de la boucle ?

[11:56] Kayaker Magic : J'ai entendu dire que Vivox raccrochait sur un TP HG.

[11:56] Ubit Umarov : il semble qu'un commit de Beq corrige ce problème.

[11:56] Ubit Umarov : il semble que le viewer était placé dans une boucle sans fin :)

[11:57] Kayaker Magic : C'est vrai. C'est corrigé !

[11:57] Michael.Christopher @cc.opensimulator.org:8002 : Opensim était l'inspiration originale, mais "la même solution" devrait être utilisable dans la plupart des environnements virtuels. C'est une question de cas d'utilisation pour chaque entreprise, comment ils l'utiliseraient au mieux (les utilisateurs finaux devraient bénéficier de notre plateforme mais ne pas avoir à payer pour elle).

[11:57] Ubit Umarov : les rebakes 2 secondes après l'arrivée sur une région ont également disparu.

[11:58] Ubit Umarov : j'ai parlé de cette correction lors d'une autre réunion.

[11:58] Ubit Umarov: moi rye et beq

[11:59] Selby.Evans @grid.kitely.com:8002 : Je dois y aller -- au revoir à tous.

[11:59] Ubit Umarov : et le mauvais extra " !".

Conclusion

[11:59] Michael.Christopher @cc.opensimulator.org:8002 : au revoir selby !

[12:00] Andrew Hellershanks: Bye, Selby

[12:00] Andrew Hellershanks : Une autre heure s'est écoulée. Des questions de dernière minute pour aujourd'hui ?

[12:00] Michael.Christopher @cc.opensimulator.org:8002 : pas ici.

[12:01] Kayaker Magic : Pas pour moi !

[12:01] Andrew Hellershanks : ok. Je ne vois personne d'autre taper alors je vais prendre ça comme un non de la part des autres.

[12:01] Andrew Hellershanks : Merci à tous d'être venus. Nous nous reverrons la semaine prochaine.

[12:01] Michael.Christopher @cc.opensimulator.org:8002 : Bonne semaine à tous !