Ce forum est maintenant fermé, seule cette archive statique reste consultable.
  FORUM Matbe.com
  Matbe.com : Articles et Suggestions

  [Article] - Architecture et fonctionnement d'un GPU

 Page :   1  2  3
Page Précédente
Auteur Sujet :

[Article] - Architecture et fonctionnement d'un GPU

n°11566
Stephane
Le patron
Posté le 10-05-2005 à 22:21:56  
 

Postez dans ce topic vos questions, remarques, suggestions à propos de cet article...
 
Vous pouvez le lire la première partie ICI et la deuxième partie ICI


Message édité par Stephane le 26-06-2005 à 18:20:41
mood
Pub
Posté le 10-05-2005 à 22:21:56  
 

n°11570
Stephane
Le patron
Posté le 11-05-2005 à 10:28:12  
 

Bonne lecture et merci à Ashe pour ce dossier :jap:

n°11571
Ashe
reenignE esreveR
Posté le 11-05-2005 à 10:34:00  
 

:jap:  
 
(c'est mon premier, donc pas m'assassiner svp merci :) )


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°11572
Kiskool
Même pas mal !
Posté le 11-05-2005 à 10:41:04  
 

Joli boulot Ashe :)

n°11573
swimcoyote
Taliban emmental
Posté le 11-05-2005 à 10:44:36  
 

Lé trop fort, j'en ai mal à la tete. :D

n°11574
T@nG
Posté le 11-05-2005 à 10:51:44  
 

swimcoyote a écrit :

Lé trop fort, j'en ai mal à la tete. :D


 
+1 faut pas le lire en une fois  :whistle:

n°11575
Ashe
reenignE esreveR
Posté le 11-05-2005 à 10:53:24  
 

Y aurait ptet fallu le séparer en 4 parties au lieu de 2 :sweat:


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°11576
swimcoyote
Taliban emmental
Posté le 11-05-2005 à 11:00:16  
 

Ashe a écrit :

Y aurait ptet fallu le séparer en 4 parties au lieu de 2 :sweat:


 
Nope, mais ajouter un paragraphe :
" ici prenez le temps d'une pause café d'au moins 30 min"  [:bbloup:3]


Message édité par swimcoyote le 11-05-2005 à 11:00:33
n°11577
Ashe
reenignE esreveR
Posté le 11-05-2005 à 11:01:06  
 

Heureusement que ca rentre pas dans les details :D


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°11579
dreamworke​r
Il n'en est qu'un!
Posté le 11-05-2005 à 11:20:38  
 

J'ai essayé :pt1cable:  
3ème page j'ai abandonné, trop ed nouveaux concepts à la fois donne mal au crane, et moi je dois bosser (ou au moins faire semblant :D )

n°11580
charlydk
The power of Tiret...
Posté le 11-05-2005 à 11:58:57  
 

Joli boulot :jap:
 
J'en suis à la moitié par tranche d'une ou deux pages  :whistle:  
 
(Tu vas en écrire souvent des articles roudoudou? [:tsubasa])
PS: spa l'bon smiley mais c'est celui qui se rapproche le plus de mon état d'esprit actuel :D


Message édité par charlydk le 11-05-2005 à 12:00:02
n°11581
Ashe
reenignE esreveR
Posté le 11-05-2005 à 12:00:32  
 

Bah y a la deuxieme partie, deja :p
(edit: qui est plus simple et plus visuelle, jte rassure)


Message édité par Ashe le 11-05-2005 à 12:00:59

---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°11583
murmex
Complication avant tout...
Posté le 11-05-2005 à 12:29:42  
 

BOahahahahah ^^ Au moins la on aura pas grand monde pour venir contredire ce qui est dans l'article (enfin ca reste possible, mais je sais qui aura le plus de credibilites ici ^^)
Bon ben parait qu'il y a plus de zolie images alors je vais aller y re-jeter un coup d'oeil ^^


---------------
Membre du Club des Fanatiques d'ub un tu
rebirth is taking longer than it seemed
n°11584
Nanami
Posté le 11-05-2005 à 12:30:26  
 

