Réussir l’intégration de ses fichiers BIM par la compréhension de la chaîne d’intégration continue entre les logiciels et les préparatifs à effectuer en amont.
1. La chaîne d’intégration
L’import de données géométriques dans Unity s’effectue via le format FBX. Bien qu’Unity puisse interagir directement avec Cinema4D et 3DStudio, l’utilisation du format FBX est préférable pour :
- favoriser le travail entre des équipes distantes ou ne disposant pas de tous les logiciels sur leur poste de travail.
- sécuriser les informations BIM en ajustant les données exposées aux autres équipes.
Intégration Revit => Unity
Les fichiers BIM générés par Revit doivent être exportés dans 3DStudio ou au format FBX. Si le fichier BIM est intégré et paramétré dans 3DStudio max, il sera utilisable par Unity en direct soit par l’intermédiaire d’un export FBX.
Intégration ArchiCAD/VectorWorks => Unity
Les fichiers BIM générés par ArchiCAD et/ou VectorWorks doivent être exportés dans Cinema4D via le ‘plugin Exchange’. Une fois le fichier BIM intégré et paramétré dans Cinema4D, il sera utilisable par Unity en direct, soit par l’intermédiaire d’un export FBX.
Intégration Sketchup => Unity
Sketchup Pro fournit un export FBX utilisable par Unity. Les utilisateurs de la version gratuite doivent utiliser un export KMZ (Google Earth) qui pourra ensuite être exporté en Collada puis intégré dans Unity.
Intégration des données IFC => Unity
L’outil 3D Blender avec son plugin ‘IFC importer’ permet la lecture des fichiers IFC qui peuvent à leur tour être exportés vers Unity nativement ou par l’intermédiaire d’un export FBX.
Contrairement aux intégrations précédentes, les modifications effectués dans Blender doivent être ré-appliquées à chaque modification des données IFC.
2. BIM – Les préparatifs
Structuration de l’export
Pour garantir de bonnes performances, les objets de la scène BIM seront partitionnés dans 3 fichiers d’export distincts.
- Architectural : bâtisse, portes, escalier, fenêtres, plafond, sol…
- Technique : ventilation, cuisine
- Décoratif : chaise, table, plante, tapis…
L’export en plusieurs fichiers permettra une intégration modulaire des données BIM. La création de la scène (level design) effectuée dans Unity utilisera les optimisations des cartes graphiques pour fabriquer le rendu des objets clonés.
L’unité de mesure à l’export est le mètre ; à défaut elle sera communiqué à l’équipe d’intégration (millimètre, feet…)
Définition des faces arrières des objets
Pour des raisons de performances, Unity fabrique le rendu des faces des objets uniquement dans une seule direction. Pour permettre une exploitation correcte, le designer BIM doit s’assurer que chaque objet implémente toutes ses faces.
Définition de matériaux et application de textures sur les objets
Unity peut importer des scènes BIM définit exclusivement avec des matériaux utilisant des couleurs. Pour rendre la scène VR plus réaliste ou permettre l’application de textures dynamiques, le designer BIM doit appliquer des textures sur les objets afin de définir des coordonnées de texture.

Application d’un matériau sans coordonnées de texture définies

