Qqs trucs sur Autocad et d'autres logiciels DAO...
Accueil Initiation Méthodologie Variables Comment faire ? Lisps Sommaire
Soft & liens Revit 2020 CVC sur autocad Linux CloudCompare Initiation à Autolisp Blog

Toujours dans le cadre de la modélisation de terrain à partir des données Géoportail, nous allons explorer la piste Blender.

Alors Blender est un logiciel qui fait un peu peur, mais pas de panique. D'une part je découvre ce soft donc si c'est vote cas, pas d'affolement, on avance à deux. D'autre part, on ne va utiliser qu'une infime partie des possibilités offerte par cet outil.
Comme d'ab, si vous trouvez des bougnettes, contactez moi par mail ou sur ce forum ou j'ai eu qqs échanges avec dominique.lys le concepteur de Georaster import l'addon qu'on va utiliser (trouvé dans cette discution )

MISE A JOUR de L'addon et pas encore de ma page, CHARGEZ L'ADDON ET SA DOC DEPUIS CE FORUM).

On peu rajouter en préambule qu'on est pas sur une utilisation "pro" de Qgis, et très loin des possibilités analytiques du module Nvis de Grass. Mais quand on a pas d'ortho photo HD et de levé de terrain à 5m voila une méthode rapide pour obtenir une apxoximation sympatique de la réalité avec des données altimétrique librement accéssible et les photos satélite de google et tout ça avec des logiciels libres qui tournent sur plein d'OS.

les prés requis

je ne détaille plus l'importation des fichiers .asc dans Qgis, si vous n'êtes pas du tout familier du logiciel il faut regarder un peu par ici, car on va se servir des fichiers .asc à 75m. J'ai fait une petite introduction à Blender, si vous ne le connaissez pas du tout lisez la en diagonale, en particulier comment on ajoute un addon (en fait je me repose sur l'exemple de celui de Dominique.lys qui va nous servir et qui est est bien documenté).
Il vaut mieux avoir repérer qqs manipulations de base de Blender quand même.
Donc chargez et installez son addon Ce petit tuto n'exclu pas la lecture de la doc qui accompagne Georaster import car comme je le dis, elle est très bien faite (même si en anglais) et va beaucoup plus loin que ces quelques lignes de vulgarisation.

Blender est un logiciel de 3D très complexe, et les réglages par défaut ne sont pas adaptés à ce travail. Le chapitre qui suis décrit les réglages de l'interface pour pas galérer, si vous maîtrisez la bête, pas la peine de s'y attarder passez directement à la suite.

Réglage de Blender

Blender n'est adapté à la 3d de grande dimension dans ses réglages de base. De plus la caméra mérite une petite amélioration pour faciliter la prise du vue.

L'interface standard contient une caméra, une lumière et un cube. On ne va avoir besoin ni du cube, ni de la lumière on peu les supprimer

Caméra cible
On va fabriquer une "caméra cible" pour reprendre la désignation dans 3DS, c'est à dire une caméra qui regarde un objet factice. La encore c'est pas obligatoire, mais je trouve le cadrage plus facile. De cette manière, on pourra positionner le point visé et la caméra simplement.
Placer le curseur 3D au point 0 s'il a bougé (Shift S) puis "Cursor to center"
Ajouter un Empty de type arrow

 

Enfin on sélectionne la caméra (le plus facile c'est dans l'arborescence appelée Outliner en 1)) et on va ajouter une contrainte de type TracTo 2) et 3), bien cocher -Z et Y dans les paramètres du Trac (il faut cliquer dans le champ en 4 pour choisir l'Empty)

Sélectionnez la caméra, ou sa cible, et déplacez les (c'est G pour déplacer des objets). La caméra devrait viser la cible en continu.

Profondeur de champ CECI N'EST PAS UNE OPTION !!!!!
C'est là que Blender est pas fait pour les grandes dimensions, par défaut sa vision s'arête à 1000 unités. Comme c'est expliqué dans la doc de Dominique, le Georaster import utilise les unités de la projection des images géo référencée. A priori, on va passer par du lamber 93 donc des mètres. Pour y voir plus loin, 2 réglages à faire. Le 1er celui de la vue 3D, et celui de la Caméra

 

Pour la vue 3d, on sort avec (N) le panneau "Properties panel toggle" et dans "View" on passe la propriété End du clip à 100 000
pareil pour la caméra, on la sélectionne en 1) puis on clique sur la caméra pour voir ses propriété et on donne la même valeur.

Lumière
On a supprimé la lumière, mais en cas de rendu il en faut quand même une. Les réglages de lumières dans Blender mériteraient tout un bouquin, mais on va faire simple. Dans le panneau World, on va juste ajouter un "Environement Lighting"? à 1 c'est bien.

Unité
Comme on travaille en Lambert 93, et qu'on garde en option d'importer des données depuis Autocad ou Révit, il le faut déclarer à Blender qu'on travaille en mètres
C'est un paramètre de la scène

Gabarit
il n'y a pas vraiment de notion de gabarit dans Blender, pourtant une fois ces réglages effectués, on peu sauver le fichier comme si s'en était un. Partir de ce fichier vide permettra de ne pas avoir à refaire à chaque fois nos réglages. (vous pouvez utiliser celui la si votre version est compatible (v2.69))

 

Dans Qgis (mode light)

Cet méthode de préparation des données Qgis est simpliste, et un peu approximative, les résultats sont pas mauvais, mais le chapitre suivant en décrit une un peu plus rigoureuse.

Comme dans cet exercice, j'ai commencé par charger les .asc de la région PACA (notez au passage si c'est le coin qui vous intéresse les N° de dalles concernés). J'ai là aussi créer un fichier gabarit, mais ça ne sers à rien de le proposer au télé chargement car les .asc liés vous manqueraient.
On se localise avec GéoSearch (1) sur au hasard les Mées, et on appelle la couche Google satellite via l'extension Open Layer. Une fois votre vue cadrée, on peu éteindre la couche GéoSearch.
L'appel de la couche Google satellite fait basculer le projet en EGPS 3857 (dans le coin en bas à droite) aller dans les propriétés du projet pour le remettre en Lambert 93 EGPS2154 car la photo et le terrain doivent avoir la même projection.

