[TIPS]Comment répartir uniformément des points sur un Mesh

Bonjour à tous,

Me voila aujourd’hui pour un article un peu spécial: de l’algorithmie.

Je vais vous expliquer comment répartir uniformément des points sur un mesh. A quoi ça peut bien servir? Je l’ai utilisé pour répartir des particules sur un objet 3D, croyez moi, l’effet est sympa.

Alors comment faire?

Tout d’abord il va falloir récupérer l’ensemble des triangles de votre mesh. Vous allez avoir besoin de calculer la surface de chacun de ces triangles. Stockez dans un tableau associatif l’id du triangle et sa surface:

graph

 

Maintenant que vous avez ce tableau, stockez dans un nouveau tableau pour chaque triangle, sa surface additionnée à la somme de toutes les surfaces précédentes:

graph2

 

A présent vous allez pour chaque point que vous souhaitez générer tirer une surface aléatoire entre 0 et la surface totale du mesh(qui correspond donc à la dernière entrée du dernier tableau).
Une fois cette surface aléatoire générée, vous regardez à quel triangle cette surface correspond dans le dernier tableau.

Vous vous retrouvez donc avec une liste de triangles. Ensuite vous allez générer un point aléatoire dans ce triangle. Vous avez à présent une liste de points répartis uniformément sur votre mesh.

Voici le genre de rendu que vous pouvez avoir ici.

Bonne journée et amusez vous bien avec ça :)

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Laisser un commentaire