Comment un ordinateur rend-il un objet à l'écran?

18

Tous les graphiques informatiques sont-ils rendus à l'aide de polygones? Ce que je veux dire, c'est que certaines géométries informatiques sont représentées mathématiquement sous la forme d'équations (par exemple, un logiciel de CAO).

L'ordinateur doit-il d'abord tesseler ces géométries avant de pouvoir correctement rendre la visualisation à l'écran ou existe-t-il d'autres méthodes pour obtenir l'image à l'écran sans avoir à tesseller un objet?

Edit: je suppose que plus spécifiquement axé sur le GPU. Quelle dose le GPU fait-il? quel type d'entrées la dose dont il a besoin, c'est-à-dire avec quels formats de modèle la dose avec laquelle le GPU fonctionne? peut-il utiliser directement une représentation mathématique parfaite ou le doser en mosaïque le modèle lui-même avant de le rendre réellement à l'écran ou doser le GPU nécessite un modèle en mosaïque pour commencer.

De plus, ce que j'entends par tessellation, c'est la façon dont un ordinateur décompose une représentation mathématique d'un objet en une approximation de surface de polygones (presque toujours des triangles). Plus vous utilisez de polygones, plus la surface est proche de l'objet réel.

Faken
la source
4
Une telle question intéressante!
r0ca

Réponses:

2

Ceci fait suite à votre commentaire sur la réponse de @ nik:

La grande majorité des systèmes de CAO utilisent des polygones (triangles de puits) pour rendre leurs modèles.

Ils stockeront les modèles de différentes manières basées sur des modèles CSG (Constructive Solid Geometry) ou B-rep (Boundary Representation) par exemple, mais quand il s'agit de les afficher, ils seront facettés et les triangles envoyés au GPU pour le dessin .

Chaque système aura sa propre solution pour diviser le modèle en triangles.

ChrisF
la source
7

Je ne sais pas à quel niveau de curiosité vous posez cette question,
mais, en général, je vous renvoie à la page Wikipedia Computer Graphics .

Il existe également un lien Une histoire critique de l'infographie et de l'animation .
Vous pouvez accéder à la section d'intérêt depuis leur page de contenu.


Mise à jour: je me demande si votre question est basée sur des concepts liés à ce site UnlimitedDetail .

Aujourd'hui, la plupart des graphiques 3D sont basés sur ce qu'on appelle le système polygonal; c'est un système qui construit des choses à partir de petites formes plates appelées polygones.

...

Les trois systèmes actuellement utilisés dans les graphiques 3D sont le lancer de rayons, les polygones et le nuage de points / voxels, ils ont tous des forces et des faiblesses. Les polygones fonctionnent rapidement mais ont une mauvaise géométrie, Ray-trace et les voxels ont une géométrie parfaite mais fonctionnent très lentement.

etc...

nik
la source
+1 pour avoir mentionné Une histoire critique de l'infographie et de l'animation. beaucoup à lire mais très intéressant ;-)
Diskilla
Mon niveau de curiosité descend généralement très profondément, jusque dans les mathématiques derrière l'idée (même si je ne m'attends pas à une réponse aussi détaillée, je veux juste savoir en général ce qu'un GPU utilise). Quant à ce que ma question est liée, elle est spécifiquement liée aux logiciels de CAO et à la façon dont ils convertissent entre leurs modèles mathématiques et ce que vous voyez à l'écran (via le rendu GPU). Pourquoi? Je suis juste curieux.
Faken
2

Si vous souhaitez vraiment approfondir la mécanique du GPU et les techniques de rendu, le livre suivant est désormais disponible en ligne:

GPU Gems 3, Addison-Wesley Professional (12 août 2007)

GPU Gems 3 est édité par Hubert Nguyen, Manager of Developer Education chez NVIDIA. Hubert est un ingénieur graphique qui a travaillé dans l'équipe de démonstration NVIDIA avant de rejoindre son poste actuel. Son travail est présenté sur les couvertures de GPU Gems (Addison-Wesley, 2004) et GPU Gems 2.

GPU Gems 3 est une collection d'exemples de programmation GPU à la pointe de la technologie. Il s'agit de mettre en œuvre le traitement parallèle des données. Les quatre premières sections se concentrent sur les applications graphiques spécifiques des GPU dans les domaines de la géométrie, de l'éclairage et des ombres, du rendu et des effets d'image. Les sujets des cinquième et sixième sections élargissent le champ d'application en fournissant des exemples concrets d'applications non graphiques qui peuvent désormais être traitées avec la technologie GPU parallèle aux données. Ces applications sont diverses, allant de la simulation de corps rigide à la simulation d'écoulement fluide, de l'appariement de signatures de virus au chiffrement et au déchiffrement, et de la génération de nombres aléatoires au calcul de la gaussienne.

Les éditions précédentes sont également en ligne et méritent toujours d'être lues:

GPU Gems: Programming Techniques, Tips, and Tricks for Real-Time Graphics, édité par Randima Fernando, mars 2004

GPU Gems 2: Techniques for Graphics and Compute Intensive Programming, édité par Matt Pharr, mars 2005

Programming Vertex, Geometry, and Pixel Shaders, Second Edition, par Wolfgang Engel, Jack Hoxley, Ralf Kornmann, Niko Suni et Jason Zink, décembre 2008

Le dernier est un projet de livre inégal, mais extrêmement précieux par endroits. Le chapitre sur l'éclairage de Jack Hoxley donne des explications détaillées sur divers modèles d'éclairage ainsi que sur le code du shader.

harrymc
la source
1

Rendre toujours quelque chose signifie que vous utilisez des polygones. Il est même utilisé par des artistes. Polygone signifie figure plane. Pour créer quelque chose en trois dimensions, vous devez toujours prendre plusieurs polygones et les assembler. Plus vous utilisez de figures planes, plus vous pouvez ajouter de détails à votre figure tridimensionnelle. Les équations sont utilisées pour calculer des choses comme par exemple l'éclat de l'objet.

Pour bien comprendre cette procédure, vous devez lire l' article de Wikipédia nik déjà mentionné .

edit .: Je ne suis plus sûr de mon interprétation de ce que vous entendez par «tesselate an object». Si possible, pourriez-vous l'expliquer en détail?

Diskilla
la source
Ce que j'entends par tessellation, c'est qu'un objet solide se décompose en une série de polygones plats (presque toujours des triangles) qui se rapprochent de la surface d'un objet. Plus le nombre de triangles est grand, plus la représentation est proche de la surface réelle de l'objet.
Faken
1

Au cours de l'histoire du calcul, différents GPU ont implémenté les choses de différentes manières, en tenant compte de la résolution, de la précision, du taux de rafraîchissement et des fonctionnalités des moniteurs, ainsi que la mise en œuvre de nouvelles API plus intéressantes au fil du temps.

Par exemple, certains GPU fournissent des interfaces de représentation de la vision du monde en 3D, tandis que d'autres sont moins capables.

Les ASIC (et au-delà) sont au cœur de la façon dont les GPU font leur magie aujourd'hui. La capacité à intégrer dans le silicium des complexités telles que des machines virtuelles dans un sous-programme pleinement fonctionnelles est ce qui fait que toute la magie opère. Au-delà de la tesselation, il y a la cartographie de surface, l'ombrage et bien plus encore qui sont tous traités dans la logique GPU.

J'espère que cela t'aides!
-pbr

pbr
la source