Moi j'me suis régalée avec son article  [:dreamworker:4]

n°11586
cbastien
snow
Posté le 11-05-2005 à 13:07:25  
 

personnellement j aurais plus dévellopé la partie sur les shaders a ta place ( a moins que j ai raté une page ? ) .  
 
En fait je trouve que tu parle trop des differentes versions des shaders... En oubliant leur objectif primaire... Donner du volume aux objets. ( j aurais bien aimer apprendre plein de chose la dessus :-) )
 
Voila, excenlent article sinon.

n°11587
Foudge
Posté le 11-05-2005 à 13:10:24  
 

"Première opération possible, le culling."
 
Or d'après le schémas, c'est le clipping qui est utilisé en 1er et ça me parait + logique.

n°11588
Ashe
reenignE esreveR
Posté le 11-05-2005 à 13:12:44  
 

cbastien a écrit :

En oubliant leur objectif primaire... Donner du volume aux objets.


Oui mais ca sert pas a donner du volume aux objets, ou alors j'ai pas compris ce que tu as dit [:spamafote]
 

Foudge a écrit :

Or d'après le schémas, c'est le clipping qui est utilisé en 1er et ça me parait + logique.


En fait ca peut etre dans les deux sens


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°11589
cbastien
snow
Posté le 11-05-2005 à 13:16:57  
 

ah bah, si, si tu fais un cylindre avec shader et un sans... le premier on dirais un cylindre et le deuxieme un bete carré, nan ?

n°11590
Ashe
reenignE esreveR
Posté le 11-05-2005 à 13:24:23  
 

Non, le shader ne fait que modifier les vertices.
Les vertices (coordonnées, couleur, etc) vont former des primitives (triangles, par exemple), et tous ces triangles vont former un modèle plus complexe (genre le héros du jeu)..
 
Apres, pour un cylindre, comme il n'y a pas de vraies courbes (et donc pas de vrais cercles ou spheres), il y a simplement un nombre de triangles suffisamment important pour donner l'illusion qu'il s'agit d'une courbe. J'ai trouvé une image pas terrible apres un rapide coup de google, c'est une sphere (donc un peu comme un cylindre) :
http://biederman.net/leslie/tutorials/Booleans/insertcylinder.gif


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°11591
Foudge
Posté le 11-05-2005 à 13:24:46  
 

Ashe> Ok, je ne savais pas. Disons que c'est bizarre que le texte (l'ordre des paragraphes) ne corresponde pas au schémas.
 
cbastien> Avec de l'éclairage t'auras une impression de volume.

n°11593
cruciforme
Artiste incompris
Posté le 11-05-2005 à 13:25:41  
 

J'espère que la suite ne sera pas publié réellement dans quelques semaines. Surtout pour les gens qui ont au du mal à rentrer dans l'article :D


---------------
Avec un grand C.. Membre du Club des Nostalgiques d' EURO SPORT | Les recettes de ma copine - RTBF, je t'aime..
n°11594
Ashe
reenignE esreveR
Posté le 11-05-2005 à 13:26:04  
 

Quelques unes == une ou deux


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°11595
Magniacx
Posté le 11-05-2005 à 14:05:38  
 

Je suis à ça : Le Vertex Pipeline - version programmable
 
 
Et ça me plait pour l'instant :) j'espère apprendre beaucoup de choses :)

n°11596
Nanami
Posté le 11-05-2005 à 14:16:56  
 


 
J'ai quand même retenu que vertices c'est le pluriel de vertex hého  [:ashe:1]

n°11597
cbastien
snow
Posté le 11-05-2005 à 14:57:06  
 

ce que je voulais dire, c etais que le shading permet de donner l impression a l objet d etre ce qu il est. (je suis d accord avec toi il ne nmodifie pas les vertice)
 
il faut prendre en consideration : les sources lumineuses, les proprietes du materiels,la position de l observateur et l orientation de la surface.
 
