Développement d’un plug-in de triangulation pour Unity

[Bane par Eliasmadan.]Dans le cadre d’un projet pour un client, nous travaillons avec Unity dans un environnement 3D. La 3D, c’est bien, mais cela peut devenir contraignant lorsqu’il s’agit de dessiner un simple polygone. Malheureusement, ce n’est pas possible dans les librairies standards de Unity. Voici donc comment résoudre ce problème.

[Bane par Eliasmadan.]

Dans le cadre d’un projet pour un client, nous travaillons avec Unity dans un environnement 3D. La 3D, c’est bien, mais cela peut devenir contraignant lorsqu’il s’agit de dessiner un simple polygone. Malheureusement, ce n’est pas possible dans les librairies standards de Unity. Voici donc comment résoudre ce problème.

Solution 1 : modifier sur la texture

Une solution simple consiste à se concentrer sur la texture 2D et non sur la mesh 3D. Mais il peut arriver que l’on n’ait pas le choix, auquel cas il va bien falloir trianguler notre polygone !

Solution 2 : la triangulation, puisqu’il le faut

Cette discipline existe depuis les débuts de la 3D, et des mathématiciens comme Boris Delaunay, Gueorgui Voronoï ont laissé leurs empreintes dans nos ordinateurs actuels.

Un triangle étant l’unité de base dans la modélisation 3D, le but de la “triangulation” est de diviser une surface en une série de triangles choisis judicieusement.

Curieusement, ces fonctionnalités pourtant fondamentales ne sont pas accessibles dans les librairies standards de Unity.

Pour les besoins d’un projet, nous avons décidé de porter la librairie Triangle de Jonathan R. Shewchuk de l’Université de Berkeley pour Unity sous forme de plug-in multiplateforme. Ce plug-in fonctionne avec Android, iOS, Windows et Mac.

Voici le résultat. Celui-ci a été fait à l’aide du plug-in que nous avons développé pour notre client et de la librairie Triangle :

Démo exécutable disponible ici : http://goo.gl/GO1vCC

Bien que nous ne nous intéressions dans le cadre de notre projet qu’à la réalisation d’un polygone dans un environnement 3D, d’autres utilisations de cet outil sont possibles :

  • Réalisation dynamique d’une mesh 3D

  • Possibilité de réaliser des simulations grâce à la décomposition en éléments finis (ex. : aérodynamisme d’un avion, couverture réseau wifi, calcul de chocs).

  • À l’aide d’un shader, on peut réaliser des représentations graphiques telles que HeatMap ou Voronoi.

  • Pour des jeux vidéo, on pourrait imaginer un nouveau système de destruction ou les mesh 3D augmenteraient leur niveau de “tessellation” avant de voler en éclats.

Découvrez nos histoires
à succès.

Un projet de développement logiciel?
Contactez-nous!  

Cette entrée a été publiée dans Développement mobile
par Jan D’Orgeville.
Partager l’article