Chargement en cours

Chargement de l'heure

Créer une ville virtuelle avec OSM et Blender

Pour : Blender
< Retour
Informations
Créé parpanierAvide
LicenceGNU FDL
Lu3611 fois

Description

Vous cherchez à réaliser une ville ou zone existante en 3D ? Mais vous ne savez pas par où commencer ? Nous allons voir dans ce tutoriel comment obtenir des plans de base construits et réalistes pour créer une ville en 3D avec Blender, en se basant sur les données OpenStreetMap (ou OSM).

Prérequis

Pour mener à bien ce tutoriel, vous avez besoin de :

Une connaissance de JOSM et Maperitive n'est pas requise, des connaissances minimales pour Blender sont nécessaires

Quelques détails

Avant de commencer ce tutoriel, voici de brèves explications.
Tout d'abord, OpenStreetMap est un projet communautaire ayant pour but de fournir des données géographiques libres à tous ceux qui en ont besoin. Les applications les plus concrètes sont les cartes (routières, cyclables...). Le projet est né du constat que la plupart des cartes que nous utilisons (Google Maps, Bing, etc...) sont soumises à des restrictions légales empêchant toute utilisation originale. Si vous souhaitez en savoir plus sur ce projet, rendez-vous ici, et si vous avez des questions, je pourrai vous y répondre (je contribue activement au projet ).
Second point, l'objet du tutoriel est de fournir une base à la création de zones ou villes en 3D. À la fin du tutoriel, vous saurez comment procéder, mais vous n'aurez pas une ville complète et prête à utiliser, il vous restera à modéliser bâtiments, routes et autres. Nous vous fournissons le plan, à vous de jouer les architectes
Je vous conseille de lire en intégralité le tutoriel, afin d'être sûr qu'il correspond bien à ce que vous recherchez.

C'est parti

Voici le cheminement rapide de ce que nous allons faire : nous allons récupérer les données OpenStreetMap avec JOSM (éventuellement les modifier selon vos besoins), transformer ces données en fichier SVG avec Maperitive, puis enfin les importer dans Blender.

JOSM