une lumieres sur un objet est partiellement absorbe et partiellement reflechi.
Le pourcentage reflechi determine la couleur et le "brightness"(merde un trou la) de l objet.
mais la reflection depend de la nature de l objet et de son orientation
 
 
autre probleme des cartes graphique
 
Le probleme pose aux cartes graphique ici, c est que comme tu le montre dans ton model de pipeline, le pipeline shade chaque polygone independement... alors qu un shader correct necessite un calcul global des objets et sources de lumieres.
 
 
En fait j essaye de m initier a la programmation openGL, c est pour ca que j essaye d en savoir + sur le sujet, je ne suis pas un specialiste, les remarques sur ce aue j ai dis sont les bienvenus ... lol, j espere que j ai pas trop dit de conneri... et que c est comprehensible
 
merci

n°11598
oXid_FoX
Des bulles ! Des bubulles !!!
Posté le 11-05-2005 à 15:23:20  
 

pour combler ton trou : brightness <=> luminosité ;)
 
 
EDIT : l'article s'annonce intéressant !
cependant, je n'ai pas compris à quoi sert la coordonnée homogène : elle agit comme modificateur sur les coordonnées spatiales, mais pourquoi ? pour gérer un déplacement ?


Message édité par oXid_FoX le 11-05-2005 à 15:24:11

---------------
:hello: venez me donner une idée de la valeur de mon bon vieux Toshiba M40-300 :jap:
n°11599
Ashe
reenignE esreveR
Posté le 11-05-2005 à 15:31:52  
 

Citation :

il faut prendre en consideration : les sources lumineuses, les proprietes du materiels,la position de l observateur et l orientation de la surface.


Il faut un shader différent pour chaque type de "matériau"
 

Citation :

une lumieres sur un objet est partiellement absorbe et partiellement reflechi.
Le pourcentage reflechi determine la couleur et le "brightness"(merde un trou la) de l objet.
mais la reflection depend de la nature de l objet et de son orientation


les lumières sont passées en argument aux vertex/pixel shaders via les registres constants
 

Citation :

le pipeline shade chaque polygone independement... alors qu un shader correct necessite un calcul global des objets et sources de lumieres.


En fait, un vertex shader ne peut accéder qu'a un vertex à la fois, les primitives (ou polygones) sont construits après le passage dans le vertex shader
 

Citation :

En fait j essaye de m initier a la programmation openGL, c est pour ca que j essaye d en savoir + sur le sujet


