web-dev-qa-db-fra.com

Pourquoi les moteurs 3D utilisent-ils principalement des triangles pour dessiner des surfaces?

Pourquoi les triangles sont-ils toujours utilisés pour dessiner des surfaces en 3D? Pourquoi pas un carré ou une autre forme?

51
seymar

Les triangles ne peuvent jamais être non plans; tout ce qui a plus de 3 points peut être non planaire et donc non rendu, à moins qu'il ne soit converti en triangles.

Par exemple: Un carré est deux triangles qui sont sur le même plan, si tous les points qui composent le carré sont coplanaires. Il faut beaucoup de calculs pour s'assurer que tous les points sont coplanaires, donc tous les polygones supérieurs à 3 points sont précalculés en les décimant en triangles et testés pour s'assurer que tous les points sont coplanaires une fois, à la place de sur chaque image qui est rendue.

Voici une bonne référence sur les maillages polygonaux .

Maillage planaire


(source: softimage.com )

Maillage non planaire


(source: softimage.com )

et un autre exemple qui pourrait le rendre plus clair


(source: autodesk.com )

Le maillage non planaire est dégénéré et ne peut pas être trié ou rendu correctement d'une manière saine. Les triangles n'ont pas ce problème.

Efficacité

Les triangles sont également très efficaces en mémoire et peuvent être triés et rendus extrêmement rapides lors de l'utilisation de Triangle Strips qui n'ont besoin que d'un point pour être stockés pour chaque triangle supplémentaire après le premier.

http://upload.wikimedia.org/wikipedia/en/0/03/Triangle_Strip.png

et Triangle Fans qui est un cas particulier de Triangle Strip.


(source: codesampler.com )

76
user177800

Étant donné que 3 points sont le minimum nécessaire pour définir une surface plane, toute forme peut être simulée à l'aide de nombreux triangles, et des algorithmes efficaces existent pour peindre rapidement des triangles sur l'écran.

13
Geoff

Fondamentalement, toute structure complexe (surface) peut être représentée sous la forme d'un tas de triangles. Le triangle est la géométrie la plus atomique et la plus primitive. Par conséquent, il est utilisé comme base pour presque tout. Néanmoins, la plupart des moteurs 3D vous fournissent des primitives plus complexes comme des sphères, des cônes, des cylindres, des beignets, etc. Vérifiez la documentation de vos bibliothèques.

11
Hyperboreus