Que faut-il utiliser entre Three.js et CSS3 pour des animations 3D ?

Le 10/09/2015

Dans Webdesign

L'objectif n'est évidemment pas de déterminer si l'un est mieux que l'autre, car les deux s'adressent évidemment à des publics très différents, avec des besoins différents : les développeurs JavaScript avec de gros besoins 3Ds (jeux, interfaces totalement en 3D, ….) iront vers Three.js , et les intégrateurs se tourneront vers le CSS3 pour ajouter des effets intéressants pour leur web designs.

Mettre les deux en comparaison permet surtout de présenter les deux technologies et vous donner envie d'expérimenter avec la 3D sur le web mais également de nourrir votre inspiration pour vos prochaines expériences.

Les 3D Transform CSS3

Le CSS3 nous a apporté un très bel outil avec les transformations 3D. Simple d'utilisation une fois que la logique est là, cette technique est tout à fait à la portée des intégrateurs sans aucune notion de JavaScript.

Mes quatre exemples sont simples à décortiquer ! Je vous conseille de vraiment jeter un œil au premier exemple, une soucoupe volante projetant une ombre sur la "sphère" en dessous. Pas de JS, tout est en CSS et en bonnes idées.

See the Pen UFO by Ross B (@rocbear) on CodePen.

See the Pen CSS 3D Transform - Card Flip by Adrian Parr (@adrianparr) on CodePen.

See the Pen Multiplane Demo by Nick Pettit (@nickpettit) on CodePen.

See the Pen budgetSlider by Hornebom (@Hornebom) on CodePen.

La 3D avec Three.js

Three.js est une ressource JavaScript permettant de simplifier l'utilisation de Web Gl. C'est un vrai moteur 3D intégré à votre navigateur. Cela permet par exemple de créer des modèles 3D dans Maya (ou tout autre logiciel de 3D), puis de les importer dans votre navigateur.

Mais pour essayer de comparer ce qui est comparable, j'ai essayé de limiter les exemples choisis à des pens créant leurs modèles en JavaScript. Comme vous pourrez le voir, le résultat est souvent plus fluide et plus simple à animer qu'en CSS3, mais aussi plus complexe à mettre en place. La syntaxe est  proche de celle utilisée pour le Canvas.

Petite note : n'ouvrez pas tous les liens dans des onglets sauf si vous avez confiance en votre carte graphique, car il est possible que le moteur webgl de votre navigateur ne tienne pas le coup et plante.

See the Pen Chill the lion by Karim Maaloul (@Yakudoo) on CodePen.

See the Pen Cat vs ball of wool by Karim Maaloul (@Yakudoo) on CodePen.

See the Pen Three.JS + Dat.GUI = <3 by Matthew Blode (@mblode) on CodePen.

See the Pen 3D Particle Heart by Alex (@alexdevp) on CodePen.

See the Pen Moving Cubes with three.js by Michael Genty (@Ivolvy) on CodePen.