Si ca t'interesse j'ai commencé a écrire qq articles (qu'il faut que je corrige) sur http://ashe.dreamingprophet.com/ </pub>


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°11600
Ashe
reenignE esreveR
Posté le 11-05-2005 à 15:32:58  
 

(au oui et pour la lumière absorbée et compagnie, c'est à ca que correspondent la lumière diffuse et spéculaire)


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°11601
cbastien
snow
Posté le 11-05-2005 à 15:35:59  
 

ah, merci pour les infos

n°11602
cbastien
snow
Posté le 11-05-2005 à 15:38:29  
 

enfin, c etais juste pour dire que pour moi c est tout ca le shading.
 
 
HS :
sinon je viens de me rendre compte qu il y a deux forum de discussion pour le meme sujet, c est byzarre

n°11603
Ashe
reenignE esreveR
Posté le 11-05-2005 à 15:42:02  
 

cbastien a écrit :

enfin, c etais juste pour dire que pour moi c est tout ca le shading.


Il y a au moins 10 choses différentes qui utilisent le même terme (shading/shader) [:spamafote]


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°11604
Yasko
Posté le 11-05-2005 à 15:45:23  
 

Article très intéressant. Merci.  :)  
 
Quelques questions :
 
- Quelle utilisation pratique est faite de la composante homogène W d'un vertex ?
 
- Si le pixel pipeline est dans continuité du vertex pipeline, comment expliquer que les GPU peuvent ne pas avoir le même nombre de ces 2 types de pipelines ? (en général, plus de pixel que de vertex pipelines).
 
- Pourquoi associer couleur et texture aux vertices si ces vertices interviennent au niveau de la géométrie, ces informations ne sont pas plus du niveau du rendu ?
 
- Quel est l'interêt de pouvoir utiliser directement des vertices si tous les types de données primitives sont capables de les representer avec un cout plus faible. (au niveau du diagrammme, cela conduirait à : Données primitives => Vertices => Tessellisation).
Y a t'il des vertices non représentables avec des données primitives ?
 

Citation :

Le tessellateur n'a besoin que de deux informations : la position du vertex, et la normale. Une normale représente simplement un vecteur perpendiculaire au vertex.


Il ne faut pas au moins 2 vertices (3 (surface) dans l'exemple de la page sur les vertices) pour calculer la normale ?
 

Citation :

Un vertex pipeline (ou un vertex shader) ne traite qu'un seul et unique vertex à la fois."


Sur le diagramme d'une unité fixe de traitement de vertex, si il y a 4 matrices (donc 4 transformations mathématiques en parallèle ?), que peut faire le vertex blending si il n'a qu'un seul vertex ?  
 
Y aurait il un intêret à ce que le culling et le clippling sont effectués plus en amont des traitements des vertices ? Certaines vertices eliminées après le vertex pipeline pourraient peut être (pas sur puisque c'est peut être la transformation dans le vertex pipeline qui fait que le vertex devient masqué...) être détectées plus tot comme étant masquées, et ne pas être traitées dans les vertex pipelines ?

n°11605
cbastien
snow
Posté le 11-05-2005 à 15:46:03  
 

et oui, l informatique c est pas clair...  
 
Bon, je vais me renseigner un peu plus la dessus :-)

n°11606
oXid_FoX
Des bulles ! Des bubulles !!!
Posté le 11-05-2005 à 15:47:47  
 

oXid_FoX a écrit :

cependant, je n'ai pas compris à quoi sert la coordonnée homogène : elle agit comme modificateur sur les coordonnées spatiales, mais pourquoi ? pour gérer un déplacement ?


la réponse est dans les commentaires de la news sur l'article  :pt1cable:  y a trop d'endroits pour ce dossier....


---------------
:hello: venez me donner une idée de la valeur de mon bon vieux Toshiba M40-300 :jap:
n°11607
Ashe
reenignE esreveR
Posté le 11-05-2005 à 16:07:55  
 

Citation :

- Quelle utilisation pratique est faite de la composante homogène W d'un vertex ?


Elle est rarement utilisée directement, mais elle permet principalement de changer l'échelle des valeurs (rendre tout plus grand ou plus petit). Elle est rarement utilisée parce que la matrice utilisée pour la transformation peut faire la meme chose..
 

Citation :

- Si le pixel pipeline est dans continuité du vertex pipeline, comment expliquer que les GPU peuvent ne pas avoir le même nombre de ces 2 types de pipelines ?  (en général, plus de pixel que de vertex pipelines).


Lorsque le vertex pipeline a traité un vertex, une primitive est assemblée (par exemple un triangle), ce triangle comprendra peut-etre 500 pixels, et chaque pixel sera traité par le pixel pipeline. Du coup, il y a beaucoup plus de pixels à traiter qu'il n'y a de vertices.
 

Citation :

- Pourquoi associer couleur et texture aux vertices si ces vertices interviennent au niveau de la géométrie, ces informations ne sont pas plus du niveau du rendu ?


Les vertices n'interviennent pas qu'au niveau de la géométrie. La position fait évidemment partie de la géométrie, mais la couleur pourra être traitée d'après les informations géométriques (éclairage), et les coordonnées des textures également (le pipeline fixe peut générer les coordonnées lui meme), par exemple pour les réflections.
 

Citation :

- Quel est l'interêt de pouvoir utiliser directement des vertices si tous les types de données primitives sont capables de les representer avec un cout plus faible. (au niveau du diagrammme, cela conduirait à : Données primitives => Vertices => Tessellisation).


Les vertices forment la primitive. 3 vertices forment un triangle par exemple.
 

Citation :

Le tessellateur n'a besoin que de deux informations : la position du vertex, et la normale. Une normale représente simplement un vecteur perpendiculaire au vertex. Il ne faut pas au moins 2 vertices (3 (surface) dans l'exemple de la page sur les vertices) pour calculer la normale ?


Il faut deux vertices (ou au moins leur vecteur de position) pour calculer une normale, mais il y a une normale par vertex. La normale est généralement calculée avant d'envoyer le vertex à la carte graphique. Pour une surface "simple", style un carré, la normale sera la même pour toutes les vertices, alors que pour des formes plus complexes, on donne à la normale un certain angle d'après les faces adjacentes afin d'avoir un affichage plus "lisse" quand l'éclairage est activé...
 

Citation :

Un vertex pipeline (ou un vertex shader) ne traite qu'un seul et unique vertex à la fois."
Sur le diagramme d'une unité fixe de traitement de vertex, si il y a 4 matrices (donc 4 transformations mathématiques en parallèle ?), que peut faire le vertex blending si il n'a qu'un seul vertex ?


Le vertex blending ca me prendrait 400 pages pour expliquer comment ca fonctionne, donc euh la je suis pas trop motivé, mais plus d'un vertex est utilisé, sur le schema il y a la somme des vertices a droite :p
Mais en gros ca implique l'utilisation de poids et d'index pour chaque "os" d'un modele dans une animation par squelette, par exemple
 

Citation :

Y aurait il un intêret à ce que le culling et le clippling sont effectués plus en amont des traitements des vertices ? Certaines vertices eliminées après le vertex pipeline pourraient peut être (pas sur puisque c'est peut être la transformation dans le vertex pipeline qui fait que le vertex devient masqué...) être détectées plus tot comme étant masquées, et ne pas être traitées dans les vertex pipelines ?


Exactement :p


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°11608
outerspace
Posté le 11-05-2005 à 16:23:09  
 

L'article est vraiment très intéressant et reste didactique pour un sujet aussi complexe.
 
Je m'était déjà intéressé à la programmation 3D il y a quelques temps (sur un apple 2 , un atari ST et enfin sur des stations SUN).  
 
Il est très intéressant de voir que la technique de rendu des cartes 3D se rapproche de plus en plus du photo-réalisme alors qu'elle était assez dédaignée à ses débuts. Je me rappelle du temps ou les professionnels ne juraient que par le raytracing.
 
Pour rappel le raytracing par d'un constat simple : une image 3D est la marque sur un écran (le moniteur) des rayons lumineux d'une scène 3D imaginaire.  
Donc il suffit de calculer le trajet et la transformation de chaque rayon lumineux à partir de chaque source de lumière de la scène vers l'oeil de l'utilisateur qui passe à travers l'écran.
Mais au lieu de calculer tous les rayons lumineux on s'intéresse qu'à ceux qui passent par chaque pixel de l'écran (et qui donne donc sa couleur au pixel). Pour cela on fait le trajet inverse et on remonte le chemin de chaque rayon vers les sources lumineuses.
 
Evidemment cette méthode est photoréaliste mais implique un nombre incroyable de calculs. A chaque passage entre deux matériaux il faut calculer le rayon réfracté, le rayon réfléchi, etc... L'antialias multiplie le nombre de rayons à calculer.  
 
Même avec des optimisations astucieuses (le bump-mapping vient du raytracing), cela reste prodigieusement lent et peut consommer beaucoup de mémoire. On parle de quelques frames par minutes et non par seconde.
Sur mon Atari ST j'arrivais facilement à 3 heures de calcul pour afficher quelques boules chromées sous un ciel nuageux et un sol en damier (vous en avez déjà vu certainement des centaines d'images comme celle là  ;) ).
 