Application d’un matériau avec coordonnées de texture définies
Simplification géométrique
Unity fixe la limite la taille d’un Mesh importé à 32.000 points. La géométrie des objets BIM doit être optimisée en utilisant le moins de polygones possibles.
Les objets composés peuvent être scindés puis recomposées hiérarchiquement.
Les objets de décoration trop complexes (personnages, voitures, arbres …) peuvent être échangées contre ceux provenant de banques d’objets spécialisées (Unity asset store, Trimble, Turbosquid… )
Instanciation sur la carte graphique
Les objets répétitifs (technique et décoratifs) seront exportés dans des fichiers séparés et dupliqués dans Unity pour bénéficier des optimisations de la carte graphique pour garantir un rendu à 90 FPS / œil nécessaire à la réalité virtuelle.
Création d’un environnement
L’environnement est habituellement recréé dans Unity et n’a pas besoin d’être exporté. Un environnement minimaliste se compose d’un skybox mais peut aussi exploiter un terrain (M.N.T/Heightmap …) et des artefacts environnementaux (immeubles, végétations, eau …).
3. Unity – Présentation du processus de level design
Import des artefacts BIM
Mise à l’échelle, suppression des animations, génération de Normal Map et de Light Map, affectation de comportements statiques, redéfinitions de colliders simples pour chaque objet à géométrie complexe à l’aide de primitives (boîtes, sphère, capsule ..)
Retours à l’équipe BIM concernant la hiérarchie des objets et les potentiels « re-parenting » nécessaires.
VR Simple
Navigation au sol, téléportation
Mise en lumière
Définition des stratégies lumineuses pour porter les ambiances définies
Pose des lumières directionnelles, spots, sphériques et d’aires.
Pose d’un réseau de sondes de lumière et de sondes réflexives (optimisation)
Paramétrage du calcul des lumières et des ombres
Calcul et caching des textures lumières + ombres
Mise en conformité des matériaux
Skybox, fenêtres, miroir, textures vidéos, émissivité, diffusion et réflexion pour l’ensemble des textures associées aux objets.
Ajustement manuel de la balance des couleurs sur les matériaux
Réalisation de l’environnement
Environnement lointain – Skybox : éclairage naturel, météo, photos de l’environnement
Environnement proche – Terrain + éléments de décoration : building, routes, signalétique, végétation, eau …
Tests & Optimisation
Audit, tests et diagnostic de la scène dans son intégralité.
Proposition d’optimisations en fonction des scénarios rencontrés.
4. Présentation du processus d’ajouts d’interactions dans Unity
Déplacements avancés
Téléportation dans des pièces séparées par des murs (rendu invisible temporairement).
Points de téléportations spécifiques.
Interface Mini-map.
Périmètre de visite
Placer des colliders pour détecter les déplacements hors zone.
Activation d’un filtre noir progressif pour protéger les zones non-visitables.
Interactions d’objets de décoration / structurel
Placer des colliders sur les objets permettant les interactions.
Ajouts de comportement prédéfinis : attraper/jeter, ouvrir un tiroir/placard/fenêtre, ouvrir une porte…
Placer des sas d’activations pour déclencher des actions automatiques (ouverture / fermeture de porte, lancer/arrêter une vidéo, allumer/éteindre des lumières… )
Interactions d’objets techniques
Focus technique via des vues éclatées passives ou animées.
Focus technique via la mise en avant du matériel.
Mise à disposition d’information.
Interactions d’interface graphiques
Pose d’indicateurs d’interactions d’interface sur des objets en mode pointage manette ou regard. Création de boutons à proximité des objets permettant l’affichage d’information ou l’activation de vues éclatées.
Création d’une interface type bracelet : Mini-Map, gestionnaire de matériaux/couleurs, affichage des mesures, affichage/masquage de la décoration, accès à des points de téléportation spécifiques.
Reconnaissance de gestes pour interagir avec des périphériques (balayage de la main… )
Implémentation des demandes spécifiques.
Manipulation de l’environnement : horloge (éclairage principal), saisons…
Interactions collaboratives / multi-participants / multi-plateformes
Mise à disposition d’un plugin de dessin collaboratif ayant pour objectif la fabrication de photos permettant la communication de l’équipe et le partage d’opinions.
Création d’un serveur, mise en réseau de l’expérience.
Implémentation des scénarios d’utilisation en réseau devant être supportés (communication micro / pointage… )
Déclinaison sur d’autres supports : tablettes / PC…
4. Sources
- Livre :
Unity for Architectural Visualization [Stefan Boeykens]
- Tutoriaux :
http://cad-3d.blogspot.fr/2014/06/getting-bim-data-into-unity-part-0.html
http://cad-3d.blogspot.fr/2014/10/getting-bim-data-into-unity-part-1.html
http://cad-3d.blogspot.fr/2015/02/getting-bim-data-into-unity-part-2-revit.html
http://cad-3d.blogspot.fr/2015/07/getting-bim-data-into-unity-part-3.html
http://cad-3d.blogspot.fr/2016/03/getting-bim-data-into-unity-part-4.html
http://cad-3d.blogspot.fr/2016/03/getting-bim-data-into-unity-part-5.html