Qu'est-ce qu'un OpenGL® Quad?

Un quadrilatère ou quadrilatère OpenGL® en programmation et en graphiques informatiques est une forme tridimensionnelle (3D), également appelée polygone, qui a quatre côtés et quatre points. Chaque point 3D représentant un seul coin du quadrilatère OpenGL® est appelé sommet et est défini avec trois nombres se rapportant à la position de ses coordonnées dans l'espace virtuel. Les sommets d'un quad ne doivent pas suivre de directives réelles, sauf qu'il doit y en avoir quatre; sinon, la forme est appelée polygone, triangle ou ligne selon le nombre réel. La plupart des images numériques étant en fait rectangulaires, un quad OpenGL® peut être une forme utile, car l’image peut être mappée à la surface sur une surface sans déformation importante ni recours à des techniques complexes de mappage des textures. L'utilisation d'un quad OpenGL® présente toutefois ses propres défis et un certain nombre de programmeurs suggèrent de les éviter complètement.

L'une des principales utilisations d'un quad OpenGL® est de dessiner des graphiques bidimensionnels (2D) dans un environnement 3D. Cela peut être fait pour avoir une interface utilisateur statique superposée au-dessus d'une scène 3D ou pour émuler des graphiques 2D avec OpenGL®. Bien qu'OpenGL® ait été conçu pour générer des graphiques 3D complexes, il est fréquemment utilisé dans les applications graphiques 2D en raison des optimisations et de la souplesse de l'interface de programmation abstraite (API). Un quad devient très important dans le rendu des graphiques 2D, car il s'agit d'une représentation 3D naturelle d'une image numérique, ce qui signifie qu'un quad peut être proportionné pour correspondre exactement à la dimension de l'image. Une fois que les proportions correspondent, l’image peut être mappée ou projetée sur la surface du quad sans aucun type de distorsion, d’emballage ou de gouttière.

Selon certains programmeurs, l’un des avantages de l’utilisation d’un quad OpenGL® est qu’il est plus facile de penser à la manière dont les quads s’ajustent les uns aux autres, par opposition à la visualisation de l’ajustement des triangles. Ceci est particulièrement vrai pour les formes 3D simples telles qu'un cube dans lequel chaque quadrilatère est un seul côté; avec un maillage de triangle, deux triangles doivent être combinés pour former un quad qui forme un seul côté. Les quads peuvent également être facilement manipulés pour créer une perspective ou d'autres effets dans un environnement en mosaïque ou aligné sur une grille.

L'utilisation d'un quad OpenGL® présente certains inconvénients, principalement en raison des algorithmes utilisés pour pixelliser ou restituer une image dans la fenêtre du visualiseur. L'un des problèmes les plus rencontrés est que la carte graphique ou de rendu peut, à tout moment, diviser le quad en deux triangles à des fins d'efficacité. Cela peut entraîner subitement une déformation visible d'une surface autrement lisse, sous un angle traversant le quadrilatère où se rejoignent les bords des triangles.

Un autre problème plus courant que l'on ne le pense parfois est lié à l'écrêtage d'un quad OpenGL®. Lorsqu'une partie du quad est en dehors de la fenêtre de visualisation, le moteur de rendu coupera le quad afin que seule la partie visible soit rendue. Cela signifie qu'un quad sera géométriquement coupé. Si le quad a été converti en deux triangles avant la coupure, chaque triangle devient alors un quad et chacun de ces quadruples est converti en deux triangles. Cela conduit à une situation dans laquelle un quad écrêté se compose soudainement de quatre triangles au lieu d'un quad lisse.

La complexité et l'imprévisibilité de la conversion des quadrilatères en triangles donnent des résultats indésirables. Celles-ci incluent des distorsions de textures, des inexactitudes ou des artefacts liés à l'éclairage de sommet, et parfois des surfaces polygonales manquantes. Pour ces raisons, certains programmeurs évitent totalement l'utilisation des quads.

DANS D'AUTRES LANGUES

Cet article vous a‑t‑il été utile ? Merci pour les commentaires Merci pour les commentaires

Comment pouvons nous aider? Comment pouvons nous aider?