Aller au contenu

« Réunion du 15-02-2022 » et « Modéliser un terrain en 37 Textures pour OpenSim » : différence entre les pages

De OSWiki
(Différence entre les pages)
Page créée avec « Source : http://opensimulator.org/index.php?title=Chat_log_from_the_meeting_on_2022-02-15&action=edit =Introduction= <pre> [11:01] Kayaker Magic : Je n'ai vu aucun nom sur aucun de ces sièges ! [11:01] Misterblue Waves : Je reçois toujours des emails de paiement de compensation de la part des Nations Unies. J'aurais pensé que cette arnaque serait terminée depuis longtemps. [11:01] Andrew Hellershanks : Bonjour à tous. [11:01] Ubit Umarov : mais vous vous ê... »
 
Balise : Révocation manuelle
 
Ligne 1 : Ligne 1 :
Source : http://opensimulator.org/index.php?title=Chat_log_from_the_meeting_on_2022-02-15&action=edit
= Modélisation du terrain  dans [https://www.blender.org/ Blender 3D] =
<br>
<big><big>Tout au long du tutoriel, dans Blender 3D,
* ne pas oublier de placer le pointeur de la souris dans l'éditeur concerné par les commandes envoyées par une ou plusieurs touches du clavier ou par des boutons de la souris.
* sauvegarder souvent le fichier blender.</big></big>
<br>
== Utiliser l'add-on A.N.T.Landscape ==
=== Add-on A.N.T.Landscape ===
* Suivre [[Terrain_en_mesh_et_height_map#Utiliser_l'add-on_A.N.T.Landscape_dans_Blender3D |le tutoriel '''Utiliser l'add-on A.N.T.Landscape dans Blender3D''']].


=Introduction=
=== Options de l'add-on ===
<pre>
[11:01] Kayaker Magic : Je n'ai vu aucun nom sur aucun de ces sièges !
[11:01] Misterblue Waves : Je reçois toujours des emails de paiement de compensation de la part des Nations Unies. J'aurais pensé que cette arnaque serait terminée depuis longtemps.
[11:01] Andrew Hellershanks : Bonjour à tous.
[11:01] Ubit Umarov : mais vous vous êtes assis sur le vôtre :)
[11:01] Jamie.Jordan @grid.kitely.com:8002 : c'est ma faute.
[11:02] Ubit Umarov : et maintenant Gavin ne se montre pas :)
[11:02] Selby.Evans @grid.kitely.com:8002 : Bonjour à tous
[11:02] Ubit Umarov: kiding
[11:02] Misterblue Waves : on dirait que je me retrouve à danser en bout de table... je ferais mieux de me déplacer.
[11:04] Michael.Christopher @cc.opensimulator.org:8002 : bonjour à tous.
[11:04] Misterblue Waves : bonjour Michael.
</pre>
= Les problèmes de versions avec .NET =  
* [https://fr.wikipedia.org/wiki/Microsoft_.NET Microsoft .NET] : nom donné à un ensemble de produits et de technologies informatiques de l'entreprise Microsoft pour rendre des applications facilement portables sur Internet.
* [https://fr.wikipedia.org/wiki/.NET_Core .NET Core] :  cadriciel (Framework) Libre et Open Source pour les systèmes d'exploitation Windows, macOS et Linux3. Il comprend CoreCLR, un environnement d'exécution complet de CLR, la machine virtuelle qui gère l'exécution des programmes .NET. En novembre 2020, Microsoft a publié .NET 5.0, qui a remplacé .NET Framework. La marque " Core " a été supprimée et la version 4.0 a été sautée pour éviter toute confusion avec .NET Framework.
* [https://fr.wikipedia.org/wiki/C_sharp C# (C sharp)] :  langage de programmation orientée objet, commercialisé par Microsoft depuis 2002, utilisé par OpenSimulator.
<pre>
[11:05] Misterblue Waves : j'ai regardé Prebuild... je pense ajouter la cible "standard20".
[11:06] Ubit Umarov : qu'est-ce que le standard20 ?
[11:06] Ubit Umarov : c'est fini.
[11:07] Ubit Umarov : d'après ms, tout est unifié dans .net5.0 maintenant .net6.0.
[11:07] Misterblue Waves : il existe toujours en tant que chose universelle. Le standard 2.1 de dotnet est spécifique.
[11:07] Ubit Umarov : c'est à dire qu'il y a aussi core2, 3 3.1 etc...
[11:07] Ubit Umarov : un désordre total.
[11:08] Misterblue Waves : c'est sûr, c'est un vrai bordel.
[11:08] Ubit Umarov : mais comme je l'ai dit, ms dit que c'est maintenant seulement .net6.0.
[11:09] Ubit Umarov : j'ai cherché aujourd'hui un connecteur mysql que Maria recommande maintenant.
[11:09] Andrew Hellershanks : Qu'est-ce qui met Misterblue d'humeur à danser ?
[11:09] Kayaker Magic : Alors Mister Blue, comment va votre nouveau projet de viewer ?
[11:09] Ubit Umarov : il est conforme à 16 variantes.
[11:09] Ubit Umarov : 8 debug, 8 release
[11:10] Misterblue Waves : oui, mais ajouter standard2.0 à un grand projet construit avec Framework4.8 est plus facile que d'essayer avec Dotnet 6.
[11:10] Ubit Umarov : les 8 comprennent 4.5, 4.6.1. 4.7.1, 5. 6. core3 standart2, etc.
[11:10] Andrew Hellershanks : Ubit, 16 variantes d'un connecteur MySQL ?
[11:10] Ubit Umarov : variantes compilées.
[11:10] Andrew Hellershanks : oh, je vois.
[11:10] Ubit Umarov : pure stupidité maintenant.
[11:11] Ubit Umarov : et même des choses effrayantes.
[11:11] Ubit Umarov: tous utilisent system.compilerservices.unsafe
[11:11] Ubit Umarov : aussi pour .net4.5
[11:12] Ubit Umarov : quand la documentation dit que c'est seulement pour .net core.
[11:12] Ubit Umarov : au moins pour les choses qui supportent les ref locals.
[11:12] Ubit Umarov : bien...  C# est juste mauvais maintenant
</pre>
= Viewer basé sur un navigateur Web =  
*[https://fr.wikipedia.org/wiki/GlTF GLTF] : format de fichier scènes et modèles 3D utilisant le format JSON.
*[https://documentation.maptiler.com/hc/en-us/articles/4410767380241-3D-vector-tiles-with-Cesium Cesium 3D]
*[[Chat_log_from_the_meeting_on_2022-02-08/fr#Syst.C3.A8me_LOD Voir les informations sur les LOD sur la page de la semaine dernière]]
*[https://threejs.org/ ThreeJS] : [https://cogito.no-ip.info/cogito/grille/galerie.php La galerie du site de la grille Argentoratum] a été construite puis générée à partir d'une région OpenSim en utilisant la bibliothèque Javascript Three.js 
*[https://www.infinitestudio.fr/2013/11/30/babylon-js-moteur-3d-base-sur-webgl-html5-et-javascript/ Babylon] : framework JavaScript qui permet de créer des mondes virtuels en 3D et exécutables directement sur votre navigateur.
*[https://fr.wikipedia.org/wiki/Unreal_Engine Unreal];: moteur de jeu vidéo propriétaire développé par Epic Games. 
*[https://fr.wikipedia.org/wiki/Feuilles_de_style_en_cascade CSS : Feuilles de style en cascade] :  langage informatique qui décrit la présentation des pages d'un site Web. La standardisation des feuilles de styles pour tous les navigateurs Web est très difficile à obtenir.
*Convoar : Convertisseur d'OAR
*[https://virtualoutworlding.blogspot.com/2018/07/2018-ww-hg-importing-oar-files-from.html Importation de fichiers OAR d'OpenSim vers Web Worlds : Convoar ]
* [https://docs.blender.org/manual/fr/3.0/render/eevee/introduction.html Moteur de rendu Evee  dans Blender] : Eevee est le moteur de rendu en temps réel de Blender, construit en utilisant OpenGL, axé sur la vitesse et l’interactivité tout en atteignant l’objectif de faire le rendu des matériaux en PBR. Eevee peut être utilisé de manière interactive dans la Vue 3D mais aussi produire des rendus finaux de haute qualité.
* [https://docs.blender.org/manual/fr/3.0/render/cycles/index.html Moteur de rendu Cycles  dans Blender] : Cycles est le traceur de chemin basé sur la physique de Blender pour le rendu de production.
* [https://cgcookie.com/articles/blender-cycles-vs-eevee-15-limitations-of-real-time-rendering Cycles vs. Eevee - 15 Limites du rendu en temps réel dans Blender (mise à jour 2021)](en)
<pre>
[11:11] Misterblue Waves : J'essaie de lancer une discussion plus large à propos des viewers.
[11:11] Misterblue Waves : jusqu'à présent, j'ai fait ce que j'avais à faire, mais j'ai besoin de plus de données.
[11:11] Michael.Christopher @cc.opensimulator.org:8002 : plus large ?
[11:12] Misterblue Waves:  pour l'instant, J'ai des modules complémentaires qui convertissent les ressources OS aux formats GLTF, utilisent les tuiles Cesium 3D pour la définition de la scène afin d'obtenir une description LOD de la scène, et avoir un viewer de navigateurs boiteux.
[11:13] Misterblue Waves : débattre de la quantité de LOD automatique à faire -- les viewers ont besoin d'assets plus simples pour les grandes scènes.
[11:15] Ubit Umarov : quels navigateurs...
[11:15] Ubit Umarov : quel viewer...
[11:17] Misterblue Waves : @Ubit, je travaille sur un viewer de monde virtuel depuis un moment et je suis plus ouvert à ce sujet.
[11:17] Ubit Umarov : ok
[11:18] Misterblue Waves : l'implémentation actuelle est ThreeJS dans n'importe quel navigateur (Chrome, Firefox, ...).
[11:18] Andrew Hellershanks : Misterblue, c'est un gros projet. J'espère que tu trouveras d'autres personnes pour t'aider.
[11:18] Selby.Evans @grid.kitely.com:8002 : Une viewer basée sur le navigateur
[11:18] Misterblue Waves : bien que, ces derniers temps, le développement se fasse davantage sur Babylon que sur ThreeJS.
[11:19] Selby.Evans @grid.kitely.com:8002 : Devrait fonctionner dans tous les navigateurs.
[11:19] Ubit Umarov : pour voir un modèle statique d'une région ?
[11:19] Misterblue Waves : J'espère avoir un viewer de navigateur et un viewer pour d'autres moteurs dans quelques mois. J'ai d'abord pensé à Unreal mais les gens n'aiment pas ça.
[11:19] Kayaker Magic : OMG, la plupart des pages WEB commerciales ont du mal à fonctionner dans tous les navigateurs !
[11:20] Kayaker Magic : J'aime Unreal !
[11:20] Misterblue Waves : @Kayaker en effet, la compatibilité en utilisant simplement le matériel "standard" est douteuse.
[11:20] Ubit Umarov : un des problèmes des bons moteurs est qu'ils coûtent $$$... beaucoup.
[11:21] Selby.Evans @grid.kitely.com:8002 : On peut déjà convertir les fichiers OAR pour les importer dans le navigateur.
[11:21] Ubit Umarov : unreal veut juste être payé...
[11:21] Ubit Umarov : aucun n'a un modèle "opensource" comme opensim.
[11:21] Kayaker Magic : Je pense qu'Unreal a changé cette politique pour les petits projets.
[11:21] Ubit Umarov : ce sont des choses qui rapportent de l'argent... pas de repas gratuit.
[11:22] Misterblue Waves : @Ubit, le protocole est organisé en "couches" qui peuvent avoir différents formats de messages et différents modes de transport réseau. Je sépare actuellement le contenu d'une région en statique, dynamique (script ou physique), et avatars.
[11:23] Misterblue Waves : @Selby, oui. J'ai écrit des "Convoar" et ces sous-programmes sont utilisés pour convertir les assets de région en GLTF à la volée ou par lots.
[11:23] Andrew Hellershanks : Kayaker, il est déjà assez difficile de faire en sorte que les pages statiques gèrent les CSS afin d'obtenir la même apparence sur plusieurs navigateurs sans ajouter des scripts au tableau.
[11:23] Kayaker Magic : L'avantage de Unreal est leur nouveau système auto-LOD. Puisque nous ne convaincrons jamais les constructeurs dans OpenSim d'optimiser leurs meshes, U5 rendrait tout ce contenu rapide.
[11:24] Misterblue Waves : la partie intéressante d'Unreal est leur optimisation du LOD dans le moteur de rendu. Cela complique architecturalement la quantité de LOD à faire dans la phase de génération des assets et dans la phase de rendu des asests.
[11:24] Selby.Evans @grid.kitely.com:8002 : Importation de fichiers OAR d'OpenSim vers Web Worlds : Convoar -- Importation de fichiers OAR d'OpenSim vers Web Worlds : Convoar
[11:24] Selby.Evans @grid.kitely.com:8002: https://virtualoutworlding.blogspot.com/2018/07/2018-ww-hg-importing-oar-files-from.html
[11:24] Misterblue Waves : sinon, il y a beaucoup de projets de rendu open-source qui pourraient être utilisés.
[11:26] Misterblue Waves : LOL, ce que @Kayaker a dit
[11:26] Selby.Evans @grid.kitely.com:8002 : Les mondes basés sur les navigateurs gagnent en popularité Decentraland, Mozilla hubs
[11:27] Selby.Evans @grid.kitely.com:8002 : en voici quelques-uns : https://mymetaversehub.com/
[11:27] Michael.Christopher @cc.opensimulator.org:8002 : Selby - je l'ai demandé assez longtemps :P
[11:28] Kayaker Magic : Beaucoup de gens demandent des voitures anti-gravité. Cela ne veut pas dire qu'elles voleront un jour.
[11:28] Andrew Hellershanks : Misterblue, Quand j'entends des références à des moteurs de rendu à utiliser avec  OS, je commence à m'interroger sur l'utilisation de celui de Blender. Il est plus probable qu'il ait une licence qui ne limite pas son utilisation à moins de payer quelqu'un un peu d'argent.
[11:29] Michael.Christopher @cc.opensimulator.org:8002 : steven utilise blender, mais je n'ai pas encore pris le temps de le découvrir, j'utilise toujours sketchup et l'exportation.
[11:29] Andrew Hellershanks hoche la tête.
[11:29] Ubit Umarov : utiliser un rendu de qualité photo pour le temps réel ? jezz
[11:30] Ubit Umarov : peu importe...
[11:30] Misterblue Waves : @Andrew, je ne me suis pas penché sur cette question. Je me demande comment on y accède et à quel point il est efficace. Le rendu d'une animation prototype peut être différent du rendu d'une vue de scène à haute fréquence d'images.
[11:30] Michael.Christopher @cc.opensimulator.org:8002 : oh attends tu veux dire en direct comme dans le monde ?
[11:30] Andrew Hellershanks : Blender est un programme avec de nombreuses parties à apprendre. Tout dépend de l'utilisation que vous en faites et de la profondeur à laquelle vous vous enfoncez dans le terrier du lapin.
[11:30] Kayaker Magic : Je suppose que le(s) moteur(s) de rendu de Blender n'ont pas été conçus pour être utilisés par d'autres systèmes, alors qu'Unreal a été conçu comme une API.
[11:30] Misterblue Waves : il y a TELLEMENT de projets de "monde virtuel" basés sur un navigateur. Il me semble que j'en trouve un nouveau tous les jours.
[11:31] Andrew Hellershanks : Misterblue, j'ai oublié quel est le (nouveau) moteur de rendu actuel de Blender mais Evee ou Cycles sont censés effectuer le rendu en temps réel.
[11:31] Andrew Hellershanks : Kayaker, j'ai entendu parler de l'un d'entre eux utilisé en dehors de Blender.
[11:31] Michael.Christopher @cc.opensimulator.org:8002 : kayaker - est-ce que c'est compliqué d'exporter de blender vers unreal ? nous travaillons toujours dans unity.
[11:31] Misterblue Waves : @Andrew, ça vaut le coup de jeter un coup d'oeil
[11:33] Misterblue Waves : une fois que le navigateur fonctionnera suffisamment, je veux un autre moteur de rendu qui fera sensation. Il y a un "bon" choix conservateur et il y a le choix "fou" qui ferait que les gens se lèvent et regardent :)
[11:33] Kayaker Magic : Je veux devenir fou !
[11:33] Andrew Hellershanks : Misterblue : Cette page couvre les différences entre Cycles et Evee -> https://cgcookie.com/articles/blender-cycles-vs-eevee-15-limitations-of-real-time-rendering
[11:34] Misterblue Waves : @Andrew merci !
</pre>


= Cartes graphiques=
* Utiliser le modèle prédéfini, par exemple '''"river"''', pour cela tout en haut de la fenêtre des options de l'add-on, ouvrez le menu déroulant '''"Opérator Presets"'''.
* [https://fr.wikipedia.org/wiki/Nvidia Nvidia] : entreprise américaine spécialisée dans la conception de processeurs graphiques.
* Un peu plus bas dans cette fenêtre, définissez les subdivisions X et subdivisions Y à 133.
<pre>
<gallery>
[11:35] Misterblue Waves : bien sûr, tout le monde a  3080 dans son ordinateur ;-)
Fichier:Options landscape.jpg| Options
[11:35] Andrew Hellershanks : 3080 ?
Fichier:Terrain phase 001.png| Terrain river
[11:36] Ubit Umarov : nahh c'est faible...  3080 ti au moins... le plus 3090
</gallery>
[11:36] Misterblue Waves : @Andrew c'est une carte graphique NVidia haut de gamme.
[11:36] Andrew Hellershanks : oh, la nouvelle ligne de cartes vidéo nVidia.
[11:36] Michael.Christopher @cc.opensimulator.org:8002 : vraiment ? j'ai dépensé 4k pour ça et j'ai seulement eu le 3080.
[11:37] Michael.Christopher @cc.opensimulator.org:8002 : ça aurait été 2k de plus pour aller vers le 3090.
[11:37] Andrew Hellershanks : Je n'ai pas reconnu le numéro au début sans le préfixe RTX.
[11:37] Michael.Christopher @cc.opensimulator.org:8002 : j'ai pris une seconde aussi andrew
[11:37] Ubit Umarov : vous ne faites rien sans un rtx3090
[11:37] Andrew Hellershanks : Je ne vais pas dépenser autant d'argent juste pour une carte vidéo.
[11:37] Misterblue Waves : bien sûr, avec un meilleur moteur de rendu, nous aurions besoin d'un meilleur contenu dans le monde. Je me souviens avoir essayé une des viewer VR et avoir trouvé que les arbres et les buissons étaient vraiment assez laid en VR.
[11:38] Ubit Umarov : la plupart des jeux haut de gamme ont besoin d'une 3080.
</pre>
= La qualité des créations de contenu dans OpenSimulator =
<pre>
[11:38] Andrew Hellershanks : Quand un viewer est capable de montrer aux gens un meilleur contenu, les gens commencent à faire un meilleur contenu.
[11:38] Ubit Umarov : bien que...
[11:39] Ubit Umarov : Non, il n'y aura jamais de meilleur contenu.
[11:39] Ubit Umarov : la solution pour avoir un meilleur contenu et une RV commerciale viable est de confier la création du contenu à des professionnels.
[11:40] Ubit Umarov : comme sansar et space le font
[11:40] Michael.Christopher @cc.opensimulator.org:8002: hmmm.
[11:40] Andrew Hellershanks : Ubit, considères-tu que le contenu en mesh n'est pas meilleur que ce qui était disponible avant lui ?
[11:40] Jamie.Jordan @grid.kitely.com:8002 : les cartes sont géniales mais elles n'ont aucune importance si vous ne pouvez pas les acheter.
[11:40] Ubit Umarov : oubliez. . le monde est pour ceux qui peuvent le payer
[11:41] Ubit Umarov : de plus en plus.
[11:41] Michael.Christopher @cc.opensimulator.org:8002 : jamie - excellent point. si les gens ne peuvent pas vraiment voir la VR sans une carte graphique de 2000-3000$, peu le feront un jour.
[11:41] Andrew Hellershanks : Fermer la création de contenu pour les " professionnels " est à peu près ce que Sansar a fait.
[11:42] Ubit Umarov : c'est ce qu'on dit Andrew.
[11:42] Ubit Umarov : et c'est la seule façon d'avoir quelque chose qui fonctionne.
[11:42] Jamie.Jordan @grid.kitely.com:8002 : Je construirais une nouveau rig demain si je pouvais obtenir des éléments.
[11:42] Ubit Umarov : on ne peut pas laisser les gens prendre des choses sur le web et les télécharger.
[11:42] Ubit Umarov : cela ne marchera jamais.
[11:43] Ubit Umarov : peu importe la qualité des optimiseurs de téléchargement.
[11:43] Andrew Hellershanks : Cela n'aiderait pas le monde à se développer si seul un nombre relativement restreint de personnes peut créer du contenu.
[11:43] Ubit Umarov : c'est l'industrie du jeu.
[11:43] Ubit Umarov : et les films, etc.
[11:44] Ubit Umarov : donc en fait, il y a beaucoup de bons créateurs ici.
</pre>
= Nouveau viewer et types d'avatars=
* [https://readyplayer.me/fr Plateforme d'avatars multi-jeux pour le Metaverse]
* [https://virtualoutworlding.blogspot.com/2022/01/2022-biz-what-opensimulatorhypergrid.html Exigences communes aux métavers]
<pre>
[11:41] Misterblue Waves : mon prochain vrai problème de rendu concerne les avatars. Je peux prendre le code de Radigast pour l'avatar de base mais je suis tout seul pour les avatars en meshes.
[11:42] Misterblue Waves : puis il y a les nouveaux formats d'avatars comme le VRM.
[11:44] Misterblue Waves : ce serait bien d'incorporer le format d'avatar utilisé par les vtubers et VRChat, etc. Il y a de bons sites de création d'avatars en ligne de nos jours.
[11:44] Ubit Umarov : création d'avatar pour quoi faire ?
[11:44] Misterblue Waves : la raison pour laquelle Minecraft et SL sont aussi populaires est la facilité de création de contenu par les utilisateurs.
[11:45] Ubit Umarov : et bien, cela a été rendu possible à sl à cause de l'idée des prims.
[11:45] Ubit Umarov : avec les meshes cela a commencé à se détériorer... même si ils sont limités à 16 bits.
[11:46] Ubit Umarov : quand même, le viewer sl fonctionne sur un GPU intégré intel.
[11:46] Ubit Umarov : des pc/ordinateurs portables de moyenne gamme.
[11:46] Michael.Christopher @cc.opensimulator.org:8002 : cela me ramène au sujet des standards pour les avatars afin que, comme notre suitcase ici, les avatars puissent faire la transition entre les mondes sans les recréer encore et encore.
[11:47] Kayaker Magic : Ouais, je suis loin de chez moi pour quelques semaines, et mon ordinateur portable fonctionne bien sans le nvidea de mon ordinateur de bureau.
[11:47] Michael.Christopher @cc.opensimulator.org:8002 : on dirait que cela nécessiterait un système de superposition pour que les mondes à bas  polygones puissent afficher une version plus simple et que les mondes à haut polygones puissent afficher toute la complexité.
[11:47] Ubit Umarov : tous les systèmes ont cela michael.Christopher
[11:47] Ubit Umarov : LOD fait aussi partie de cela
[11:48] Michael.Christopher @cc.opensimulator.org:8002 : il fait partie de ce sujet de jardin clos.
[11:48] Misterblue Waves : aujourd'hui, les gens créent des avatars en utilisant des outils comme ReadyPlayerMe (https://readyplayer.me/) et peuvent les utiliser dans de nombreux mondes différents (VRChat, Decentraland, ...).
[11:48] Ubit Umarov : avec des niveaux de LOD haute définition limités à un meilleur matériel.
[11:48] Misterblue Waves : cela devrait aussi l'être dans OpenSim
[11:48] Michael.Christopher @cc.opensimulator.org:8002: oui
[11:49] Ubit Umarov : il suffit d'ajouter un plugin avatar comme dans SL à ce readyplayerme.
[11:50] Misterblue Waves : @Ubit, je pense plutôt à l'inverse.
[11:50] Ubit Umarov : d'après ce que je vois, ce n'est pas un avatar pour tous les jeux... c'est un avatar "compilé" pour tel ou tel jeu...
[11:50] Ubit Umarov : Je sais que vous êtes... mais il ne semble pas que ce soit le cas.
[11:50] Ubit Umarov : mais je ne sais pas...
[11:50] Misterblue Waves : tout le monde nomme ses os différemment, on dirait.
[11:50] Ubit Umarov : tout le monde fait son propre truc.
[11:51] Ubit Umarov : il n'y a pas de standard "avatar".
[11:51] Michael.Christopher @cc.opensimulator.org:8002 : c'est ce que je pensais aussi ubit - il génère un avatar que vous pouvez re-uploader dans tous les autres mondes, mais si vous changez l'avatar dans un monde, vous devrez le re-uploader partout ailleurs pour répercuter ce changement.
[11:51] Ubit Umarov : juste des choses qui ont l'air identiques, parce que chacune copie les autres idées.
[11:51] Andrew Hellershanks acquiesce.
[11:51] Misterblue Waves : @Michael, je suis sûr que c'est comme ça.
[11:51] Michael.Christopher @cc.opensimulator.org:8002 : oui, c'est ce que j'essayais de dire lol
[11:52] Ubit Umarov : donc ouais... je veux faire des avatars opensim avec ça... ajouter le module à ça :p
[11:52] Misterblue Waves : il n'y a pas de stockage central ou de format dans lequel tout le monde puise. C'est aussi la même farce que les NFTs, mais c'est un autre sujet.
[11:52] Michael.Christopher @cc.opensimulator.org:8002 : Je pense que nous avons une base convenable avec la suitcase  pour parcourir l'Hypergrid.
[11:52] Ubit Umarov : donc ouais... on peut parler beaucoup...
[11:53] Ubit Umarov : mais à la fin de la journée... des spécifications concrètes sont nécessaires.
[11:53] Michael.Christopher @cc.opensimulator.org:8002 : si les utilisateurs ont un monde d'origine qui stocke leur contenu, alors en allant ailleurs l'avatar peut être chargé à partir de la maison d'origine.
[11:53] Ubit Umarov : et tout ce qui est là, dehors, est simplement une cible qui se déplace rapidement...
[11:53] Misterblue Waves : OpenSim a résolu un tas de trucs HG que le monde essaie de comprendre (encore).
[11:54] Ubit Umarov : combien de fois la roue a-t-elle été inventée :)
[11:54] Ubit Umarov : n'a pas été inventée ?
[11:54] Andrew Hellershanks : Ubit, beaucoup de fois et il sera inventé encore beaucoup plus de fois.
[11:55] Michael.Christopher @cc.opensimulator.org:8002 : ubit - mais la roue actuelle n'est pas assez bonne, nous avons besoin d'une meilleure roue.
[11:58] Selby.Evans @grid.kitely.com:8002 : Ce dont OpenSimulator/hypergrid a besoin pour être qualifié de métaverse du début. Il possède déjà la plupart des fonctionnalités nécessaires : Une réunion dans le metaverse. https://virtualoutworlding.blogspot.com/2022/01/2022-biz-what-opensimulatorhypergrid.html
</pre>
= Script : fonction osForceAttachToOtherAvatarFromInventory()=
* [[OsForceAttachToOtherAvatarFromInventory]]
<pre>
[11:52] Andrew Hellershanks : Il reste un peu moins de 10 minutes avant la fin de l'heure. J'ai une question sur osForceAttachToOtherAvatarFromInventory().
[11:53] Andrew Hellershanks : Cette fonction OSSL ne fonctionne pas avec les NPCs. Je suis allé jusqu'à vérifier si elle passe un UUID à GetScenePresence(). Est-ce que GetScenePresence() ignore les NPCs ?
[11:54] Misterblue Waves : les NPCs ne sont-ils pas une sous-classe différente de ScenePresence ? Cela pourrait signifier qu'il l'implémente différemment
[11:56] Andrew Hellershanks : Ubit, on m'a dit que la fonction ne fonctionne pas pour forcer les pièces jointes sur les NPCs.
[11:56] Ubit Umarov : oui... cela déplace l'objet dans l'inventaire de la personne.
[11:56] Ubit Umarov : et les npcs n'en ont pas.
[11:56] Andrew Hellershanks : Ah, ça explique tout.
[11:57] Ubit Umarov : pas fait pour les npc.
[11:58] Andrew Hellershanks : merci, je vais transmettre cette information.
[11:58] Ubit Umarov : je suppose qu'aucun code de script d'attachement ne fonctionne sur les npc.
[11:59] Andrew Hellershanks : Ce serait bien de pouvoir le faire, même si cela n'est probablement pas nécessaire très souvent.
</pre>


= Changements dans le code OpenSim cette semaine =  
== Pourtour du terrain ==
* [http://opensimulator.org/viewgit/?a=shortlog&p=opensim  Journal des commits OpenSim]
* En '''mode object''', délectionner le plan qui simule le niveau de l'eau et le masquer à l'aide de '''la touche H''' .
* [https://bitbucket.org/opensimulator/libopenmetaverse/src/master/ libopenmetaverse]
* En '''mode Edit''', sélectionner les sommets de la périphérie du terrain. Pour chaque côté, placez le pointeur de la souris près du bord et en pressant sur les touchez SHIFT + ALT faire un clique gauche. La ligne de sommets devait se sélectionner en une seule fois. Faire cela sur les 4 côtés.
<pre>
* Extruder une fois ces sommets vers le bas avec '''la touche E puis Z''' (2 ou trois carreaux de la grille).
[11:17] Andrew Hellershanks : D'après le journal des changements dans OS de la semaine dernière, la plupart des changements étaient liés à libOMV.
* Égaliser la hauteur des sommets : '''S puis Z puis 0'''
[12:00] Ubit Umarov : bien à propos des changements de code de la semaine dernière.
* Divisier la hauteur des bords avec '''CTRL + R''' et faire 6 boucles avec la '''molette''' de la souris.
[12:00] Ubit Umarov : comme andrew l'a dit, quelques changements sur libopenmetaverse.
* En '''mode Object''' sélectionner le terrain et appliquer les modifications du mesh : CTRL + A  et sélectionner All Transforms.
[12:01] Ubit Umarov : avec un peu d'accélération sur json à partir du code de sérialisation OSD.
<gallery>
[12:01] Ubit Umarov : l'original était juste mauvais
Fichier:Terrain phase 001 H.jpg|Utiliser H
[12:01] Ubit Umarov : parce qu'il utilise une bibliothèque, ( litJson)
Fichier:Terrain phase 001 periph.jpg|Périphérie
[12:02] Ubit Umarov : pour envoyer quelque chose en json, nous devons créer un objet OSD en y ajoutant des choses.
Fichier:Terrain phase 001 extruder.jpg | E + Z
[12:02] Ubit Umarov : les choses de .net qui sont stockées dans les nouveaux objets OSD.
Fichier:Terrain phase 001 egaliser.png | S puis Z puis 0
[12:03] Ubit Umarov : c'est toujours nécessaire, bien sûr.
Fichier:Terrain phase 001 decoupage.jpg | CTRL + R et molette
[12:03] Ubit Umarov : mais le code original n'a pas été converti en objets natifs de la bibliothèque.
Fichier:Terrain phase 001 modif.jpg |Modifications appliquées
[12:03] Ubit Umarov : donc une tonne supplémentaire de classes .net temporaires...
</gallery>
[12:04] Ubit Umarov : puis j'ai utilisé la bibliothèque pour convertir les chaînes de caractères en utf-16.
 
[12:04] Ubit Umarov : et de celles-ci en utf-8 byte[].
= Dessiner les coutures du terrain =
[12:04] Michael.Christopher @cc.opensimulator.org:8002 : :/ Je dois partir, il est temps d'aller chercher mon fils à l'école. Passez une bonne semaine et envoyez-moi un email si vous avez besoin de moi !
== Coutures des bords ==
[12:05] Ubit Umarov : le nouveau code, va directement des objets OSD aux byte[] en utf8.
* En mode Edit, sélectionner la première ligne de sommets au-dessus des bords avec  '''SHIFT + MAJ''' et en faisant un '''clic gauche''' tout près de la ligne. Faire cela sur les 4 côtés. En cas d'erreur supprimer la dernière action avec '''CTRL + Z'''. On '''zoome''' avec la '''molette de la souris''' pour être plus précis.  
[12:05] Andrew Hellershanks : ok, Michael. Merci d'être passé.
* Marquer la couture depuis le menu '''Edge'''  avec '''Mark Seam'''.
[12:05] Ubit Umarov : c'est utilisé dans plusieurs endroits comme une partie de l'api Robust.
* Sélectionner les arêtes des 4 angles des bords du terrain avec le raccourci clavier '''SHIFT + MAJ''' vu précédemment.
[12:05] Misterblue Waves : prends soin de toi Michael.
* Marquer la couture depuis le menu '''Edge'''  avec '''Mark Seam'''.
[12:05] Ubit Umarov : les téléports...
<gallery>
[12:05] Ubit Umarov : etc.
Fichier:Terrain phase 002 selection.jpg|Sélection
[12:06] Ubit Umarov : salut Mi.
Fichier:Terrain phase 002 bord sup.jpg | Ligne supérieure
[12:06] Ubit Umarov : malheureusement la désérialisation est toujours comme avant...
Fichier:Terrain_phase_002_arete.jpg | Angle
[12:06] Ubit Umarov : byte[] -> utf16 -> litjson data -> osd -> .net variables
Fichier:Terrain phase 002 coutures.png | Coutures
[12:07] Andrew Hellershanks : Cela fait beaucoup d'étapes.
</gallery>
[12:07] Ubit Umarov : un exemple parfait de ce qu'opensim a considéré jusqu'à présent comme un "bon" protocole.
 
[12:07] Ubit Umarov : c'est effrayant quand on lit les nouveaux protocoles opensim :P
== Dessiner 36 carrés sur le terrain ==
[12:08] Ubit Umarov : parce que vous voyez ce que je veux dire :p
*  Sélectionner les bords du terrain. Pour cela, passer en sélection par face et sélectionner la ligne inférieure des faces avec '''SHIFT + MAJ'''. Les 4 côtés devraient être sélectionnés en une fois. Ensuite,  enfoncer la touche '''CTRL et presser la touche + de clavier numérique''' pour sélectionner une ligne supplémentaire. Presser sur la touche + pour sélectionner l'ensemble des bords du terrain. Pour désélectionner une ligne, utiliser la '''touche - du pavé numérique''' à la place de la touche +.
[12:09] Ubit Umarov : ça marche bien sur des régions avec 20ppl qui dansent tous la même danse tout le temps :p
* Masquer les bords avec la '''touche H'''.  
[12:09] Ubit Umarov : je ne sais pas pourquoi les gens ne veulent faire plus que ça.
* Passer en vue du dessus avec  '''NUM 7''' (touche 7 du pavé numérique) et en sélection par point.
[12:09] Ubit Umarov : ;)
* Sélectionner le bord gauche du plateau du terrain avec '''SHIFT + ALT''' et '''clic gauche''' de la souris (toujours zoomer pour se mettre proche du bord cible).
[12:09] Misterblue Waves : ce genre de choses nous a permis de nous en sortir pendant longtemps.
* Utiliser la technique de '''la touche NUM + avec CTRL''' 22 fois pour sélectionner 22 lignes supplémentaires. (Rappel : enfoncer la touche CTRL et utiliser la touche + du pavé numérique pour sélectionner les autres lignes. )
[12:10] Misterblue Waves continue à danser avec les 5 personnes présentes :)
* Repérer la dernière ligne sélectionnée. Désélectionner tout avec '''ALT + A''' et, sélectionner cette dernière ligne  avec '''SHIFT + ALT et clic''' et la marquer depuis le menu '''Edge''' avec '''Mark Seam.'''
[12:10] Ubit Umarov : :)
* Laisser cette ligne sélectionnée et utiliser la combinaison '''CTRL + NUM+''' 22 fois pour repérer la prochaine ligne de couture à marquer avec '''Mark Seam'''. Attention les lignes à gauche de la ligne de départ vont aussi être sélectionnées. Seules les lignes de droite nous intéressent ici.  
[12:10] Andrew Hellershanks: :)
* Continuez ainsi pour obtenir 6 subdivisions de 22 lignes chacune sur la largeur du terrain.  
[12:10] Ubit Umarov : .net5/6 a maintenant son propre json.
* Subdiviser le terrain de la même façon en partant de la ligne horizontale du dessus pour obtenir 6 subdivisions verticales du terrain. Ainsi la grille obtenue forme 36 carrés.
[12:10] Ubit Umarov : et son propre utf8 direct
<gallery>
[12:11] Ubit Umarov : mais yeachhhh... certains codes sont assez moches aussi
Fichier:Terrain phase 003 base.png |Sélection par face
[12:11] Misterblue Waves : il est temps de mettre à jour tout l'OS vers Dotnet 6 !
Fichier:Terrain_phase_003_selection.jpg | CTRL + NUM +
[12:11] Ubit Umarov : je le fais avec d'autre code... en fait comme du code .net 2.0
Fichier:Terrain phase 003 selection complete.jpg |Sélection
[12:11] Misterblue Waves : convertir tout le code !
Fichier:Terrain phase 003 bords masques.png |Masquer avec H
[12:11] Ubit Umarov : ça marche aussi vite que ce nouveau code.
Fichier:Terrain phase 004 bord gauche.png |Bord gauche
[12:12] Ubit Umarov : ouais, .net5 en gros, c'est quoi ?
Fichier:Terrain phase 004 22 lignes.png |23 lignes
[12:12] Ubit Umarov : une migration correcte vers ce système impliquerait une réécriture à 90%.
Fichier:Terrain phase 004 ligne 22 marquee.jpg |Couture
[12:12] Ubit Umarov : sans parler des choses perdues.
Fichier:Terrain phase 004 selection suite.jpg | Repérage suite
[12:12] Misterblue Waves : quelle est la raison pour laquelle nous ne pouvons pas encore convertir ? Les anciens systèmes ?
Fichier:Terrain phase 004 divisions horizontales.jpg |Subdivisions horizontales
[12:12] Ubit Umarov : comme l'image
Fichier:Terrain phase 004 selection horizontale.jpg | Sélection horizontale
[12:13] Ubit Umarov : pour commencer notre propre site :p
Fichier:Terrain phase 004 36 carres.jpg | 36 carrés.
[12:13] Misterblue Waves : oui, Image et Bitmap sont de vrais problèmes.
</gallery>
[12:13] Ubit Umarov : alors ... tout cela semble juste assez mauvais
 
[12:13] Ubit Umarov : la chose des tâches qu'ils aiment
= Générer les UVMap =
[12:13] Ubit Umarov : c'est juste MAUVAIS
== UVMap des bords ==
[12:14] Ubit Umarov : J'ai essayé sur le serveur https.
* En mode Edit, faire réapparaître les bords avec '''ALT + H'''.
[12:14] Misterblue Waves : c'est pourquoi j'aime Standard2.0, tout un tas de sous-projets d'OS peuvent être convertis en cela sans s'engager dans un changement total pour le moment.
* Sélectionner uniquement le plateau en inversant la sélection avec '''CTRL + I'''.
[12:14] Ubit Umarov : j'ai beaucoup plus d'échecs de GC
* Masquer le plateau avec '''la touche H'''.
[12:14] Ubit Umarov : plus de mémoire perdue par GC
* Sélectionner l'ensemble des bords du terrain avec la touche '''A en mode Edit'''.
[12:14] Ubit Umarov : et des fuites de threads
* Dans l'espace de travail '''UV Editing''', génerer l'UVMap des bords depuis le '''menu UV'''. Utiliser '''Unwrap Angle Bassed''' (avec Unwrap Minimum Stretch, le modificateur Decimate déforme le texture des bords, voir [[#Exporter_le_terrain_au_format_Collada |Exporter le terrain au format Colla]] . L'UVMap des bords s'affiche dans la fenêtre de l'éditeur UV.
[12:14] Ubit Umarov : spécialement avec mono
<gallery>
[12:14] Misterblue Waves : vraiment ? Les tâches sont si mauvaises ? Ou juste la façon dont nous les utilisons ?
Fichier:Terrain phase 005 afficher bords.jpg| Bords affichés
[12:14] Ubit Umarov : et plus lent
Fichier:Terrain phase 005 selection plateau.jpg |Plateau sélectionné
[12:15] Ubit Umarov : Nous n'utilisons pas les tâches.
Fichier:Terrain phase 005 plateau masque.png | Masquer avec H
[12:15] Ubit Umarov : tous les enfants modernes le font :p
Fichier:Terrain phase 005 selection bords.png |Sélection avec A
[12:15] Ubit Umarov : pas opensim
Fichier:Terrain phase 005 UVMap bords.jpg | UVMap des bords
[12:15] Misterblue Waves : nous avons des wrappers autour des Threads dans le code existant.
</gallery>
[12:15] Ubit Umarov : nous utilisons les threads.
 
[12:15] Ubit Umarov : pas les tâches
== UVMAP du plateau ==
[12:16] Ubit Umarov : la tâche est une couche supplémentaire autour des threads
* Afficher le plateau du terrain avec la combinaison de touches '''ALT + H'''.
[12:16] Ubit Umarov : le tash async attend, même un changement total de code sous le capot
* Déselectionner le plateau avec '''ALT + A'''. Sélectionner chaque côté du bord du terrain en plaçant ''la souris sur une zone délimitée par des coutures'' et utiliser la '''toucher L'''. Il y a 4 zones, une par côté.
[12:16] Misterblue Waves : J'ai utilisé les Tasks dans mon nouveau code mais je n'ai pas encore insisté pour voir si elles se cassent.
* Masquer les bords avec la '''touche H'''.  
[12:16] Ubit Umarov: en ajoutant des variables statiques et des machines d'état démentes.
* '''Le but''' ici est de maximiser la taille et le nombre d'images à importer dans OpenSim afin d'obtenir une texture aussi nette que possible. Il sera donc nécessaire de générer l'UVMap pour chacune des 36 zones carrées délimitées par des coutures sur le plateau du terrain, et ce, successivement, afin qu'elles occupent le maximum d'espace. Je n'ai pas trouvé d'autre solution, mais peut-être en existe-t-il d'autres. Dans tous les cas, cela nécessitera de répéter cette opération 36 fois.
[12:17] Ubit Umarov : le code ms est génial quand il n'est pas utilisé :p
* Dans l'espace de travail UV Editing, dans la vue 3D, se placer en vue du dessus '''NUM 7'''.Par convention, les carrés seront numérotés de gauche à droite et de haut en bas.
[12:17] Misterblue Waves : "Insane State Machines" est le nom d'un groupe de rock.
* En mode Édition et en mode sélection par face, placer le curseur de la souris sur la zone 1 et appuyer sur la touche L pour sélectionner cette zone.
[12:17] Ubit Umarov : :)
* Générer l'UVMap de cette zone depuis le menu UV et choisir '''Unwrap Minimum Stretch''' si la version de Blender est supérieure ou égale à 4.3 ; sinon, choisir '''Unwrap Angle Based'''.
[12:17] Ubit Umarov : bien, sur le  httpserver envoyé, j'ai utilisé l'ancien début/fin.
* Sélectionner chaque zone une par une pour générer son UVMap comme indiqué ci-dessus. Veiller à ce qu'une seule zone soit sélectionnée. Pour désélectionner la zone précédente, il suffit de cliquer dans la nouvelle zone.
[12:18] Andrew Hellershanks : Misterblue, :)
* Il est préférable de vérifier rapidement si toutes les UVMaps ont été générées. Pour cela, une petite routine très rapide peut être utilisée : cliquer sur une zone, appuyer sur L, l'UVMap de la zone s'affiche dans l'éditeur UV, cliquer sur la zone suivante, appuyer sur L, etc. Si une UVMap ne s'affiche pas, c'est qu'elle n'a pas été générée, il faudra le faire.
[12:18] Ubit Umarov : qu'ils utilisent toujours à un niveau inférieur.
<gallery>
[12:18] Ubit Umarov : parce que c'est ce qui fonctionne le mieux dans Windows (overlaped io).
Fichier:Terrain phase 005 selection plateau.jpg | ALT + H
[12:19] Ubit Umarov : et pas si mal sur les wrappers linux.
Fichier:Terrain phase 006 selection par zone.png | Sélection par zone avec L
[12:20] Ubit Umarov : le futur code d'opensim a demandé beaucoup de travail à l'époque de .netcore.
Fichier:Terrain phase 005 afficher bords.jpg| Bords sélectionnés
[12:20] Ubit Umarov : jusqu'à 3.1
Fichier:Terrain phase 006 plateau.jpg | Bords masqués
[12:20] Selby.Evans @grid.kitely.com:8002 : au revoir à tous.
Fichier:Terrain phase 006 36 carres num.jpg | Numérotation
[12:21] Ubit Umarov : parce que la quantité de choses à réécrire était beaucoup plus importante.
Fichier:Terrain phase 006 selection de zone.jpg |Sélection par zone avec  L
[12:21] Ubit Umarov : salut Selby.
Fichier:Terrain phase 006 uvmap carre.jpg | UVMap d'une zone
[12:21] Ubit Umarov : 2 en retard
</gallery>
[12:21] Ubit Umarov : dans core3.1 ms ont compris qu'ils auraient besoin de porter beaucoup plus de frameworks vers lui.
 
[12:22] Ubit Umarov : ils ont juste laissé beaucoup de choses de côté, comme l'image...
= Créer les matériaux =
[12:22] Ubit Umarov : bien qu'ils aient l'image... bit, map etc... Windows seulement.
== Matériau des bords ==
[12:22] Ubit Umarov : sur le .net5.0-windows
* En '''mode Edit''', afficher et sélectionner les bords du terrain comme vu précédemment.  
[12:22] Ubit Umarov : bahh
* Ouvrir le '''panneau des propriétés des matériaux''' (petite icône orange) dans l'éditeur des propriétés.  
[12:23] Ubit Umarov : sans .net6.0-windows bien sûr.
* Appuyer sur le bouton '''"New"'''. Nommer le matériau, par exemple "Terrain_Bords". Appuyer sur le bouton '''"Assign"''' pour attribuer le nouveau  materiau à la sélection, c'est à dire ici à l'ensemble des bords du terrain.  
[12:24] Ubit Umarov : oh la semaine dernière j'ai aussi accepté un patch.
* Il est possible de modifier la couleur dans '''Base Color'''.  
[12:24] Misterblue Waves : J'ai vu ça !
* Attention, pour l'instant, un seul matériau a été créé. Même si ce matériau est assigné à une partie du mesh, il est appliqué sur '''l'ensemble du mesh'''.
[12:24] Ubit Umarov : j'ai ajouté quelques bibliothèques pour le processeur 64bit de Rasp Pi.
<gallery>
[12:25] Andrew Hellershanks : J'ai remarqué cela aussi
Fichier:Terrain phase 005 afficher bords.jpg| Bords sélectionnés
[12:25] Ubit Umarov : oh c'était déjà dans la semaine précédente :)
Fichier:Terrain phase 007 proprietes materiaux.jpg|Matériaux
[12:25] Jamie.Jordan @grid.kitely.com:8002 : A la semaine prochaine.
Fichier:Terrain phase 007 materiau bords.jpg | Configuration
[12:26] Misterblue Waves : au revoir Jamie.
Fichier:Terrain phase 007 materiau vert.jpg | Ensemble du mesh
[12:26] Ubit Umarov : Oh et Gavin n'est pas venu.
</gallery>
[12:26] Ubit Umarov : J'espère que tout va bien pour lui.
 
[12:26] Andrew Hellershanks : Une correction de bogue cette semaine pour  stopper certains doublons de messages instantanés.
== Matériaux des carrés ==
[12:27] Ubit Umarov : oui, j'en ai ajouté un récemment :p
=== Créer les matériaux ===
[12:27] Ubit Umarov : dans le cas de plusieurs régions par instance.
* Créer un matériau de base qui sera copié pour chacune des 36 zones carrées du plateau du terrain. Pour cela,  dans le panneau des propriétés des matériaux, appuyer sur '''le bouton +''' en haut à droite. Appuyer sur '''New''' et nommer le nouveau matériau créé, par exemple, '''"Terrain_carre_modele"'''.  
</pre>
* Aller dans l'espace de travail '''Shading'''. Dans l''''éditeur de Shader''' le matériau que nous venons de créer est représenté sous la forme d'un '''Système de Nœuds'''.
= Conclusion =
* Dans Blender, le terme '''nœud''' est utilisé pour désigner les éléments du système de création de matériaux. Bien que ce terme ne soit pas toujours intuitif, il fait référence à des points de connexion qui '''modifient le signal''' final, allant '''d'une source à un émetteur'''. Chaque nœud représente une fonction ou un processus, et les connexions entre eux déterminent comment les données sont traitées pour créer le matériau final.
<pre>
* Avec '''SHIFT + A'''  faire apparaître le menu '''Add''' qui permet d'ajouter un nouveau nœud . Cliquer sur  '''Search''' et cherchez le nœud '''Image Texture'''. Cliquer sur ce nœud et le placer dans l'éditeur de shader. Ce nœud va permettre d'assigner une texture au matériau.
[12:27] Andrew Hellershanks : Je me demande ce qu'il en est de Bill, car on le voit rarement par ici.
* Relier le point '''Color''' du nœud '''Image Texture''' au point '''Base Color''' du nœud '''Principal BSDF''' : cliquer avec le bouton gauche sur le premier point, maintenir le bouton enfoncé, tirer jusqu'au deuxième point et relâcher.
[12:27] Ubit Umarov : une copie par région :p
* Créer une nouvelle image en appuyant sur '''New''' dans le nœud '''Image Texture'''. Donner un nom à l'image comme par exemple, "Terrain_Texture". Définir les dimensions de l'image : 2048 pour la largeur (Width)  et 2048  pour la hauteur (Height). À noter : Si on indique 1024*2, Blender 3D  effectuera automatiquement l'opération et affichera 2048. Appuyer sur le bouton '''New Image''' pour terminer.
[12:27] Ubit Umarov : oui, Bill est passé sur la grille rl.
* Générer 36 matériaux à partir matériau de base qui vient d'être créé. Pour chaque matériau :
[12:27] Andrew Hellershanks : ah, ok. Maintenant le message de commit a plus de sens.
# Dans l'éditeur de propriété des matériaux appuyer sur le '''bouton +'''.
[12:28] Ubit Umarov : je suppose que la seule chose sur opensim est de faire tourner sa région.
# À gauche du bouton New, déplier la liste des matériaux disponibles et sélectionner "Terrain_carre_modele".
[12:29] Andrew Hellershanks : Nous sommes de nouveau en heures supplémentaires à l'heure et demie. Il est temps de mettre un terme à cette réunion.
# Créer un nouveau matériau en cliquant sur l''''icône New material''' à gauche du nom du materiau. Un numero est ajouté au nom. Le nom du dernier matériaux généré devrait être '''Terrain_carre_036'''.
[12:29] Andrew Hellershanks : Gavin a-t-il récemment acheté un nouvel ordinateur ? Peut-être que cela lui donne des maux de tête.
 
[12:29] Ubit Umarov : ohh tu forces MB à arrêter de danser ?
<gallery>
[12:30] Andrew Hellershanks : Non, il peut continuer à danser s'il le souhaite.
Fichier:Terrain phase 008 ajouter materiau.jpg | Nouveau matériau
[12:30] Andrew Hellershanks : Merci à tous d'être venus. Nous vous reverrons la semaine prochaine.
Fichier:Terrain phase 008 materiau base.jpg | Matériau de base
</pre>
Fichier:Terrain phase 008 système de noeuds.jpg | Système de nœuds
Fichier:Terrain phase 008 Menu Add.png | Menu Add
Fichier:Terain phase 008 Image texture.jpg | Nœud Image Texture
Fichier:Tarrain phase 008 connexion Image texture.jpg |Connexion
Fichier:Terrain phase 008 creer Image.jpg | Créer une image
Fichier:Terrain phase 008 materiau carré.jpg | Panneau des matériaux
Fichier:Terrain phase 008 meme materiau.jpg | Matériau copié
Fichier:Terrain phase 008 materiaux.jpg | Plusieurs matériaux
</gallery>
=== Assigner les matériaux ===
* Dans l''''espace de travail Shading''', en '''mode Edit''' et vue du dessus ('''NUM 7''') , sélectionner un des carrés du plateau du terrain avec la '''touche L'''.
* Sélectionner le matériaux correspondant au numéro du carré (carré N, matériau Terrain_carre_modele_N) dans l''''éditeur de shader''' ou dans l''''éditeur de propriété des matériaux'''.
* Assigner le matériau à la sélection en appuyant sur le '''bouton Assign''' dans l''''éditeur de propriété des matériaux'''.
* Dans l''''éditeur de shader''' créer une nouvelle texture sur la base de la texture créée dans le premier matériau, en cliquant sur '''le numéro''' à droite du nom de l'image dans le '''nœud Image Texture'''. La texture à son tour prend un numéro comme le matériau, signe que la texture n'est plus liée à la texture de base et qu'elle pourra être modifiée indépendamment.
* Procéder ainsi pour les 36 carrés du plateau du terrain.
<gallery>
Fichier:Terrain phase 009 selection avec L.jpg | Sélection
Fichier:Terrain phase 009 selection materiau.jpg | Matériau
Fichier:Terrain phase 009 assigner.jpg | Assigner
Fichier:Terrain phase 009 Image texture.png | Icône numérotée
Fichier:Terrain phase 009 texture dissociee.jpg | Nouvelle texture
Fichier:Terrain phase 009 selection en cours.jpg | Assignation en cours
Fichier:Terrain phase 009 materiaux assignes.png | Matériaux assignés
</gallery>
 
= Peinture des 37 textures =
== Apprendre à peindre dans Blender : les bords du terrain ==
=== Créer une image ===
* Se placer dans l'espace de travail '''Shading''' et sélectionner '''Terrain_bords''' (le matériau des bords) dans la liste des '''Slots'''.
* Avec '''SHIFT + A'''  faire apparaître le menu '''Add''' qui permet d'ajouter un nouveau nœud . Cliquer sur  '''Search''' et cherchez le nœud '''Image Texture'''. Cliquer sur ce nœud et le placer dans l'éditeur de shader. Ce nœud va permettre d'assigner une texture au matériau.
* Relier le point '''Color''' du nœud '''Image Texture''' au point '''Base Color''' du nœud '''Principal BSDF''' : cliquer avec le bouton gauche sur le premier point, maintenir le bouton enfoncé, tirer jusqu'au deuxième point et relâcher.
* Créer une nouvelle image en appuyant sur '''New''' dans le nœud '''Image Texture'''. Donner un nom à l'image comme par exemple, "Bords_Texture". Définir les dimensions de l'image : 2048 pour la largeur (Width)  et 2048  pour la hauteur (Height). Appuyer sur le bouton '''New Image'''.
<gallery>
Fichier:Terrain phase 010 Slots.png | Slots
Fichier:Terrain phase 008 Menu Add.png | Menu Add
Fichier:Terain phase 008 Image texture.jpg | Nœud Image Texture
Fichier:Tarrain phase 008 connexion Image texture.jpg |Connexion
Fichier:Terrain phase 010 bords texture.png  |Texture des bords.
</gallery>
=== Masquer une partie du maillage ===
* Se placer dans l''''espace de travail Texture Paint'''.
* En peignant les bords, il est possible de peindre involontairement et de manière peu soignée le plateau du terrain. Ce tutoriel explique comment '''protéger une partie d'un mesh''' des projections de peinture indésirables.
* Pour cela, dans la vue 3D sélectionner en '''mode Edit''' les bords du mesh avec la '''touche L''' puis inverser la sélection avec '''CTRL + I'''.
* Enfin, masquer le plateau avec la '''touche H'''. Passer en '''mode object'''.
* Seuls les bords sont visibles et pourront être peints.
<gallery>
Fichier:Terrain phase 010 Bords.jpg| Bords à peindre
</gallery>
=== Découvrir l'espace de travail Texture Paint ===
* Dans ce tutoriel, la texture des bords aura l'apparence de la roche, mais il est également possible d'assurer une continuité avec celle du plateau. La capture d'écran intitulée '''Texture Paint''' dans la '''galerie d'images''' ci-dessous facilite la compréhension de ce tutoriel.
* Sélectionner la '''texture des bords''' dans l''''éditeur d'images''' et dans la '''vue 3D''' comme indiqué sur la capture d'écran.
* Déplier  le '''panneau latéral''' de la vue 3D en appuyant sur la '''touche N''' puis ouvrir l'onglet '''Tool''' (outils) où sont regroupés les outils et options spécifiques pour peindre directement sur les textures des objets, permettant de sélectionner des pinceaux, de régler leur taille, leur force, et d'appliquer divers effets de peinture.
<gallery>
Fichier:Terrain phase 010 Texture Paint.jpg | Texture Paint
</gallery>
=== Test de peinture dans Blender 3D ===
* Pour vérifier que tout est bien en place, faire un '''test de peinture''' sur le mesh avec une simple couleur. Pour cela, en mode '''Texture Paint''', sélectionner '''une couleur''' dans le sélecteur de couleur ('''Color Picker''') dans les outils de peinture du panneau latéral. Vérifier que l''''icône Brush''' (le petit pinceau en haut à gauche de la vue 3D, est bien sélectionnée. Si c'est le cas, '''le curseur de la souris est un cercle''' avec une croix à l'intérieur. La taille du cercle reflète la taille du pinceau. Appuyer sur '''la touche F''' permet de modifier rapidement la taille du pinceau. Une fois la touche enfoncée, il suffit de déplacer la souris pour ajuster la taille selon les besoins.
* '''Avertissement 1 ''': si le pinceau est trop grand, l'ordinateur devra gérer la modification de surfaces étendues, ce qui demande beaucoup de ressources. Selon la puissance de la machine, cela peut entraîner un '''risque de plantage''' sans possibilité de retour en arrière.
* '''Avertissement 2''' : '''les modifications apportées à la texture ne sont pas enregistrées automatiquement'''. Si Blender est fermé sans avoir enregistré le fichier, ces modifications seront perdues. Pour éviter cela, activez l'option File > External Data > automatically packs  et assurez-vous d'enregistrer votre fichier Blender et vos textures aussi souvent que possible.
* '''Le test''' : réduire le pinceau, dessiner sur le mesh. Le dessin devrait apparaître sur la texture de l'éditeur d'images. Inversement, dessiner sur la texture dans l'éditeur d'images. Les modifications devraient apparaître sur le mesh.
<gallery>
Fichier:Terrain phase 010 test peinture.jpg | Test de peinture
</gallery>
=== Trouver une texture  avec BlenderKit ===
* Il est possible d'utiliser une texture ou une image pour peindre sur le mesh, comme une texture de roche. Cela peut être n'importe quelle texture : une texture stockée sur  ordinateur, une texture téléchargée depuis un site quelconque ou un site spécialisé comme [https://ambientcg.com/list?q=rock&sort=popular '''ambientcg.com]'''. Voyons comment trouver facilement des '''textures de bonne qualité et gratuites avec BlenderKit'''.
* '''BlenderKit''' est un add-on pour Blender 3D qui permet aux utilisateurs d'accéder à une bibliothèque en ligne de modèles 3D, de matériaux, de brosses et d'autres ressources. Il facilite l'importation de ces éléments directement dans les projets Blender. BlenderKit propose à la fois des ressources gratuites et payantes.
* Depuis le menu '''Edit>Preferences> Get Extensions''', rechercher BlenderKit. Appuyer sur le bouton '''Install''' placé à côté du nom de l'add-on '''BlenderKit [FREE]'''. Fermer la fenêtre des préférences. La '''barre de menu BlenderKit''' s'affiche en haut et au centre de la vue 3D.
* Dans l'espace de travail Layout, dans l'éditeur de propriété des matériaux, sélectionner le matériau Terrain_carre_modele.
* Depuis le champ de recherche de BlenderKit, '''chercher "coast rock material"'''. Faire un '''clic droit''' sur le deuxième matériau  proposé (voir l'image de la galerie). Le matériaux doit apparaître dans la liste des matériaux dans le panneau des propriétés des matériaux.
* Passer dans l''''espace de travail Shading'''. '''Le système de nœuds''' du matériau téléchargé s'affiche dans l''''éditeur de shader'''.
* Cliquer sur '''le nœud Base Color''', qui est un nœud Image Texture. La texture '''Albedo''' (définissant la couleur de base du matériau) s'affiche dans l'éditeur d'image. En cliquant sur d'autres nœuds Image Texture, d'autres textures s'affichent, comme la normal map par exemple. Cependant, seule la texture du nœud Base Color sera utilisée ici.
* Pour enregistrer la texture, cliquer sur '''menu hamburger''' (trois traits horizontaux) puis aller dans Image> Save as ... '''Enregistrer''' la texture sur l'ordinateur.
<gallery>
Fichier:Terrain phase 011 BlenderKit.jpg |BlenderKit
Fichier:Tableau phase 011 barre blenderKit.jpg | Barre BlenderKit
Fichier:Terrain phase 012 charger materiau.jpg | Charger un matériau
Fichier:Terrain phase 012 enregistrer texture.jpg | Afficher une texture
Fichier:Tarrain phase 012 enregistrer texture roche.png | Enregistrer
</gallery>
<!-- https://ambientcg.com/list?q=rock&sort=popular, coast rock material -->
 
=== Peindre avec une texture ===
* Passer dans l'espace de travail '''Texture Paint'''. Dans l''''éditeur de propriétés''' à droite, cliquer sur l'icône des textures pour ouvrir l''''éditeur de propriétés des textures'''.
* Appuyer sur le '''bouton New''' puis sur le '''bouton Open''' pour ouvrir la texture qui vient d'être enregistrée. '''Nommer''' la texture "Roche".
* Ouvrir le '''panneau latéral''' avec '''la touche N''' et accéder aux outils ('''onglet Tool'''). Sous le menu déroulant '''Texture''', la texture récemment ouverte devrait apparaître. Si ce n'est pas le cas, cliquer sur le carré de prévisualisation des textures. Une fenêtre s'ouvre avec les textures du projet (il ne devrait y en avoir qu'une). Cliquer sur la texture de roche.
* Sous le même menu Texture, cocher la '''case Random''' pour que l'orientation de la texture change à chaque application, ce qui donnera une apparence '''plus réaliste''' à la texture créée.
* Sélectionner du '''blanc''' dans '''Color Picker''' en passant le curseur de droite du noir au blanc.
* Sélectionner la texture des bords (Bords_texture pour ce tuto)  dans l'éditeur d'image et dans la vue 3D (voir l'image Texture Paint).
*  Peindre le bord comme dans le test avec la couleur. Cette fois, il faut '''tapoter''' pour appliquer des plages de textures sur les bords, en veillant à '''varier la taille du pinceau''' pour éviter que le motif ne se répète trop. '''Se placer bien en face''' de la partie à peindre. Ici comme c'est un carré, peindre chaque côté l'un après l'autre en utilisant les touche du '''pavé numérique NUM 3, CTRL + NUM 3 , NUM 1 et CTRL + NUM 1''' pour se placer.
* '''Enregistrer la texture''' depuis le '''menu Image > Save As''' de l'éditeur d'images. Préférer un '''format jpg'''.
<gallery>
Fichier:Terrain phase 013 proprietes textures.jpg|Propriétés des textures
Fichier:Terrain phase 013 ouvrir image.jpg| Ourvir une image
Fichier:Terrain phase 013 panneau lateral.jpg| Panneau latéral
Fichier:Terrain phase 010 Texture Paint.jpg | Texture Paint
Fichier:Terrain phase 013 peindre avec texture.png|Peindre
Fichier:Terrain phase 013 bords peints.jpg
</gallery>
 
== Peindre le plateau du terrain ==
=== Nouvelles textures ===
* Pour peindre l'herbe, charger une '''nouvelle texture''' depuis le panneau des '''propriétés des textures'''. Rechercher '''"Grass material"''' dans '''BlenderKit''' et procéder comme pour la texture de roche dans l''''espace de travail Shading''' avec le '''système de nœuds'''. Penser à créer  un nouveau matériau non assigné. Le sélectionner dans la vue 3D et dans l'éditeur d'image, pour éviter de modifier le matériau d'une partie du mesh . Il est également possible d'utiliser une autre texture d'herbe que celles de BlenderKit.
* Quand le texture d'herbe est prête, dans le panneau des propriétés des textures, appuyer  sur l''''icône New Texture''' à droite du nom de la texture "Roche". Une nouvelle texture "Roche.001" est créée. La renommer  "Herbe".
* Dans le menu déroulant '''Image > Setting'''  des propriétés des textures,  cliquer sur la '''petite croix''' à droite de l'adresse de la texture "Herbe". Utiliser '''Open''' pour charger une nouvelle texture d'herbe. 
* '''Attention''' : (parfois) lorsque l'on enregistre un projet Blender et qu'on le recharge, les textures utilisées pour peindre disparaissent et doivent être rechargées si nécessaire. En revanche, la liste des textures utilisées pendant la peinture reste disponible durant toute la session de travail, permettant de passer d'une texture à l'autre depuis le panneau des outils de peinture.
* Préparer une troisième texture pour '''le lit de la rivière'''. Chercher par exemple '''Gravel material''' dans '''BlenderKit'''. Ensuite, il est possible d'utiliser de nombreuses textures comme des petites fleurs, plusieurs types d'herbes ou de roche, de la terre, etc.
<gallery>
Fichier:Terrain phase 014 meteriau herbe.png | Matériau herbe
Fichier:Terrain phase 014 texture herbe.png | Texture herbe
Fichier:Terrain phase 014 charger texture.jpg | Nouvelle texture
Fichier:Terrain phase 014 texture gravier.png | Texture gravier
</gallery>
 
=== Préparer l'espace de travail ===
* Rester dans l'espace de travail '''Texure Paint'''.
* Afficher uniquement le plateau du terrain. Pour cela, dans la vue 3D utiliser le '''mode Edit''' et le mode '''sélection par face'''. Si  le maillage des bords est sélectionné, le désélectionner avec '''ALT + A'''.  Faire réapparaître le plateau avec '''ALT + H.''' Inverser la sélection avec '''CTRL + I'''. Masquer les bords avec la '''touche H'''.
* Repasser en '''mode Texture Paint''' dans la vue 3D.
* Se placer en vue du dessus avec '''NUM 7'''.
<gallery>
Fichier:Texture phase 015 espace de travai.jpg |Organisation
</gallery>
 
=== Peinture du plateau ===
* La peinture se fait sur l''''ensemble du plateau''', donc simultanément sur les 36 textures de 2048x2048. Dans l''''éditeur d'images''', afficher chaque texture pour visualiser le résultat pendant la peinture.
* Régulièrement, '''enregistrer les textures''' depuis le menu de l'éditeur d'images '''Image> Save All Images'''.
* Pour peindre l'herbe, sélectionner la '''texture d'herbe''' dans le panneau latéral des '''outils de peinture''' de la vue 3D dans l''''espace de travail Texture Paint.'''  Procéder comme pour la peinture des bords. Ne pas oublier de cocher la case '''Random''' sous le menu Texture des outils de peinture. Voir l'image Herbe de la gallerie d'image ci-dessous.
* '''Peindre les montagnes''' de chaque côté de la vallée avec la texture Roche. Sélectionner la texture Roche sous le menu Texture des outils de peinture du panneau latéral de la vue 3D et peindre les montagnes. Pour créer une transition en douceur entre la peinture de la roche et celle de l'herbe sur la texture, diminuer la force  de la texture d'herbe (définir '''Strength''' à 0.330 au dessus de la vue 3D ) et peindre le long de la limite entre les deux textures.
* Pour peindre le lit de la rivière, afficher le plan qui simule le niveau de l'eau pour avoir un repère. Pour cela, dans la vue 3D, passer en mode objet. L'ensemble du terrain s'affiche. Utiliser la combinaison de touche '''ALT + H'''  pour afficher le plan de l'eau. 
* Le plan de l'eau est opaque ; il faut le '''rendre légèrement transparent''' pour mieux diriger et maîtriser la peinture sur le mesh.
* Aller dans l'espace de '''travail Shading.''' Dans la '''vue 3D''' passer en mode objet et sélectionner le plan de l'eau. Dans l''''éditeur de nœuds''', en dessous, appuyer sur le bouton '''New''' pour créer un nouveau matériau pour le plan de l'eau. Dans le nœud '''Principal BSDF''', repérer '''Alpha''' et réduire l'opacité du plan à l'aide du '''curseur''' pour  que l'eau soit encore visible mais qu'on puisse aussi voir le terrain en dessous. Pour voir l'eau transparente l faut passer en mode '''Viewport Shading'''.
* '''Peindre le lit de la rivière''' avec la texture de '''gravier''' dans l'espace de travail Texture paint en mode Texture paint. Marquer les transitions de textures comme ci-dessus.
* Pour '''les finitions''',  peindre des petits plages d'herbes dans la montagne ou au fond de la rivière, assombrir ou éclaircir des zones, utiliser d'aurtes brosses, ajouter d'autres textures comme de très très petites fleurs. Attention aux échelles de grandeur, le  mesh s'étendra sur toute la région.
<gallery>
Fichier:Terrain phase 015 herbe peinte.jpg | Herbe
Fichier:Terrain phase 016 herbe perspective.jpg |Perspective
Fichier:Terrain phase 016 herbe zoom.jpg |Zoom.
Fichier:Terrain phase 016 Transition roche herbe.jpg |Transition
Fichier:Terrain phase 016 plan eau.jpg | Eau opaque
Fichier:Terrain phase 017 rivière.jpg | Espace de travail Shading
Fichier:Terrain phase 017 rivière transparante.jpg | Eau transparente
Fichier:Terrain phase 018 texture finale.jpg | Aperçu
</gallery>
 
= Exporter et importer le terrain =
== Exporter le terrain au format Collada ==
* Passer dans l''''espace de travail Layout''', en '''mode object'''.  '''Sélectionner le terrain''' , attention de ne pas sélectionner le niveau d'eau.
* Ouvrez le '''panneau des propriétés des Modifiers''' (modificateurs) en appuyant sur l'icône avec une petite icône de clé anglaise bleue.
* Ajouter un modificateur '''Decimate''' en appyant sur  '''Add Modifier > Generate > Decimate'''. Le modificateur '''Decimate'''  permet de réduire le nombre de sommets/faces d’un maillage avec un minimum de changements de forme. Avec ce modifier, le terrain sera plus facile à importer dans OpenSimulator. Définir '''Ratio''' à 0.3.
* '''Créer un dossier''' sur l'ordinateur, il contiendra le terrain en mesh au format Collada et  les 37 textures.
* '''Exporter le terrain''' en mesh au format Collada depuis le menu '''File > Export > Collada (.dae) (Legacy).'''
* Une fenêtre s'ouvre. À droite de la fenêtre, déplier le menu  '''Operator Presets''' et sélectionner '''sl+open sim static'''. Sous '''Texture Options''', vérifier que '''Copy''' est bien coché. En haut de la fenêtre, '''chercher le chemin  du dossier''' qui a été créé  pour contenir le mesh et les textures exportés. En bas, vérifier et éventuellement corriger '''le nom du mesh'''. Enfin, appuyer sur le bouton '''Export COLLADA'''.
* Le mesh du terrain et toutes ses textures devraient apparaître dans le dossier d'exportation.
* '''Fermer Blender 3D'''.
<gallery>
Fichier:Terrain phase 019 modificateur decimate.png |Decimate
Fichier:Terrain phase 19 config decimate.jpg | Configuration
Fichier:Terrain phase 019 Menu Export.png | Menu Export
Fichier:Terrain phase 019 fenetre exportation.png | Fenêtre Export
Fichier:Terrain phase 019 dossier.jpg | Élements exportés
</gallery>
 
== Importer le terrain et les textures dans OpenSim  ==
* 🏗️
 
= Installer le terrain dans OpenSim =
== Appliquer les textures sur le mesh ==
* 🏗️
== Placer le  terrain ==
* 🏗️
 
= Interêt d'utiliser un mesh =
* 🏗️
 
= Problèmes possibles =
* 🏗️

Version du 7 juillet 2025 à 16:31

Modélisation du terrain dans Blender 3D


Tout au long du tutoriel, dans Blender 3D,

  • ne pas oublier de placer le pointeur de la souris dans l'éditeur concerné par les commandes envoyées par une ou plusieurs touches du clavier ou par des boutons de la souris.
  • sauvegarder souvent le fichier blender.


Utiliser l'add-on A.N.T.Landscape

Add-on A.N.T.Landscape

Options de l'add-on

  • Utiliser le modèle prédéfini, par exemple "river", pour cela tout en haut de la fenêtre des options de l'add-on, ouvrez le menu déroulant "Opérator Presets".
  • Un peu plus bas dans cette fenêtre, définissez les subdivisions X et subdivisions Y à 133.

Pourtour du terrain

  • En mode object, délectionner le plan qui simule le niveau de l'eau et le masquer à l'aide de la touche H .
  • En mode Edit, sélectionner les sommets de la périphérie du terrain. Pour chaque côté, placez le pointeur de la souris près du bord et en pressant sur les touchez SHIFT + ALT faire un clique gauche. La ligne de sommets devait se sélectionner en une seule fois. Faire cela sur les 4 côtés.
  • Extruder une fois ces sommets vers le bas avec la touche E puis Z (2 ou trois carreaux de la grille).
  • Égaliser la hauteur des sommets : S puis Z puis 0
  • Divisier la hauteur des bords avec CTRL + R et faire 6 boucles avec la molette de la souris.
  • En mode Object sélectionner le terrain et appliquer les modifications du mesh : CTRL + A et sélectionner All Transforms.

Dessiner les coutures du terrain

Coutures des bords

  • En mode Edit, sélectionner la première ligne de sommets au-dessus des bords avec SHIFT + MAJ et en faisant un clic gauche tout près de la ligne. Faire cela sur les 4 côtés. En cas d'erreur supprimer la dernière action avec CTRL + Z. On zoome avec la molette de la souris pour être plus précis.
  • Marquer la couture depuis le menu Edge avec Mark Seam.
  • Sélectionner les arêtes des 4 angles des bords du terrain avec le raccourci clavier SHIFT + MAJ vu précédemment.
  • Marquer la couture depuis le menu Edge avec Mark Seam.

Dessiner 36 carrés sur le terrain

  • Sélectionner les bords du terrain. Pour cela, passer en sélection par face et sélectionner la ligne inférieure des faces avec SHIFT + MAJ. Les 4 côtés devraient être sélectionnés en une fois. Ensuite, enfoncer la touche CTRL et presser la touche + de clavier numérique pour sélectionner une ligne supplémentaire. Presser sur la touche + pour sélectionner l'ensemble des bords du terrain. Pour désélectionner une ligne, utiliser la touche - du pavé numérique à la place de la touche +.
  • Masquer les bords avec la touche H.
  • Passer en vue du dessus avec NUM 7 (touche 7 du pavé numérique) et en sélection par point.
  • Sélectionner le bord gauche du plateau du terrain avec SHIFT + ALT et clic gauche de la souris (toujours zoomer pour se mettre proche du bord cible).
  • Utiliser la technique de la touche NUM + avec CTRL 22 fois pour sélectionner 22 lignes supplémentaires. (Rappel : enfoncer la touche CTRL et utiliser la touche + du pavé numérique pour sélectionner les autres lignes. )
  • Repérer la dernière ligne sélectionnée. Désélectionner tout avec ALT + A et, sélectionner cette dernière ligne avec SHIFT + ALT et clic et la marquer depuis le menu Edge avec Mark Seam.
  • Laisser cette ligne sélectionnée et utiliser la combinaison CTRL + NUM+ 22 fois pour repérer la prochaine ligne de couture à marquer avec Mark Seam. Attention les lignes à gauche de la ligne de départ vont aussi être sélectionnées. Seules les lignes de droite nous intéressent ici.
  • Continuez ainsi pour obtenir 6 subdivisions de 22 lignes chacune sur la largeur du terrain.
  • Subdiviser le terrain de la même façon en partant de la ligne horizontale du dessus pour obtenir 6 subdivisions verticales du terrain. Ainsi la grille obtenue forme 36 carrés.

Générer les UVMap

UVMap des bords

  • En mode Edit, faire réapparaître les bords avec ALT + H.
  • Sélectionner uniquement le plateau en inversant la sélection avec CTRL + I.
  • Masquer le plateau avec la touche H.
  • Sélectionner l'ensemble des bords du terrain avec la touche A en mode Edit.
  • Dans l'espace de travail UV Editing, génerer l'UVMap des bords depuis le menu UV. Utiliser Unwrap Angle Bassed (avec Unwrap Minimum Stretch, le modificateur Decimate déforme le texture des bords, voir Exporter le terrain au format Colla . L'UVMap des bords s'affiche dans la fenêtre de l'éditeur UV.

UVMAP du plateau

  • Afficher le plateau du terrain avec la combinaison de touches ALT + H.
  • Déselectionner le plateau avec ALT + A. Sélectionner chaque côté du bord du terrain en plaçant la souris sur une zone délimitée par des coutures et utiliser la toucher L. Il y a 4 zones, une par côté.
  • Masquer les bords avec la touche H.
  • Le but ici est de maximiser la taille et le nombre d'images à importer dans OpenSim afin d'obtenir une texture aussi nette que possible. Il sera donc nécessaire de générer l'UVMap pour chacune des 36 zones carrées délimitées par des coutures sur le plateau du terrain, et ce, successivement, afin qu'elles occupent le maximum d'espace. Je n'ai pas trouvé d'autre solution, mais peut-être en existe-t-il d'autres. Dans tous les cas, cela nécessitera de répéter cette opération 36 fois.
  • Dans l'espace de travail UV Editing, dans la vue 3D, se placer en vue du dessus NUM 7.Par convention, les carrés seront numérotés de gauche à droite et de haut en bas.
  • En mode Édition et en mode sélection par face, placer le curseur de la souris sur la zone 1 et appuyer sur la touche L pour sélectionner cette zone.
  • Générer l'UVMap de cette zone depuis le menu UV et choisir Unwrap Minimum Stretch si la version de Blender est supérieure ou égale à 4.3 ; sinon, choisir Unwrap Angle Based.
  • Sélectionner chaque zone une par une pour générer son UVMap comme indiqué ci-dessus. Veiller à ce qu'une seule zone soit sélectionnée. Pour désélectionner la zone précédente, il suffit de cliquer dans la nouvelle zone.
  • Il est préférable de vérifier rapidement si toutes les UVMaps ont été générées. Pour cela, une petite routine très rapide peut être utilisée : cliquer sur une zone, appuyer sur L, l'UVMap de la zone s'affiche dans l'éditeur UV, cliquer sur la zone suivante, appuyer sur L, etc. Si une UVMap ne s'affiche pas, c'est qu'elle n'a pas été générée, il faudra le faire.

Créer les matériaux

Matériau des bords

  • En mode Edit, afficher et sélectionner les bords du terrain comme vu précédemment.
  • Ouvrir le panneau des propriétés des matériaux (petite icône orange) dans l'éditeur des propriétés.
  • Appuyer sur le bouton "New". Nommer le matériau, par exemple "Terrain_Bords". Appuyer sur le bouton "Assign" pour attribuer le nouveau materiau à la sélection, c'est à dire ici à l'ensemble des bords du terrain.
  • Il est possible de modifier la couleur dans Base Color.
  • Attention, pour l'instant, un seul matériau a été créé. Même si ce matériau est assigné à une partie du mesh, il est appliqué sur l'ensemble du mesh.

Matériaux des carrés

Créer les matériaux

  • Créer un matériau de base qui sera copié pour chacune des 36 zones carrées du plateau du terrain. Pour cela, dans le panneau des propriétés des matériaux, appuyer sur le bouton + en haut à droite. Appuyer sur New et nommer le nouveau matériau créé, par exemple, "Terrain_carre_modele".
  • Aller dans l'espace de travail Shading. Dans l'éditeur de Shader le matériau que nous venons de créer est représenté sous la forme d'un Système de Nœuds.
  • Dans Blender, le terme nœud est utilisé pour désigner les éléments du système de création de matériaux. Bien que ce terme ne soit pas toujours intuitif, il fait référence à des points de connexion qui modifient le signal final, allant d'une source à un émetteur. Chaque nœud représente une fonction ou un processus, et les connexions entre eux déterminent comment les données sont traitées pour créer le matériau final.
  • Avec SHIFT + A faire apparaître le menu Add qui permet d'ajouter un nouveau nœud . Cliquer sur Search et cherchez le nœud Image Texture. Cliquer sur ce nœud et le placer dans l'éditeur de shader. Ce nœud va permettre d'assigner une texture au matériau.
  • Relier le point Color du nœud Image Texture au point Base Color du nœud Principal BSDF : cliquer avec le bouton gauche sur le premier point, maintenir le bouton enfoncé, tirer jusqu'au deuxième point et relâcher.
  • Créer une nouvelle image en appuyant sur New dans le nœud Image Texture. Donner un nom à l'image comme par exemple, "Terrain_Texture". Définir les dimensions de l'image : 2048 pour la largeur (Width) et 2048 pour la hauteur (Height). À noter : Si on indique 1024*2, Blender 3D effectuera automatiquement l'opération et affichera 2048. Appuyer sur le bouton New Image pour terminer.
  • Générer 36 matériaux à partir matériau de base qui vient d'être créé. Pour chaque matériau :
  1. Dans l'éditeur de propriété des matériaux appuyer sur le bouton +.
  2. À gauche du bouton New, déplier la liste des matériaux disponibles et sélectionner "Terrain_carre_modele".
  3. Créer un nouveau matériau en cliquant sur l'icône New material à gauche du nom du materiau. Un numero est ajouté au nom. Le nom du dernier matériaux généré devrait être Terrain_carre_036.

Assigner les matériaux

  • Dans l'espace de travail Shading, en mode Edit et vue du dessus (NUM 7) , sélectionner un des carrés du plateau du terrain avec la touche L.
  • Sélectionner le matériaux correspondant au numéro du carré (carré N, matériau Terrain_carre_modele_N) dans l'éditeur de shader ou dans l'éditeur de propriété des matériaux.
  • Assigner le matériau à la sélection en appuyant sur le bouton Assign dans l'éditeur de propriété des matériaux.
  • Dans l'éditeur de shader créer une nouvelle texture sur la base de la texture créée dans le premier matériau, en cliquant sur le numéro à droite du nom de l'image dans le nœud Image Texture. La texture à son tour prend un numéro comme le matériau, signe que la texture n'est plus liée à la texture de base et qu'elle pourra être modifiée indépendamment.
  • Procéder ainsi pour les 36 carrés du plateau du terrain.

Peinture des 37 textures

Apprendre à peindre dans Blender : les bords du terrain

Créer une image

  • Se placer dans l'espace de travail Shading et sélectionner Terrain_bords (le matériau des bords) dans la liste des Slots.
  • Avec SHIFT + A faire apparaître le menu Add qui permet d'ajouter un nouveau nœud . Cliquer sur Search et cherchez le nœud Image Texture. Cliquer sur ce nœud et le placer dans l'éditeur de shader. Ce nœud va permettre d'assigner une texture au matériau.
  • Relier le point Color du nœud Image Texture au point Base Color du nœud Principal BSDF : cliquer avec le bouton gauche sur le premier point, maintenir le bouton enfoncé, tirer jusqu'au deuxième point et relâcher.
  • Créer une nouvelle image en appuyant sur New dans le nœud Image Texture. Donner un nom à l'image comme par exemple, "Bords_Texture". Définir les dimensions de l'image : 2048 pour la largeur (Width) et 2048 pour la hauteur (Height). Appuyer sur le bouton New Image.

Masquer une partie du maillage

  • Se placer dans l'espace de travail Texture Paint.
  • En peignant les bords, il est possible de peindre involontairement et de manière peu soignée le plateau du terrain. Ce tutoriel explique comment protéger une partie d'un mesh des projections de peinture indésirables.
  • Pour cela, dans la vue 3D sélectionner en mode Edit les bords du mesh avec la touche L puis inverser la sélection avec CTRL + I.
  • Enfin, masquer le plateau avec la touche H. Passer en mode object.
  • Seuls les bords sont visibles et pourront être peints.

Découvrir l'espace de travail Texture Paint

  • Dans ce tutoriel, la texture des bords aura l'apparence de la roche, mais il est également possible d'assurer une continuité avec celle du plateau. La capture d'écran intitulée Texture Paint dans la galerie d'images ci-dessous facilite la compréhension de ce tutoriel.
  • Sélectionner la texture des bords dans l'éditeur d'images et dans la vue 3D comme indiqué sur la capture d'écran.
  • Déplier le panneau latéral de la vue 3D en appuyant sur la touche N puis ouvrir l'onglet Tool (outils) où sont regroupés les outils et options spécifiques pour peindre directement sur les textures des objets, permettant de sélectionner des pinceaux, de régler leur taille, leur force, et d'appliquer divers effets de peinture.

Test de peinture dans Blender 3D

  • Pour vérifier que tout est bien en place, faire un test de peinture sur le mesh avec une simple couleur. Pour cela, en mode Texture Paint, sélectionner une couleur dans le sélecteur de couleur (Color Picker) dans les outils de peinture du panneau latéral. Vérifier que l'icône Brush (le petit pinceau en haut à gauche de la vue 3D, est bien sélectionnée. Si c'est le cas, le curseur de la souris est un cercle avec une croix à l'intérieur. La taille du cercle reflète la taille du pinceau. Appuyer sur la touche F permet de modifier rapidement la taille du pinceau. Une fois la touche enfoncée, il suffit de déplacer la souris pour ajuster la taille selon les besoins.
  • Avertissement 1 : si le pinceau est trop grand, l'ordinateur devra gérer la modification de surfaces étendues, ce qui demande beaucoup de ressources. Selon la puissance de la machine, cela peut entraîner un risque de plantage sans possibilité de retour en arrière.
  • Avertissement 2 : les modifications apportées à la texture ne sont pas enregistrées automatiquement. Si Blender est fermé sans avoir enregistré le fichier, ces modifications seront perdues. Pour éviter cela, activez l'option File > External Data > automatically packs et assurez-vous d'enregistrer votre fichier Blender et vos textures aussi souvent que possible.
  • Le test : réduire le pinceau, dessiner sur le mesh. Le dessin devrait apparaître sur la texture de l'éditeur d'images. Inversement, dessiner sur la texture dans l'éditeur d'images. Les modifications devraient apparaître sur le mesh.

Trouver une texture avec BlenderKit

  • Il est possible d'utiliser une texture ou une image pour peindre sur le mesh, comme une texture de roche. Cela peut être n'importe quelle texture : une texture stockée sur ordinateur, une texture téléchargée depuis un site quelconque ou un site spécialisé comme ambientcg.com. Voyons comment trouver facilement des textures de bonne qualité et gratuites avec BlenderKit.
  • BlenderKit est un add-on pour Blender 3D qui permet aux utilisateurs d'accéder à une bibliothèque en ligne de modèles 3D, de matériaux, de brosses et d'autres ressources. Il facilite l'importation de ces éléments directement dans les projets Blender. BlenderKit propose à la fois des ressources gratuites et payantes.
  • Depuis le menu Edit>Preferences> Get Extensions, rechercher BlenderKit. Appuyer sur le bouton Install placé à côté du nom de l'add-on BlenderKit [FREE]. Fermer la fenêtre des préférences. La barre de menu BlenderKit s'affiche en haut et au centre de la vue 3D.
  • Dans l'espace de travail Layout, dans l'éditeur de propriété des matériaux, sélectionner le matériau Terrain_carre_modele.
  • Depuis le champ de recherche de BlenderKit, chercher "coast rock material". Faire un clic droit sur le deuxième matériau proposé (voir l'image de la galerie). Le matériaux doit apparaître dans la liste des matériaux dans le panneau des propriétés des matériaux.
  • Passer dans l'espace de travail Shading. Le système de nœuds du matériau téléchargé s'affiche dans l'éditeur de shader.
  • Cliquer sur le nœud Base Color, qui est un nœud Image Texture. La texture Albedo (définissant la couleur de base du matériau) s'affiche dans l'éditeur d'image. En cliquant sur d'autres nœuds Image Texture, d'autres textures s'affichent, comme la normal map par exemple. Cependant, seule la texture du nœud Base Color sera utilisée ici.
  • Pour enregistrer la texture, cliquer sur menu hamburger (trois traits horizontaux) puis aller dans Image> Save as ... Enregistrer la texture sur l'ordinateur.

Peindre avec une texture

  • Passer dans l'espace de travail Texture Paint. Dans l'éditeur de propriétés à droite, cliquer sur l'icône des textures pour ouvrir l'éditeur de propriétés des textures.
  • Appuyer sur le bouton New puis sur le bouton Open pour ouvrir la texture qui vient d'être enregistrée. Nommer la texture "Roche".
  • Ouvrir le panneau latéral avec la touche N et accéder aux outils (onglet Tool). Sous le menu déroulant Texture, la texture récemment ouverte devrait apparaître. Si ce n'est pas le cas, cliquer sur le carré de prévisualisation des textures. Une fenêtre s'ouvre avec les textures du projet (il ne devrait y en avoir qu'une). Cliquer sur la texture de roche.
  • Sous le même menu Texture, cocher la case Random pour que l'orientation de la texture change à chaque application, ce qui donnera une apparence plus réaliste à la texture créée.
  • Sélectionner du blanc dans Color Picker en passant le curseur de droite du noir au blanc.
  • Sélectionner la texture des bords (Bords_texture pour ce tuto) dans l'éditeur d'image et dans la vue 3D (voir l'image Texture Paint).
  • Peindre le bord comme dans le test avec la couleur. Cette fois, il faut tapoter pour appliquer des plages de textures sur les bords, en veillant à varier la taille du pinceau pour éviter que le motif ne se répète trop. Se placer bien en face de la partie à peindre. Ici comme c'est un carré, peindre chaque côté l'un après l'autre en utilisant les touche du pavé numérique NUM 3, CTRL + NUM 3 , NUM 1 et CTRL + NUM 1 pour se placer.
  • Enregistrer la texture depuis le menu Image > Save As de l'éditeur d'images. Préférer un format jpg.

Peindre le plateau du terrain

Nouvelles textures

  • Pour peindre l'herbe, charger une nouvelle texture depuis le panneau des propriétés des textures. Rechercher "Grass material" dans BlenderKit et procéder comme pour la texture de roche dans l'espace de travail Shading avec le système de nœuds. Penser à créer un nouveau matériau non assigné. Le sélectionner dans la vue 3D et dans l'éditeur d'image, pour éviter de modifier le matériau d'une partie du mesh . Il est également possible d'utiliser une autre texture d'herbe que celles de BlenderKit.
  • Quand le texture d'herbe est prête, dans le panneau des propriétés des textures, appuyer sur l'icône New Texture à droite du nom de la texture "Roche". Une nouvelle texture "Roche.001" est créée. La renommer "Herbe".
  • Dans le menu déroulant Image > Setting des propriétés des textures, cliquer sur la petite croix à droite de l'adresse de la texture "Herbe". Utiliser Open pour charger une nouvelle texture d'herbe.
  • Attention : (parfois) lorsque l'on enregistre un projet Blender et qu'on le recharge, les textures utilisées pour peindre disparaissent et doivent être rechargées si nécessaire. En revanche, la liste des textures utilisées pendant la peinture reste disponible durant toute la session de travail, permettant de passer d'une texture à l'autre depuis le panneau des outils de peinture.
  • Préparer une troisième texture pour le lit de la rivière. Chercher par exemple Gravel material dans BlenderKit. Ensuite, il est possible d'utiliser de nombreuses textures comme des petites fleurs, plusieurs types d'herbes ou de roche, de la terre, etc.

Préparer l'espace de travail

  • Rester dans l'espace de travail Texure Paint.
  • Afficher uniquement le plateau du terrain. Pour cela, dans la vue 3D utiliser le mode Edit et le mode sélection par face. Si le maillage des bords est sélectionné, le désélectionner avec ALT + A. Faire réapparaître le plateau avec ALT + H. Inverser la sélection avec CTRL + I. Masquer les bords avec la touche H.
  • Repasser en mode Texture Paint dans la vue 3D.
  • Se placer en vue du dessus avec NUM 7.

Peinture du plateau

  • La peinture se fait sur l'ensemble du plateau, donc simultanément sur les 36 textures de 2048x2048. Dans l'éditeur d'images, afficher chaque texture pour visualiser le résultat pendant la peinture.
  • Régulièrement, enregistrer les textures depuis le menu de l'éditeur d'images Image> Save All Images.
  • Pour peindre l'herbe, sélectionner la texture d'herbe dans le panneau latéral des outils de peinture de la vue 3D dans l'espace de travail Texture Paint. Procéder comme pour la peinture des bords. Ne pas oublier de cocher la case Random sous le menu Texture des outils de peinture. Voir l'image Herbe de la gallerie d'image ci-dessous.
  • Peindre les montagnes de chaque côté de la vallée avec la texture Roche. Sélectionner la texture Roche sous le menu Texture des outils de peinture du panneau latéral de la vue 3D et peindre les montagnes. Pour créer une transition en douceur entre la peinture de la roche et celle de l'herbe sur la texture, diminuer la force de la texture d'herbe (définir Strength à 0.330 au dessus de la vue 3D ) et peindre le long de la limite entre les deux textures.
  • Pour peindre le lit de la rivière, afficher le plan qui simule le niveau de l'eau pour avoir un repère. Pour cela, dans la vue 3D, passer en mode objet. L'ensemble du terrain s'affiche. Utiliser la combinaison de touche ALT + H pour afficher le plan de l'eau.
  • Le plan de l'eau est opaque ; il faut le rendre légèrement transparent pour mieux diriger et maîtriser la peinture sur le mesh.
  • Aller dans l'espace de travail Shading. Dans la vue 3D passer en mode objet et sélectionner le plan de l'eau. Dans l'éditeur de nœuds, en dessous, appuyer sur le bouton New pour créer un nouveau matériau pour le plan de l'eau. Dans le nœud Principal BSDF, repérer Alpha et réduire l'opacité du plan à l'aide du curseur pour que l'eau soit encore visible mais qu'on puisse aussi voir le terrain en dessous. Pour voir l'eau transparente l faut passer en mode Viewport Shading.
  • Peindre le lit de la rivière avec la texture de gravier dans l'espace de travail Texture paint en mode Texture paint. Marquer les transitions de textures comme ci-dessus.
  • Pour les finitions, peindre des petits plages d'herbes dans la montagne ou au fond de la rivière, assombrir ou éclaircir des zones, utiliser d'aurtes brosses, ajouter d'autres textures comme de très très petites fleurs. Attention aux échelles de grandeur, le mesh s'étendra sur toute la région.

Exporter et importer le terrain

Exporter le terrain au format Collada

  • Passer dans l'espace de travail Layout, en mode object. Sélectionner le terrain , attention de ne pas sélectionner le niveau d'eau.
  • Ouvrez le panneau des propriétés des Modifiers (modificateurs) en appuyant sur l'icône avec une petite icône de clé anglaise bleue.
  • Ajouter un modificateur Decimate en appyant sur Add Modifier > Generate > Decimate. Le modificateur Decimate permet de réduire le nombre de sommets/faces d’un maillage avec un minimum de changements de forme. Avec ce modifier, le terrain sera plus facile à importer dans OpenSimulator. Définir Ratio à 0.3.
  • Créer un dossier sur l'ordinateur, il contiendra le terrain en mesh au format Collada et les 37 textures.
  • Exporter le terrain en mesh au format Collada depuis le menu File > Export > Collada (.dae) (Legacy).
  • Une fenêtre s'ouvre. À droite de la fenêtre, déplier le menu Operator Presets et sélectionner sl+open sim static. Sous Texture Options, vérifier que Copy est bien coché. En haut de la fenêtre, chercher le chemin du dossier qui a été créé pour contenir le mesh et les textures exportés. En bas, vérifier et éventuellement corriger le nom du mesh. Enfin, appuyer sur le bouton Export COLLADA.
  • Le mesh du terrain et toutes ses textures devraient apparaître dans le dossier d'exportation.
  • Fermer Blender 3D.

Importer le terrain et les textures dans OpenSim

  • 🏗️

Installer le terrain dans OpenSim

Appliquer les textures sur le mesh

  • 🏗️

Placer le terrain

  • 🏗️

Interêt d'utiliser un mesh

  • 🏗️

Problèmes possibles

  • 🏗️