Surtout qu'il n'existe pas (à ma connaissance) de GPU orienté raytracing.
 
 
Maintenant quand je vois ce que peux faire une carte graphique grand public, ... Y'a-t-il encore des gens qui utilisent POV (Persistence of Vision), ce raytraceur sans modeleur qui demandait des fichiers textes. Je déconne pas, avant on décrivait les scènes avec un éditeur de texte, sans la souris.  :sol:  
 
Vivement la suite de l'article.

n°11609
Ashe
reenignE esreveR
Posté le 11-05-2005 à 16:29:20  
 

Citation :

il y a quelques temps (sur un apple 2 , un atari ST et enfin sur des stations SUN).


Euh, oui, "quelques temps" :p
 

Citation :

Surtout qu'il n'existe pas (à ma connaissance) de GPU orienté raytracing.


http://www.saarcor.de/
 

Citation :

Vivement la suite de l'article.


 :jap:  


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°11610
Yasko
Posté le 11-05-2005 à 16:35:50  
 

:jap:  
 

Citation :

Les vertices n'interviennent pas qu'au niveau de la géométrie. La position fait évidemment partie de la géométrie, mais la couleur pourra être traitée d'après les informations géométriques (éclairage), et les coordonnées des textures également (le pipeline fixe peut générer les coordonnées lui meme), par exemple pour les réflections.


 
Mais ce calcul de la couleur, des effets sur les textures, etc, c'est le travail des pixel pipelines qui se servent alors des vertices dans leurs calculs ?
Pourquoi introduire cette information directement dans les vertices ? Quel est l'intêret à ce que les vertices ne traitent pas uniquement de géométrie ?
 

