Infographie 2D - 2D computer graphics

2D Les images de synthèse est l' informatique génération d' images numériques -surtout à partir de modèles à deux dimensions (tels que les modèles géométriques 2D , du texte et des images numériques) et par des techniques qui leur sont spécifiques. Il peut faire référence à la branche de l' informatique qui comprend de telles techniques ou aux modèles eux-mêmes.

Raster graphiques sprites ( à gauche) et des masques ( à droite)

L'infographie 2D est principalement utilisée dans des applications qui ont été développées à l'origine sur des technologies d' impression et de dessin traditionnelles , telles que la typographie , la cartographie , le dessin technique , la publicité , etc. Dans ces applications, l' image bidimensionnelle n'est pas seulement une représentation d'un réel. objet du monde, mais un artefact indépendant avec une valeur sémantique ajoutée ; Les modèles bidimensionnels sont donc préférés, car ils permettent un contrôle plus direct de l'image que l'infographie 3D (dont l'approche s'apparente plus à la photographie qu'à la typographie).

Dans de nombreux domaines, tels que la PAO , l' ingénierie et les affaires , une description d'un document basée sur des techniques d'infographie 2D peut être beaucoup plus petite que l'image numérique correspondante, souvent d'un facteur 1/1000 ou plus. Cette représentation est également plus flexible puisqu'elle peut être rendue à différentes résolutions pour s'adapter à différents périphériques de sortie . Pour ces raisons, les documents et illustrations sont souvent stockés ou transmis sous forme de fichiers graphiques 2D .

L'infographie 2D a commencé dans les années 1950, basée sur des dispositifs graphiques vectoriels . Ceux-ci ont été largement supplantés par les appareils basés sur des trames dans les décennies suivantes. Le langage PostScript et le protocole X Window System ont été des développements marquants dans le domaine.

Technique

Les modèles graphiques 2D peuvent combiner des modèles géométriques (également appelés graphiques vectoriels ), des images numériques (également appelées graphiques raster ), du texte à composer (défini par le contenu, le style et la taille de la police , la couleur, la position et l'orientation), des fonctions mathématiques et des équations , et plus. Ces composants peuvent être modifiés et manipulés par des transformations géométriques bidimensionnelles telles que la translation , la rotation , la mise à l'échelle . Dans les graphiques orientés objet , l'image est décrite indirectement par un objet doté d'une méthode d' auto- rendu — une procédure qui attribue des couleurs aux pixels de l'image par un algorithme arbitraire. Des modèles complexes peuvent être construits en combinant des objets plus simples, dans les paradigmes de la programmation orientée objet .

Une translation déplace chaque point d'une figure ou d'un espace de la même quantité dans une direction donnée.
Une réflexion contre un axe suivie d'une réflexion contre un deuxième axe parallèle au premier entraîne un mouvement total qui est une translation.

En géométrie euclidienne , une translation déplace chaque point d'une distance constante dans une direction spécifiée. Une translation peut être décrite comme un mouvement rigide : d'autres mouvements rigides incluent des rotations et des réflexions. Une translation peut également être interprétée comme l'ajout d'un vecteur constant à chaque point, ou comme un déplacement de l' origine du système de coordonnées . Un opérateur de traduction est un opérateur tel que

Si v est un vecteur fixe, alors la traduction T v fonctionnera comme T v ( p ) = p + v .

Si T est une translation, alors l' image d'un sous-ensemble A sous la fonction T est la translation de A par T . La traduction de A par T v s'écrit souvent A + v .

Dans un espace euclidien , toute translation est une isométrie . L'ensemble de toutes les traductions forme le groupe de traduction T , qui est isomorphe à l'espace lui - même, et un sous - groupe de groupe euclidienne E ( n ). Le groupe quotient de E ( n ) par T est isomorphe au groupe orthogonal O ( n ) :

E ( n ) / TO ( n ).

Traduction

Puisqu'une translation est une transformation affine mais pas une transformation linéaire , des coordonnées homogènes sont normalement utilisées pour représenter l'opérateur de translation par une matrice et ainsi le rendre linéaire. Ainsi, nous écrivons le vecteur tridimensionnel w = ( w x , w y , w z ) en utilisant 4 coordonnées homogènes comme w = ( w x , w y , w z , 1).

Pour traduire un objet par un vecteur v , chaque vecteur homogène p (écrit en coordonnées homogènes) devrait être multiplié par cette matrice de translation :

Comme indiqué ci-dessous, la multiplication donnera le résultat attendu :

L'inverse d'une matrice de translation peut être obtenu en inversant la direction du vecteur :

De même, le produit des matrices de traduction est donné en ajoutant les vecteurs :

Parce que l'addition de vecteurs est commutative , la multiplication des matrices de traduction est donc également commutative (contrairement à la multiplication des matrices arbitraires).

Rotation

En algèbre linéaire , une matrice de rotation est une matrice utilisée pour effectuer une rotation dans l' espace euclidien .

Points tourne dans le xy - plan cartésien sens anti - horaire d'un angle θ autour de l'origine du système de coordonnées cartésiennes . Pour effectuer la rotation à l'aide d'une matrice de rotation R , la position de chaque point doit être représentée par un vecteur colonne v , contenant les coordonnées du point. Un vecteur tourné est obtenu en utilisant la multiplication matricielle R v . Puisque la multiplication matricielle n'a aucun effet sur le vecteur zéro (c'est-à-dire sur les coordonnées de l'origine), les matrices de rotation ne peuvent être utilisées que pour décrire les rotations autour de l'origine du système de coordonnées.

Les matrices de rotation fournissent une description algébrique simple de telles rotations et sont largement utilisées pour les calculs en géométrie , physique et infographie . Dans l'espace à 2 dimensions, une rotation peut être simplement décrite par un angle θ de rotation , mais elle peut aussi être représentée par les 4 entrées d'une matrice de rotation à 2 lignes et 2 colonnes. Dans l'espace à 3 dimensions, chaque rotation peut être interprétée comme une rotation d'un angle donné autour d'un seul axe de rotation fixe (voir le théorème de rotation d'Euler ), et peut donc être simplement décrite par un angle et un vecteur à 3 entrées. Cependant, il peut aussi être représenté par les 9 entrées d'une matrice de rotation à 3 lignes et 3 colonnes. La notion de rotation n'est pas couramment utilisée dans les dimensions supérieures à 3 ; il existe une notion de déplacement en rotation , qui peut être représenté par une matrice, mais pas d'axe ou d'angle unique associé.

Les matrices de rotation sont des matrices carrées , avec des entrées réelles . Plus précisément, elles peuvent être caractérisées comme des matrices orthogonales avec le déterminant  1 :

.

L' ensemble de toutes ces matrices de taille n forme un groupe , connu sous le nom de groupe orthogonal spécial SO( n ) .

En deux dimensions

Une rotation dans le sens inverse des aiguilles d'une montre d'un vecteur selon l'angle θ . Le vecteur est initialement aligné avec l'axe des x.

En deux dimensions, chaque matrice de rotation a la forme suivante :

.

Cela fait tourner les vecteurs colonnes au moyen de la multiplication matricielle suivante :

.

Donc les coordonnées (x',y') du point (x,y) après rotation sont :

,
.

Le sens de rotation du vecteur est antihoraire si est positif (par exemple 90°), et dans le sens horaire si θ est négatif (par exemple -90°).

.

Orientation non standard du système de coordonnées

Une rotation d'angle θ avec des axes non standard.

Si une norme droitier système cartésien de coordonnées est utilisé, avec le x axe vers la droite et l' y axe pour haut, la rotation R ( θ ) est dans le sens antihoraire. Si un système de coordonnées cartésiennes gaucher est utilisé, avec x dirigé vers la droite mais y dirigé vers le bas, R( θ ) est dans le sens des aiguilles d'une montre. De telles orientations non standard sont rarement utilisées en mathématiques mais sont courantes en infographie 2D, qui ont souvent l'origine dans le coin supérieur gauche et l' axe des y en bas de l'écran ou de la page.

Voir ci - dessous pour d'autres conventions alternatives qui peuvent changer le sens de la rotation produite par une matrice de rotation .

Rotations courantes

Les matrices pour les rotations de 90° et 180° sont particulièrement utiles :

(rotation de 90° dans le sens inverse des aiguilles d'une montre)
(rotation de 180° dans les deux sens – un demi-tour)
(rotation à 270° dans le sens inverse des aiguilles d'une montre, identique à une rotation à 90° dans le sens des aiguilles d'une montre)

Dans la géométrie euclidienne , mise à l' échelle uniforme ( isotrope mise à l' échelle , une dilatation homogène , homothétie ) est une transformation linéaire qui agrandit (augmente) , rétrécit (diminue) des objets par un facteur d'échelle qui est la même dans toutes les directions. Le résultat d'une mise à l'échelle uniforme est similaire (au sens géométrique) à l'original. Un facteur d'échelle de 1 est normalement autorisé, de sorte que les formes congruentes sont également classées comme similaires. (Certains manuels scolaires excluent spécifiquement cette possibilité, tout comme certains excluent les carrés d'être des rectangles ou les cercles d'être des ellipses.)

La mise à l' échelle est plus générale avec un facteur d'échelle distinct pour chaque direction d'axe. Mise à l' échelle non uniforme ( anisotrope mise à l' échelle , la dilatation non homogène ) est obtenu lorsque au moins l' un des facteurs de mise à l' échelle est différente des autres; un cas particulier est la mise à l'échelle ou l' étirement directionnel (dans une direction). Une mise à l'échelle non uniforme modifie la forme de l'objet ; par exemple, un carré peut se transformer en rectangle, ou en parallélogramme si les côtés du carré ne sont pas parallèles aux axes de mise à l'échelle (les angles entre les lignes parallèles aux axes sont conservés, mais pas tous les angles).

Mise à l'échelle

Une mise à l'échelle peut être représentée par une matrice de mise à l'échelle. Pour mettre un objet à l'échelle par un vecteur v = ( v x , v y , v z ), chaque point p = ( p x , p y , p z ) devrait être multiplié par cette matrice de mise à l'échelle :

Comme indiqué ci-dessous, la multiplication donnera le résultat attendu :

Une telle mise à l'échelle modifie le diamètre d'un objet par un facteur entre les facteurs d'échelle, la zone par un facteur entre le plus petit et le plus grand produit de deux facteurs d'échelle, et le volume par le produit des trois.

L'échelle est uniforme si et seulement si les facteurs d'échelle sont égaux ( v x = v y = v z ). Si tous les facteurs d'échelle sauf un sont égaux à 1, nous avons une mise à l'échelle directionnelle.

Dans le cas où v x = v y = v z = k , la mise à l'échelle est également appelée agrandissement ou dilatation d'un facteur k, augmentant la surface d'un facteur k 2 et le volume d'un facteur k 3 .

La mise à l'échelle au sens le plus général est toute transformation affine avec une matrice diagonalisable . Cela inclut le cas où les trois directions de mise à l'échelle ne sont pas perpendiculaires. Cela inclut également le cas où un ou plusieurs facteurs d'échelle sont égaux à zéro ( projection ), et le cas d'un ou plusieurs facteurs d'échelle négatifs. Ce dernier correspond à une combinaison d'échelle proprement dite et d'une sorte de réflexion : le long de lignes dans une direction particulière, nous prenons la réflexion au point d'intersection avec un plan qui n'a pas besoin d'être perpendiculaire ; elle est donc plus générale que la réflexion ordinaire dans le plan.

Utiliser des coordonnées homogènes

En géométrie projective , souvent utilisée en infographie , les points sont représentés à l'aide de coordonnées homogènes . Pour mettre un objet à l'échelle par un vecteur v = ( v x , v y , v z ), chaque vecteur de coordonnées homogène p = ( p x , p y , p z , 1) devrait être multiplié par cette matrice de transformation projective :

Comme indiqué ci-dessous, la multiplication donnera le résultat attendu :

Étant donné que le dernier composant d'une coordonnée homogène peut être considéré comme le dénominateur des trois autres composants, une mise à l'échelle uniforme par un facteur commun s (mise à l'échelle uniforme) peut être réalisée en utilisant cette matrice de mise à l'échelle :

Pour chaque vecteur p = ( p x , py , p z , 1) on aurait

qui serait homogénéisé à

Peinture directe

Un moyen pratique de créer une image complexe consiste à commencer par une carte raster "canevas" vierge (un tableau de pixels , également connu sous le nom de bitmap ) remplie d'une couleur d'arrière-plan uniforme , puis "dessiner", "peindre" ou "coller" de simples taches de couleur dessus, dans un ordre approprié. En particulier, la toile peut être le tampon de trame pour un écran d'ordinateur .

Certains programmes définiront directement les couleurs des pixels, mais la plupart s'appuieront sur une bibliothèque graphique 2D ou la carte graphique de la machine , qui implémente généralement les opérations suivantes :

  • coller une image donnée à un décalage spécifié sur le canevas ;
  • écrire une chaîne de caractères avec une police spécifiée, à une position et un angle donnés ;
  • peindre une forme géométrique simple , telle qu'un triangle défini par trois coins, ou un cercle avec un centre et un rayon donnés ;
  • tracez un segment de ligne , un arc ou une courbe simple avec un stylo virtuel d'une largeur donnée.

Modèles de couleurs étendus

Le texte, les formes et les lignes sont rendus avec une couleur spécifiée par le client. De nombreuses bibliothèques et les cartes offrent des dégradés de couleur , qui sont à portée de main pour la génération de milieux divers, sans à- coup-effets d'ombre, etc. (Voir aussi l' ombrage Gouraud ). Les couleurs des pixels peuvent également être extraites d'une texture, par exemple une image numérique (imitant ainsi les screentones de frottement et la légendaire peinture à carreaux qui n'était disponible que dans les dessins animés ).

Peindre un pixel avec une couleur donnée remplace généralement sa couleur précédente. Cependant, de nombreux systèmes prennent en charge la peinture avec des couleurs transparentes et translucides , qui ne modifient que les valeurs de pixels précédentes. Les deux couleurs peuvent également être combinées de manière plus complexe, par exemple en calculant leur bit à bit exclusif ou . Cette technique est connue sous le nom d' inversion de couleur ou d' inversion de couleur , et est souvent utilisée dans les interfaces utilisateur graphiques pour la surbrillance, le dessin à l'élastique et d'autres peintures volatiles, car repeindre les mêmes formes avec la même couleur restaurera les valeurs de pixel d'origine.

Couches

Un personnage animé 2D composé d'arrière-plans 3D à l'aide de calques.

Les modèles utilisés en infographie 2D ne prévoient généralement pas de formes tridimensionnelles, ni de phénomènes optiques tridimensionnels tels que l'éclairage, les ombres , la réflexion , la réfraction , etc. Cependant, ils peuvent généralement modéliser plusieurs couches (conceptuellement d'encre, de papier, ou film ; opaque, translucide ou transparent : empilé dans un ordre spécifique. L'ordre est généralement défini par un seul nombre (la profondeur du calque ou la distance par rapport au spectateur).

Les modèles en couches sont parfois appelés " infographie 2 12 -D". Ils permettent d'imiter les techniques traditionnelles de dessin et d'impression à base de film et de papier, telles que le découpage et le collage ; et permet à l'utilisateur de modifier n'importe quelle couche sans affecter les autres. Pour ces raisons, ils sont utilisés dans la plupart des éditeurs graphiques . Les modèles en couches permettent également un meilleur anticrénelage spatial des dessins complexes et fournissent un modèle solide pour certaines techniques telles que les joints à onglet et la règle pair-impair .

Les modèles en couches sont également utilisés pour permettre à l'utilisateur de supprimer les informations indésirables lors de la visualisation ou de l'impression d'un document, par exemple des routes ou des voies ferrées à partir d'une carte , certaines couches de processus à partir d'un schéma de circuit intégré ou des annotations manuelles à partir d'une lettre commerciale.

Dans un modèle basé sur des calques, l'image cible est produite en « peignant » ou en « collant » chaque calque, par ordre de profondeur décroissante, sur la toile virtuelle. Conceptuellement, chaque couche est d'abord rendue seule, produisant une image numérique avec la résolution souhaitée qui est ensuite peinte sur la toile, pixel par pixel. Bien entendu, les parties entièrement transparentes d'un calque n'ont pas besoin d'être rendues. Le rendu et la peinture peuvent être effectués en parallèle, c'est-à-dire que chaque pixel de couche peut être peint sur la toile dès qu'il est produit par la procédure de rendu.

Les calques constitués d'objets géométriques complexes (tels que du texte ou des polylignes ) peuvent être décomposés en éléments plus simples (des caractères ou des segments de ligne , respectivement), qui sont ensuite peints sous forme de calques séparés, dans un certain ordre. Cependant, cette solution peut créer des artefacts de crénelage indésirables partout où deux éléments chevauchent le même pixel.

Voir aussi Portable Document Format#Layers .

Matériel

Les écrans de cartes graphiques modernes utilisent presque massivement des techniques de trame, divisant l'écran en une grille rectangulaire de pixels , en raison du coût relativement faible du matériel vidéo basé sur la trame par rapport au matériel graphique vectoriel. La plupart des matériels graphiques ont un support interne pour les opérations de blitting ou le dessin de sprite . Un coprocesseur dédié au blitting est appelé puce Blitter .

Classique 2D puces graphiques et des processeurs graphiques unités de la fin des années 1970 à 1980, utilisé dans 8 bits au début 16 bits , jeux d' arcade , consoles de jeux vidéo et les ordinateurs personnels , les suivants:

Logiciel

De nombreuses interfaces utilisateur graphiques (GUI), y compris macOS , Microsoft Windows ou le système X Window , sont principalement basées sur des concepts graphiques 2D. Un tel logiciel fournit un environnement visuel pour interagir avec l'ordinateur, et comprend généralement une certaine forme de gestionnaire de fenêtres pour aider l'utilisateur à faire la distinction conceptuelle entre différentes applications. L'interface utilisateur au sein des applications logicielles individuelles est également généralement de nature 2D, en partie en raison du fait que les périphériques d'entrée les plus courants , tels que la souris , sont limités à deux dimensions de mouvement.

Les graphiques 2D sont très importants dans les périphériques de contrôle tels que les imprimantes, les traceurs, les machines de découpe de feuilles, etc. Ils ont également été utilisés dans la plupart des premiers jeux vidéo ; et sont toujours utilisés pour les jeux de cartes et de société tels que le solitaire , les échecs , le mahjongg , etc.

Les éditeurs graphiques 2D ou les programmes de dessin sont des logiciels au niveau de l'application pour la création d'images, de diagrammes et d'illustrations par manipulation directe (par le biais de la souris, d' une tablette graphique ou d'un appareil similaire) de primitives d'infographie 2D. Ces éditeurs fournissent généralement des primitives géométriques ainsi que des images numériques ; et certains soutiennent même des modèles procéduraux. L'illustration est généralement représentée en interne sous la forme d'un modèle en couches, souvent avec une structure hiérarchique pour faciliter l'édition. Ces éditeurs produisent généralement des fichiers graphiques où les couches et les primitives sont conservées séparément dans leur forme d'origine. MacDraw , introduit en 1984 avec la gamme d'ordinateurs Macintosh , était un exemple précoce de cette classe ; des exemples récents sont les produits commerciaux Adobe Illustrator et CorelDRAW , et les éditeurs gratuits tels que xfig ou Inkscape . Il existe également de nombreux éditeurs graphiques 2D spécialisés pour certains types de dessins tels que les schémas électriques, électroniques et VLSI, les cartes topographiques, les polices informatiques, etc.

Les éditeurs d'images sont spécialisés dans la manipulation d' images numériques , principalement au moyen d'opérations de dessin/peinture à main levée et de traitement du signal . Ils utilisent généralement un paradigme de peinture directe, dans lequel l'utilisateur contrôle des stylos virtuels, des pinceaux et d'autres instruments artistiques à main levée pour appliquer de la peinture sur une toile virtuelle. Certains éditeurs d'images prennent en charge un modèle à plusieurs couches ; cependant, afin de prendre en charge les opérations de traitement du signal telles que le flou, chaque couche est normalement représentée sous la forme d'une image numérique. Par conséquent, toutes les primitives géométriques fournies par l'éditeur sont immédiatement converties en pixels et peintes sur la toile. Le nom d' éditeur graphique raster est parfois utilisé pour contraster cette approche avec celle des éditeurs généraux qui gèrent également les graphiques vectoriels . L' un des premiers éditeurs d'images populaires était d' Apple de MacPaint , compagnon MacDraw . Des exemples modernes sont l' éditeur gratuit GIMP et les produits commerciaux Photoshop et Paint Shop Pro . Cette classe comprend également de nombreux éditeurs spécialisés - pour la médecine, la télédétection, la photographie numérique , etc.

Animation de développement

Avec la résurgence de l'animation 2D, des progiciels libres et propriétaires sont devenus largement disponibles pour les amateurs et les animateurs professionnels. Le principal problème avec l'animation 2D est les besoins en main-d'œuvre. Avec des logiciels comme RETAS UbiArt Framework et Adobe After Effects , la coloration et la composition peuvent être effectuées en moins de temps.

Diverses approches ont été développées pour aider et accélérer le processus d'animation numérique 2D. Par exemple, en générant des illustrations vectorielles dans un outil comme Adobe Flash un artiste peut employer la coloration automatique commandée par logiciel et en betweening .

Des programmes comme Blender permettent à l'utilisateur de faire une animation 3D, une animation 2D ou de combiner les deux dans son logiciel, ce qui permet d'expérimenter plusieurs formes d'animation.

Voir également

Les références