Prise de vue
On va maintenant sauver 2 images en passant par "Projet/Sauvegarder comme une image". La première avec l'affichage Google, puis on éteint la couche et sans toucher ni au zoom ni se déplacer on sauve l'image noir et blanc des fichiers .asc.
Comme on peu le voir dans le dossier de destination, les jpg sauvés sont accompagnés d'un fichier World (le .jpgw) dans la doc de Georaster import, il est expliqué que c'est lui qui contient les informations pour la géolocalisation ne les égarez pas.


Mais bon... avec cette technique on perd en précision sur les altimétrie, je la garde sous le coude pour sa simplicité. Dans une région montagneuse pour faire un terrain en 3mn et en ne fesant des vue que près du centre de la photo sat, ça fait la blague mais...

Les pressés peuvent aller directement à l'étape suivante

 

Re Qgis mode on plaisante plus !

On a beau faire de la vulgarisation, on va quand même essayer de pas etre vulgaire. L'explication technique est assez ... technique, mais le résultat est là, on peut faire mieux. Il va donc falloir un peu plus bricoler pour avoir un MNT plus rigoureux. Enfin je procède beaucoup par tâtonnement ce qui est pas la base de la rigueur mais Dominique.lys m'a donner quelques pistes à suivre par mail. On va essayer de ne pas saloper son excellent Addon en y balançant des data foireuses.

Photo sat
Pour la photo satellite, j'essaierai de tirer de Google une photo Hd, mais Google à brider son affaire il faudra ruser; peut etre avec le composer de Qgis... mais c'est encore un projet d'étude et je reste ouvert si vous avez une solution.

Pour obtenir un raster bien caller, il faut extraire une image (sat1), prendre 3 points de repères sur la couche google et géoréférencer notre sat1 en lambert. puis re sauver en sat2 +world, c'est sat2 qui doit etre importé dans Blender (voir ici un TP sur la manip)

 

(à détailler et à illustrer)

Créer une couche shape avec des points et caller 3 points sur la vue google en EGPS 3857
Prendre une vue de notre emprise Sat1.jpg en imprimant de puis le composer un A0 (à voir les possibilités d'imprimer une carte Bing Hd avec Autocad 2015)
Eteindre la couche google et passer le projet en Lambert 93
Géoréférencer Sat1.jpg en se snapant sur les 3 poins créés et l'importer dans Qgis toujours en lambert93
sauver le projet en tant qu'image en Sat2.jpg, c'est ce fichier qu'il faut importer dans blender

Je crois bien que ces tracas viennent de google qui nous donne ses info du bout du pixel et qui accepte mal que Qgis fasse son travail de projection à la vollée. si vous avez des ortho photo, ça devrai mieux se passer... C'est un peu brouillon comme méthode, mais sinon à a de vilain décalage en Y avec un rotation par rapport au centre de la vue pas top.

Pour le relief,
c'est une autre histoire, on peu assez facilement améliorer les choses.

Premièrement, on va re étalonner les niveaux de gris sur notre emprise. Attention version 2 et + obligatoire
on fait un clic droit dans le gestionnaire de couche 1) et on va dans les propriétés de la couche du raster en niveau de gris du TN dans l'onglet style 2).

En 3 on indique qu'on travaille uniquement sur l'emprise, en 4 on indique vouloir travailler avec les données réelles et on fait charger. notez au passage les données de Z mini et maxi de notre terrain. On fait appliquer et OK.
Les niveaux de gris du raster s'ajustent pour que le mini de la zone soit en noir et le maxi en blanc.

Sauver la couche comme on l'a fait précédemment modifie sa résolution, et le terrain initialement codé sur des carrés de 75m passe à plus grand. On va donc changer la procédure, mais il faudra créer le fichier world manuellement.

Re clic droit sur notre couche de TN, sauver sous

 

 