Citation :

Les vertices forment la primitive. 3 vertices forment un triangle par exemple.


Hum, c'est dans l'autre sens alors... C'est le fait que données primitives et vertices apparaissent au même niveau sur le diagramme qui m'a perturbé...  :whistle:  
Ca serait plus alors Vertices => Primitives => Tessellisation...
Comment distinguer alors un triangle normal, d'un triangle strip ou d'un triangle fan ? C'est après que ce fait la recherche de vertices communes en fonction la conversion en telle ou telle primitive ?

n°11611
Ashe
reenignE esreveR
Posté le 11-05-2005 à 16:46:05  
 

Citation :

Mais ce calcul de la couleur, des effets sur les textures, etc, c'est le travail des pixel pipelines qui se servent alors des vertices dans leurs calculs ?
Pourquoi introduire cette information directement dans les vertices ? Quel est l'intêret à ce que les vertices ne traitent pas uniquement de géométrie ?


Les calculs au niveau de l'éclairage (éclairage tout bete, pas pour les effets plus avancés) se fait dans le vertex pipeline (d'où le nom "transform & lightning", transformation et eclairage, que tu as probablement deja entendu). Les textures, c'est le pixel pipeline qui le gere, mais le vertex pipeline s'occupe des coordonnées de la texture, c'est à dire où il faut aller chercher la couleur dans la texture. Et les vertex shaders 3.0 ont accès aux textures, ce qui est utile quand on met autre chose qu'une image dans une texture (en fait une texture il peut y avoir des tas de trucs dedans, c'est juste des valeurs quelconques, au final).
 

Citation :

Comment distinguer alors un triangle normal, d'un triangle strip ou d'un triangle fan ? C'est après que ce fait la recherche de vertices communes en fonction la conversion en telle ou telle primitive ?


En fait il n'y a rien a distinguer, la carte graphique sait de quel type de primitive il s'agit puisque le logiciel lui "dit".
 
Edit: problèmes de quotes moi


Message édité par Ashe le 11-05-2005 à 16:46:29

---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°11612
Foudge
Posté le 11-05-2005 à 17:37:09  
 

outerspace> Il existe un moteur 3D qui fait du RayTracing en Temps Réel (cad avec un framerate correct). C'est ici :
http://www.realstorm.com/
http://www.realstorm.com/realstorm/whyrealtime.html
 
La résolution ne doit pas etre trop élevé pour avoir un minimum de fluidité mais le résultat est impressionant même sur une config grand public. Je n'ose imaginer le jour où l'on aura nos carte accélératrices RT (si c'est possible).


Message édité par Foudge le 11-05-2005 à 17:39:18
 Page :   1  2  3
Page Précédente
  FORUM Matbe.com
  Matbe.com : Articles et Suggestions

  [Article] - Architecture et fonctionnement d'un GPU