Installez et ouvrez JOSM (voir ici pour l'installation). Voici l'interface du logiciel :

Image indisponible

Faites Fichier puis Télécharger depuis OSM. Une fenêtre s'ouvre et vous montre la carte OpenStreetMap. Sélectionnez la zone qui vous intéresse, et vérifiez que la case "Données GPS" est décochée. Bien que le projet progresse chaque jour, selon la zone que vous choisissez, vous allez peut-être remarquer que des éléments sont manquants : le projet OpenStreetMap étant collaboratif, si personne ne participe au projet près de chez vous, il est normal que des éléments soient manquants. Le seul moyen d'y remédier est de participer Nous sélectionnons une petit zone ici, quelques rues et un morceau de quatre-voies. Cliquez sur Télécharger.
Image indisponible

Le téléchargement va se lancer, il dure moins d'une minute (selon votre connexion et la taille de la zone à télécharger). Voici ce que vous obtenez une fois les données chargées :
Image indisponible

Ce sont les données "pures" de la base de données OSM. Vous pouvez si besoin modifier ces données avant de continuer. Ici, je ne retirerais que quelques éléments non nécessaires dans cet exemple (utilisation du terrain...) mais qui peuvent l'être selon vos besoins.
Une fois les modifications que vous souhaitez effectuées, faites Fichier, Enregistrer sous, puis sauvegardez au format "Fichiers du serveur OSM (*.osm, *.xml)".
Voilà, vous avez les données de la zone au format OSM. Le problème, c'est que Blender ne lit pas (pas à ma connaissance) ces fichiers. Il va donc falloir transformer le fichier pour le rendre lisible par Blender.

Maperitive

Installez puis ouvrez Maperitive (voir ici pour l'installation). Voici l'interface principale du logiciel :

Image indisponible

La version utilisée ici est une version de développement, par conséquent certaines commandes sont à entrer dans le champ de texte jaune en bas.
Nous allons d'abord charger le fichier précédemment créé. Tapez ceci :
Code :
load-source monfichier.osm

Avec "monfichier.osm" le nom que vous avez donné au fichier précédent. Cette commande ne fonctionne que si le fichier est dans le même dossier que le logiciel Maperitive.
Cliquez ensuite une fois sur chaque étoile dans le cadre en bas à droite, sauf sur l'étoile à côté de "OSM File...". Entrez maintenant ces deux commandes :
Code :
use-ruleset alias=wireframe

Code :
apply-ruleset

Vos données devraient maintenant ressembler à des fils de fers, comme cela :
Image indisponible

Faites maintenant "Tools", puis "Export To SVG (For Inkscape)", et s'il n'y a pas de message d'erreur, votre fichier a bien été exporté au format SVG sous le nom "output.svg" (le fichier se trouve dans le dossier output, qui est lui même dans le dossier de Maperitive). Nous allons pouvoir importer ce fichier dans Blender.

Mais avant, nous allons récupérer l'image de la carte correspondant à la zone afin d'avoir les informations sur les chemins (car tous les chemins apparaissent sous forme de fil de fer dans blender, difficile de savoir s'il s'agit d'une départementale ou un sentier). Décochez l'étoile "OSM File" et cochez "Web Map (OSM Mapnik)". Faites "Tools" puis "Export To Bitmap". L'image de sortie aura pour nom "output.png" et sera dans le même dossier que le fichier SVG.

Blender

Nous allons pouvoir attaquer la partie import dans Blender, qui vous permettra de passer à la réalisation de votre ville
Tout d'abord, importons le fichier SVG. Pour cela, faites File, Import puis "Scalable Vector Graphics (SVG)". Sélectionnez le fichier output.svg et cliquez sur "Import SVG". Vous devez normalement avoir de nombreux chemins qui apparaissent dans la scène blender, comme ceci :

Image indisponible

Nous allons maintenant définir l'image de la carte comme fond de la scène. Appuyez sur N pour afficher les propriétés, puis cochez la case "Background Image". Cliquez sur Add Image, et ouvrez l'image output.png précédemment créée. Modifiez la taille et la position de l'image afin qu'elle corresponde aux chemins.
Image indisponible

Voilà, vous avez vos chemins qui vont vous servir de base. Pour un exemple concret, nous allons créer le bitume de l'une des routes, et le tout très rapidement.
Vous pouvez récupérer cette texture faite maison : Texture maison
Je vous laisse le soin d'appliquer cette texture comme il faut sur un plan carré, d'environ la largeur d'une route sur l'image.
Nous allons créer une enfilade de ces morceaux de routes afin d'avoir une longueur entière. Allez dans le panneau des modifiers, puis ajoutez un premier modifier Array avec les options comme ci-dessous :
Image indisponible

Appuyez ensuite sur "Apply" pour appliquer cet effet. Entrez dans le mode édition, sélectionnez tous les points, puis cliquez sur W et "Remove Doubles". Sortez du mode édition. Faites Object, Transform, "Origin to Geometry".
Retournez dans le panneau modifiers, et ajoutez un modifier Curve. Repérez le nom du chemin que la route devra suivre (le nom est de la forme Curve.xxx, avec xxx un nombre). Rentrez ce nom dans la case Object du modifier. Votre morceau de route devrait se déformer, de façon plus ou moins étrange. Déplacez le morceau de route pour le placer à peu près là où il devrait se situer. Si la route est tordue de façon étrange, tournez-la jusqu'à ce qu'elle prenne la forme du chemin. Vous devez obtenir quelque chose comme ceci :
Image indisponible

Si vous êtes sûr du placement, vous pouvez appliquer le modifier en appuyant sur "Apply".
Vous pouvez répéter cette opération avec les autres routes. La route créée ici est simple, mais vous pouvez ajouter des trottoirs, des lampadaires... Pour les bâtiments, vous pouvez sélectionner le chemin, le transformer en objet , extruder pour faire un volume, puis ajouter un toit... Vous avez la base, vous pouvez tout faire

Conclusion

Vous avez désormais le point de départ de la création d'une zone/ville réaliste. Les chemins importés de cette façon vous permettent de mettre en forme rapidement les routes et bâtiments, ce qui est intéressant pour un travail d'une grande envergure.
Si vous utilisez les données d'OSM dans un projet, ce qui est le cas indirectement ici, n'oubliez pas de créditer le projet

Besoin d'aide ?

Une question ? Quelque chose qui n'est pas clair ? Si vous avez besoin d'aide, vous pouvez soit contacter l'auteur du tutoriel via la messagerie privé (vous devez être connecté), soit envoyer un message sur le forum.