Processus d’intégration de données BIM vers Unity pour une exploitation en réalité virtuelle

    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

    contact@technsmile.com

    + 33 (0) 9 50 72 13 06

    4 Rue Jules Raimu
    31200 TOULOUSE – France