« Réunion du 03-06-2025 » : différence entre les versions
Apparence
| (12 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 16 : | Ligne 16 : | ||
= Viewers= | = Viewers= | ||
== [[Lexique_des_réunions#Viewer_Sharpview | | == [[Lexique_des_réunions#Viewer_Sharpview |Sharpview]] == | ||
=== Distance de rendu infini et imposteurs === | === Distance de rendu infini et imposteurs === | ||
==== Présentation du projet ==== | ==== Présentation du projet ==== | ||
| Ligne 22 : | Ligne 22 : | ||
* Joe Magarac travaille sur la distance de rendu infinie pour Second Life, juste pour le terrain , pas pour les objets. Voir https://www.animats.com/sharpview/technotes/impostor.html. | * Joe Magarac travaille sur la distance de rendu infinie pour Second Life, juste pour le terrain , pas pour les objets. Voir https://www.animats.com/sharpview/technotes/impostor.html. | ||
* Dans Second Life il reçoit de l'aide d'Eric Mondrian qui a construit des modèles 3D en maillage de toute la terre de SL. Voici ce que Mondrian fait : https://www.youtube.com/watch?v=OCdQO179uqM | * Dans Second Life il reçoit de l'aide d'Eric Mondrian qui a construit des modèles 3D en maillage de toute la terre de SL. Voici ce que Mondrian fait : https://www.youtube.com/watch?v=OCdQO179uqM | ||
* Joe Magarac cherche à utiliser [https://fr.linuxadictos.com/logiciel-de-cartographie-par-drone-opendronemap.html OpenDroneMap] pour transformer des photos aériennes en maillages. Mondrian analyse déjà les [[Lexique_des_réunions#Heightmap | | * Joe Magarac cherche à utiliser [https://fr.linuxadictos.com/logiciel-de-cartographie-par-drone-opendronemap.html OpenDroneMap] pour transformer des photos aériennes en maillages. Mondrian analyse déjà les [[Lexique_des_réunions#Heightmap |heightmaps]] en grand nombre. | ||
* Joe Magarac réduit 5 000 régions de Second Life en moins 100 objets imposteurs. | * Joe Magarac réduit 5 000 régions de Second Life en moins 100 objets imposteurs. | ||
| Ligne 38 : | Ligne 38 : | ||
==== Réponses et discussion ==== | ==== Réponses et discussion ==== | ||
===== Ce qui serait possible ===== | ===== Ce qui serait possible ===== | ||
* Sur Second Life les imposteurs seraient créés à partir de la carte du monde d'Eric Mondrian. Vincent Sylvester n'est pas sûr qu'on puisse obtenir de tels modèles pour OpenSim à moins d'analyser les [[Lexique_des_réunions#Heightmap | | * Sur Second Life les imposteurs seraient créés à partir de la carte du monde d'Eric Mondrian. Vincent Sylvester n'est pas sûr qu'on puisse obtenir de tels modèles pour OpenSim à moins d'analyser les [[Lexique_des_réunions#Heightmap |heightmaps]]. | ||
* Pour commencer, projeter les tuiles de cartes sur des plans carrés serait un début. | * Pour commencer, projeter les tuiles de cartes sur des plans carrés serait un début. | ||
* Il est toujours possible de construire un cache quelque part pour stocker le résultat de l'analyse des | * Il est toujours possible de construire un cache quelque part pour stocker le résultat de l'analyse des heightmaps. | ||
* Une [http://opensimulator.org/wiki/Capabilities/fr capacité] pourrait aussi être ajoutée pour envoyer des données brutes de | * Une [http://opensimulator.org/wiki/Capabilities/fr capacité] pourrait aussi être ajoutée pour envoyer des données brutes de heightmap. | ||
* Prendre la heightmap pour générer un mesh et projeter le maptile dessus n'est peut-être pas très joli, mais peut fonctionner. Les maptiles peuvent être extraites de [http://opensimulator.org/wiki/ROBUST Robust], mais les heightmaps pourraient être plus difficiles à obtenir. | * Prendre la heightmap pour générer un mesh et projeter le maptile dessus n'est peut-être pas très joli, mais peut fonctionner. Les maptiles peuvent être extraites de [http://opensimulator.org/wiki/ROBUST Robust], mais les heightmaps pourraient être plus difficiles à obtenir. | ||
| Ligne 73 : | Ligne 73 : | ||
* En théorie deux régions de deux grilles différentes (Hypergrid) pourrait être placées l'une à côté de l'autre sur la carte. Ubit Umarov a masqué cela. Mais avec l'hypergrid originale ce serait possible. | * En théorie deux régions de deux grilles différentes (Hypergrid) pourrait être placées l'une à côté de l'autre sur la carte. Ubit Umarov a masqué cela. Mais avec l'hypergrid originale ce serait possible. | ||
=== Solution par région : créer son imposteur ou envoyer une | === Solution par région : créer son imposteur ou envoyer une heightmap === | ||
* Chaque région devrait créer ses propres imposteurs. Le gestion globale au niveau d'une grille n'est pas judicieuse. | * Chaque région devrait créer ses propres imposteurs. Le gestion globale au niveau d'une grille n'est pas judicieuse. Même s'il serait plus facile de demander ces données à une région, le problème de la mise en cache et des délais reste entier dans les deux cas, alors autant générer ces données localement en se basant sur la [[Lexique_des_réunions#Maptile |maptile]] et la [[Lexique_des_réunions#Heightmap |heightmap]] plutôt que de demander à la région de fournir les meshes. | ||
* Les viewers devraient leur demander. Mais, une [[Lexique_des_réunions#Heightmap | | * Les viewers devraient leur demander. Mais, une [[Lexique_des_réunions#Heightmap |heightmap]] de 4km c'est beaucoup d'informations. Ubit Umarov pense qu'il faudrait ajouter un peu de brouillard pour ne pas devoir tout envoyer. Ce n'est pas facile d'utiliser 33 554 432 triangles. | ||
* Les données de la heightmap devraient fournir des points xyz utilisés pour définir les vertices d'un maillage. Ensuite, il suffirait de simplifier quelque peu le maillage et d'appliquer la texture maptile en projection du dessus. | * Les données de la heightmap devraient fournir des points xyz utilisés pour définir les vertices d'un maillage. Ensuite, il suffirait de simplifier quelque peu le maillage et d'appliquer la texture maptile en projection du dessus. | ||
* Le viewer qui utilise le [[Lexique_des_réunions#GPU |GPU]] a dix fois plus de capacités pour faire cela comparé au CPU d'un serveur. | * Le viewer qui utilise le [[Lexique_des_réunions#GPU |GPU]] a dix fois plus de capacités pour faire cela comparé au CPU d'un serveur. | ||
=== Obtenir les | === Obtenir les Heightmap === | ||
* | ==== Comment Joe Magarac obtient les heightmap ?==== | ||
* Joe Magarac utilise la fonction [https://wiki.secondlife.com/wiki/LlCastRay llCastRay] . Cette fonction lance un rayon et renvoie les données de collision en relation avec le point de contact avec un objet. | |||
<pre>Function: list llCastRay( vector start, vector end, list options ); </pre> | |||
==== Discussion ==== | |||
* Ubit Umarov conseille de ne pas utiliser cette méthode dans OpenSimulator. D'après lui C'est un générateurs de lag. Il est possible d'obtenir les heightmaps avec les viewers. | |||
* Vincent Sylvester dit qu'OpenSim fournit déjà tout. Robust procure les maptiles pour les coordonnées de la grille et les régions fournissent leur heighmap complète. À partir de là, pour générer les imposteurs, il suffit de faire des calculs et les stocker localement dans un cache de fichier comme pour les objets. | |||
* Les imposteurs pourraient fonctionner mais pas en s'appuyant sur des données statiques. | |||
==== Utilisation d'[https://fr.linuxadictos.com/logiciel-de-cartographie-par-drone-opendronemap.html OpenDroneMap] ==== | |||
* La raison pour laquelle Joe Magarac procède de cette manière est qu'il veut aussi survoler chaque région pour prendre 50 à 100 photos qu'il utiliserait ensuite avec OpenDroneMap et ainsi générer un modèle 3D de type Google Earth. | |||
* Avec Open Drone Map, on peut voir les côtés des bâtiments et passer sous les ponts. | |||
= Source= | = Source= | ||
* http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2025-06-03 | * http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2025-06-03 | ||
Dernière version du 16 septembre 2025 à 22:27
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.😉 |
Bibliothèques OpenSim
- Projet de Vincent Sylverster : examiner les bibliothèques opensim et libomv, les documenter et les automatiser. L'adresse des sources des bibliothèques qui doivent être construites et les processus de constructions ne sont pas documentés. Cela devrait changer, surtout en ce qui concerne les versions modifiées.
- Automatisation : on clique sur build et cela génère le fichier binaire.
- Sur GitHub il y a une limite de temps pour un compte gratuit. Il est possible d'héberger le serveur de construction. Il faudrait une machine avec assez de ressources.
- Ubit Umarov signal que les binaires respectifs finiront sur le dépôt principal d'OpenSim.
- Vincent Sylvester donne un exemple d'utilisation de la construction automatique : besoin d'une modification pour s'adapter aux changements dans les logiciels tiers. Il serait bon d'avoir les sources et le processus de construction documentés pour que les binaires nécessaires puissent être générés plus facilement.
- Cela va être un long processus.
Informations
Osgrid
- Osgrid a décidé de supprimer tous les actifs et inventaires.
Andrew Hellershanks recherche
- Andrew Hellershanks recherche des régions où l'on trouve des reproductions d'usines de manufactures ou de machines à commande numérique industrielles. Merci de lui signaler si vous en connaissez.
Viewers
Sharpview
Distance de rendu infini et imposteurs
Présentation du projet
- L'idée est permettre de voir une piste d'atterrissage éloignée pendant un vol ou les rivages lointains depuis un bateau.
- Joe Magarac travaille sur la distance de rendu infinie pour Second Life, juste pour le terrain , pas pour les objets. Voir https://www.animats.com/sharpview/technotes/impostor.html.
- Dans Second Life il reçoit de l'aide d'Eric Mondrian qui a construit des modèles 3D en maillage de toute la terre de SL. Voici ce que Mondrian fait : https://www.youtube.com/watch?v=OCdQO179uqM
- Joe Magarac cherche à utiliser OpenDroneMap pour transformer des photos aériennes en maillages. Mondrian analyse déjà les heightmaps en grand nombre.
- Joe Magarac réduit 5 000 régions de Second Life en moins 100 objets imposteurs.
Les imposteurs
- Les imposteurs sont des représentations simplifiées d'objets 3D complexes. Au lieu de rendre l'objet en détail, un imposteur utilise une image 2D ou une version simplifiée de l'objet pour représenter celui-ci à distance.
- Dans le viewer Sharpview, les imposteurs sont des objets avec un maillage et des textures. Ils permettent une vue claire et détaillée de tout ce qui se trouve dans le monde virtuel, peu importe la distance.
- L'imposteur ne peut pas avoir de paramètres d'édition - c'est un objet dans l'état par défaut après un téléchargement. Pas de rotations de texture, de matériaux, de PBR, etc.
- Les imposteurs ont des tailles croissantes et des résolutions décroissantes, comme dans le cas d'une carte : 1x1, 4x4, 16x16, 64x64, ... C'est une sorte de système de LOD [1].
- Processus mis en place pour l'instant et testé dans Sharpview :
- Génération de l'imposteur : création d'objets complets avec un maillage et une texture, qui revient à créer des cartes
- Affichage dans le viewer : création d'un fichier d'index utilisé par le viewer Sharpview pour afficher les objets imposteurs comme des objets hors-simulation.
Question
- Joe Magarac demande si c'est une fonctionnalité qui vaut la peine d'être supporté par OpenSim ?
Réponses et discussion
Ce qui serait possible
- Sur Second Life les imposteurs seraient créés à partir de la carte du monde d'Eric Mondrian. Vincent Sylvester n'est pas sûr qu'on puisse obtenir de tels modèles pour OpenSim à moins d'analyser les heightmaps.
- Pour commencer, projeter les tuiles de cartes sur des plans carrés serait un début.
- Il est toujours possible de construire un cache quelque part pour stocker le résultat de l'analyse des heightmaps.
- Une capacité pourrait aussi être ajoutée pour envoyer des données brutes de heightmap.
- Prendre la heightmap pour générer un mesh et projeter le maptile dessus n'est peut-être pas très joli, mais peut fonctionner. Les maptiles peuvent être extraites de Robust, mais les heightmaps pourraient être plus difficiles à obtenir.
Limites / Critiques
- Il n'est pas sur que l'effort vaille la peine.
- Ubit Umarov ne pense pas que les grands jeux vidéo affichent des kilomètres, ils simulent simplement très bien l'horizon.
- La terre est plutôt rare dans OpenSimulator.
Varregion et régions voisines
-
Placement possible des régions
- OpenSim a deux règles pour les varregions.
- La varregion doit être carrée , pas rectangulaire. En réalité, cette règles se reflète partout dans le code, sauf dans le protocole.
- Elle ne peut avoir qu'un seul voisin par côté. En fait, ce n'est pas vraiment une règle, c'est simplement une rupture avec le fonctionnement de la plupart des viewers et cela perturbe les itinéraires de téléportation des avatars. Les gens combinent tout le temps et contre toutes logique différentes tailles de régions. Certains viewers crash si ce point est négligé. Les autres viewers que Sharpview stockent les régions terrains dans un tableau longueur 8. Vous pouvez mettre 2 régions sur le côté et tout fonctionne bien jusqu'à ce que vous sortiez. De plus vous pouvez vous retrouver dans des endroits bizarres en croisant des régions de tailles différentes.
- Le viewer Sharpview n'a aucune de ces restrictions pour l'instant. Joe Magarac est parti de la spécification du protocole et a implémenté ce qui lui semblait possible.
Obtenir les données de terrain
Problèmes
- Second Life utilise un seul serveur d'assets. Dans le viewer Sharpview, le processus de l'imposteur nécessite d'obtenir des assets de mesh et de texture depuis un serveur d'assets. Comment faire pour OpenSim.
- Un autre problème est de savoir où stocker les maillages et les textures pour les objets hors région ?
Possibilités
- Pour obtenir les données de terrain dynamiquement, cela implique de traiter beaucoup de données. Il faut prendre ce que la région envoie via ses capacités.
- De plus pour cela il semble ne pas y avoir d'autre méthode que de simuler une téléportation vers la région.
- La texture peut être obtenue directement à partir de Robust car le serveur peut fournir les tuiles de carte qu'il conserve.
- Il faut générer un mesh à la volée en se basant sur la heightmap de la région.
- Il faudrait stocker les données dans un fichier cache local.
Limites
- Sur les mêmes grilles les régions se déplacent.
- Le problème est la nature dynamique des régions. Si la carte de hauteur change, l'imposteur sera obsolète et devra être mis à jour. Mais, on peut penser la création d'imposteurs comme à la carte du monde. Elle est toujours en retard.
- En théorie deux régions de deux grilles différentes (Hypergrid) pourrait être placées l'une à côté de l'autre sur la carte. Ubit Umarov a masqué cela. Mais avec l'hypergrid originale ce serait possible.
Solution par région : créer son imposteur ou envoyer une heightmap
- Chaque région devrait créer ses propres imposteurs. Le gestion globale au niveau d'une grille n'est pas judicieuse. Même s'il serait plus facile de demander ces données à une région, le problème de la mise en cache et des délais reste entier dans les deux cas, alors autant générer ces données localement en se basant sur la maptile et la heightmap plutôt que de demander à la région de fournir les meshes.
- Les viewers devraient leur demander. Mais, une heightmap de 4km c'est beaucoup d'informations. Ubit Umarov pense qu'il faudrait ajouter un peu de brouillard pour ne pas devoir tout envoyer. Ce n'est pas facile d'utiliser 33 554 432 triangles.
- Les données de la heightmap devraient fournir des points xyz utilisés pour définir les vertices d'un maillage. Ensuite, il suffirait de simplifier quelque peu le maillage et d'appliquer la texture maptile en projection du dessus.
- Le viewer qui utilise le GPU a dix fois plus de capacités pour faire cela comparé au CPU d'un serveur.
Obtenir les Heightmap
Comment Joe Magarac obtient les heightmap ?
- Joe Magarac utilise la fonction llCastRay . Cette fonction lance un rayon et renvoie les données de collision en relation avec le point de contact avec un objet.
Function: list llCastRay( vector start, vector end, list options );
Discussion
- Ubit Umarov conseille de ne pas utiliser cette méthode dans OpenSimulator. D'après lui C'est un générateurs de lag. Il est possible d'obtenir les heightmaps avec les viewers.
- Vincent Sylvester dit qu'OpenSim fournit déjà tout. Robust procure les maptiles pour les coordonnées de la grille et les régions fournissent leur heighmap complète. À partir de là, pour générer les imposteurs, il suffit de faire des calculs et les stocker localement dans un cache de fichier comme pour les objets.
- Les imposteurs pourraient fonctionner mais pas en s'appuyant sur des données statiques.
Utilisation d'OpenDroneMap
- La raison pour laquelle Joe Magarac procède de cette manière est qu'il veut aussi survoler chaque région pour prendre 50 à 100 photos qu'il utiliserait ensuite avec OpenDroneMap et ainsi générer un modèle 3D de type Google Earth.
- Avec Open Drone Map, on peut voir les côtés des bâtiments et passer sous les ponts.