En 1) on indique qu'on va sauver une image, en 2) on choisi le nom du fichier à sauver, en 3) cliquez pour ne sauver que l'emprise de la vue actuelle
au passage on voie bien que la résolution est respectée. Quand on valide, Qgis nous demande la projection, c'est bien sur le Lambert93

Pour créer le fichier world c'est dans le menu Raster/Projections/Extraire la projection

Vous pouvez également lire dans cette discution les explications de Dominique sur l'utilisation de la fonction GDAL de son addon et les 4eme et 5eme messages ou une autre piste est évoquée en passant par Raster/Convertion.

Retour dans Blender

On commence, comme dans la doc, par importer l'image satellite "on plane". Si vous avez correctement installé l'addon dans File/Import, vous devriez avoir Georeferenced raster de disponible.

Cocher la case "adjus grid size" permet de changer la taille de la grille Blender.
Dans l'Outliner (1) (l'arborescence des objets) apparaît un Mesh qui porte le nom du Jpg importé. Une Mesh est l'équivalent dans Blender d'un maillage de face3d dans Autocad. On va profiter pour désactiver sa sélection en vue 3D en cliquant le flèche en 3)

Dans la doc de Georaster import, Dominique utilise d'autres méthodes pour importer le relief, c'est ici que je simplifie les choses. Alors je ne garantie pas d'exactitude de la procédure ni sa rigueur géospaciale, mais ça marche plutôt bien.

Dans Blender, on peu ajouter des modificateurs aux objets, on va ajouter un modificateur à cette Mesh (commencez par la sélectionner puis 2) la clef à molette et le bouton add). Le modificateur subdivision surface à pour but de diviser notre Mesh en consommant un minimum de ressources. Il y a d'autre techniques, mais de ce que j'ai testé, c'est le moins lourd pour le meilleur résultat.

C'est léger donc on le met à fond sur 6 , bien cocher subdivise U et très important, le mode "simple". Si on veux plus de faces on peu empiler 2 modificateurs (voir ce nota), mais les temps de calculs deviennent alors très long suivant les réglage de coèf, voire prohibitifs sur des petites configs. Et de toute façon, on plaque un relief composé de carré de 75m de coté sur une photo satellite avec une résolution de copie d'écran. Trop de finesse dans la découpe revient à faire apparaître clairement ces carrés et donc se reprocher d'un rendu "Minecraft". Mais sur un terrain de plus grand mérite plus de facettes
Le niveau 6 appliqué crée un découpage de 64 x64 (2^6).
Un modificateur sub surf avec un coèf 2 la dessus et on passe à 64x4= 256 facettes.
si la plus grande longueurs du terrain à couvrir fait plus de 64x75m, soit 4.8km ça vaut le coup si non, on peu s'en passer

Importation du MNT
On va importer le 2eme jpg pour le MNT ou DEM en anglais. Cette fois on l'importe donc 'As DEM' Surtout pas cocher "Subdivise" car on vient de le faire, par contre cocher "Is Scaled". J'ai choisi 1500 de valeur max pour exagérer le relief. La validation ajoute un modificateur DEM ou cette valeur reste modifiable dans le panneau du modificateur. Mais pour être rigoureux, il aurai fallu mettre les valeurs relevées quand on à re échantillonné le TN dans la 2eme méthode d'export des données.

 

SHASAMM !!!!

Conseil de navigation aux primo utilisateur de Blender

Placez vous en vue de dessus (7), dans l'Outliner sélectionnez la caméra, et placez là approximativement (G pour déplacer) Pareil avec la cible .

On passe en vue caméra (0) zoomez un poil à la roulette pour agrandir la zone claire, puis cliquez la case "Lock camera to vieuw" (dans panneau latéral appelé par N), la bordure passe en rouge. Avec cette configuration, Quand vous faite Shift bouton du milieu la caméra bouge, dans l'Outliner on peu sélectionner la cible et la déplacer avec (G) pour changer le point visé.

Rendu
Pour faire un rendu, on va dans le menu Render (en haut) puis Render image, dans la vue 3d l'image est générée. Avec cette lumière de base, pas de ciel ect..., rien de spectaculaire, mais c'est pour donner le principe aux débutants et leur dire que pour sauver l'image rendue c'est dans le menu 'image' en bas et pour revenir à la vue 3d il faut cliquer sur l'icône de la fenêtre.

Voila... vous êtes autonome :)

Je met tout de même le fichier (v2.69) et les images dans un zip, (tout déplier dans un même répertoire)

Aller plus loin

Dans la pile des modificateurs cliquez sur 'apply' du modificateur sub surf. On se retrouve avec un maillage texturé qu'on peu sculter à volontée . Par exemple ajouter un modificateur Smooth après le modificateur DEM créé par l'addon Georaster et on va casser les angles de la coline. En mode édit, on peu supprimer les mailles avec un effet de bord... Mais bon, si on commence à explorer les possibilités de Blender ya du boulot; car elles sont quasies infinies...

 

lien vers cadXP