Babylon.js: Le moteur 3D temps réel pour le web

Salut la zone, je profite d’un peu de temps libre pour vous parler de mon petit bébé : Babylon.js

Il s’agit d’un moteur 3D gratuit pour les développeurs web. Développé en TypeScript en open source sous licence Apache 2, c’est le moteur 3D que l’on retrouve sur Remix3D ou bien encore sur le Xbox Design lab.

Le moteur supporte toutes les dernières technos qui font plaisir comme :
Le physically based rendering (PBR):

Ou la VR via WebVR:

Les particules :

Ou encore les post-processes comme le motion blur :

Si ça vous tente de voir comment ça marche mais que comme moi ça vous pète la quiche de lire la documentation, il existe l’outil ultime : Le playground.

En gros vous pouvez coder sur la partie gauche avec l’aide de l’IntelliSense et voir le résultat sur la droite en cliquant sur Run.
Vous pouvez aussi sauver votre œuvre et cela vous génèrera une url unique que vous pourrez utiliser pour pavaner comme des paons sur Twitter.

Le moteur est ultra riche (/arrogantMode on) et dispose d’une grosse documentation juste au cas où vous auriez envie de lire ce que je passe des mois a écrire.

Si vous avez Blender3D, Unity3D ou encore 3dsmax, il existe des exportateurs vous permettant de générer des fichiers .babylon (format maison) ou .gltf (format standard du Khronos group).

Voilà les petits, si vous avez des questions n’hésitez pas :blush:

14 J'aimes

Je me permets de rajouter la présentation donnée par David Rousset a Best of Web (ca va faire plaisir à @Titan) qui cause justement de VR et de Babylon.js (et en plus la prez est mignogne)

2 J'aimes

C’est marrant j’ai vu passé la démo avec le casque y’a pas longtemps via Twitter.
Ptite question : ça marcherait bien pour streamer des énormes modèles 3D avec niveau de détails ? Je parle de choses comme un modèle de ville.

Hello,

J’avais évalué à l’époque Babylon.js comme un sérieux concurrent à Three.js. Malheureusement, pour ce que je cherchais à faire (j’en parle un peu plus bas), je me suis rendu compte que babylon.js ne correspondait pas à mes besoins.

En effet, j’ai créé sur un éditeur basé sur des tuiles 3D via instanciation de géométrie, avec illumination et ombrage en temps réel. Malheureusement, de ce que j’ai pu testé sur Babylon.js, on ne pouvait pas faire cela simplement (l’ombrage ne semblait pas supporter l’instanciation de géométrie).

Note bien que Three.js ne le supporte pas nativement (et le support ne semble pas prévu pour si tôt) non plus, et j’ai longuement bidouillé ce dernier pour arriver à mes fins. Du coup, je me demandais s’il était prévu de supporter nativement les features suivantes dans babylon.js:

  • deferred lightning rendering
  • shadow over geometry instancing
  • deferred shadow mapping

Cela m’éviterait de me baser sur une version complètement custom de three.js (qui du coup, ne me permet pas de suivre les évolutions du moteur)…

Oui on supporte plusieurs technos dont notamment le LOD ou le geometry instancing

Alors on supporte déjà le geometry instancing et les shadows
Pour le deferred shadow mapping il faudrait voir ce que tu entends par la car on a des techniques qui vont dans ce sens
Pour le deferred lighting on ne l’a pas mais si ça te dis de contribuer je serai ravi de l’ajouter dans le core

Ping moi ici si tu veux en discuter: davca@microsoft.com