Acceleration 3D openGL/D3D

Acceleration 3D openGL/D3D - Divers - Programmation

Marsh Posté le 28-11-2002 à 16:47:56    

En fait j'aimerai savoir lorsqu'on utilise les fonction de prise en charge de la 3D par une carte specialisé, qu'est ce que le processeur prend en charge pour sa part? (a part le son, les IO et l'AI quand il y en a)

Reply

Marsh Posté le 28-11-2002 à 16:47:56   

Reply

Marsh Posté le 28-11-2002 à 16:59:47    

La carte graphique s'occupe uniquement de transformer les triangles, les projeter et ensuite les remplir en utilisant des couleurs, textures, etc... Tout le reste est fait grâce au processeur.

Reply

Marsh Posté le 28-11-2002 à 17:06:28    

Alload a écrit a écrit :

La carte graphique s'occupe uniquement de transformer les triangles, les projeter et ensuite les remplir en utilisant des couleurs, textures, etc... Tout le reste est fait grâce au processeur.




 
donc je dois comprendre que c'est le proc qui est oblige de recalculer la position des vertices a chaque mouvement de persos ou de camera, heu il fait quoi d'autre dans la 3D a part ca pendant l'acceleration?

Reply

Marsh Posté le 28-11-2002 à 18:47:04    

[:yoyoz]

Reply

Marsh Posté le 28-11-2002 à 19:25:56    

durandal2 a écrit a écrit :

 [:yoyoz]  




 
alload t'as fait le topo...
 
qu'est-ce que t'entends par processeur, le cpu ou le gpu ?
 
imaginons un jeu de bagnole ou tu as 8 voitures....
 
tes voitures font 1000 points (vertexs), et 2000 facettes (triangles), et on a un texture différente par modèle de voiture, et chaque modèle de voiture fait donc au total 2 Mo (au blair)
 
 
le gpu maintiens les 2 mo de chaque modèle.
 
le cpu donne les ordres de traçages:
il lui dit "fout moi le modèle B à la position Zorgl de direction truc, y'a 3 lumières, une rouge, une jaune dégeulleuse et une verte délavée, et pi y'a la texture bordel".
 
le gpu transformes les points du modèle B, et effectues les calculs d'éclairage en fontion des sources de lumière. dans la foullée il traçe les facettes avec la texture dont les couleurs sont modifiés par les calculs d'éclairages.
 
le cpu peut glander pendant ce temps (ou préparer le prochain coup de fouet pour l'esclave gpu)
 
----
 
le cpu donne les ordres, c'est lui qui choisit qui doit être traçé et où.... (si dans un jeu tu as 400 voitures et en moyenne 4 de visible, tu dois, en tant que programmeur, utiliser des techniques pour savoir quoi est visible et de passer au gpu que ce qui est dans le champ de vision)


Message édité par bjone le 28-11-2002 à 19:36:41
Reply

Marsh Posté le 28-11-2002 à 19:29:15    

en fait y'a plusieurs possibilités, hormis le chargement des objets depuis le disque dur, le cpu peut avoir à ne jamais palper la géomtrie des objets: celle-ci peut etre contenue complètement en ram vidéo, et la seule chose que tu veux voir passer sur l'agp ou le pci, c'est des ordres de traçages....
 

Reply

Marsh Posté le 29-11-2002 à 02:53:38    

bjone a écrit a écrit :

 
 
alload t'as fait le topo...
 
BLABLABLA (fort interessant)




 
exactement la reponse que j'attendais
 :D

Reply

Marsh Posté le 29-11-2002 à 11:01:15    

durandal, ta question n'a pas grand sens.. (explications peu apres)
 
le partage des taches entre un processeur generaliste (CPU) et le processeur specialise (un ou plusieurs) depend essentiellement de la maniere dont on programme (1)
et du type de capacites exposees par le hardware (2).
 
Il serait beaucoup plus interessant pour toi de te demander de quelles taches est compose la chaine d'affichage. Ensuite tu peux comprendre comment tel ou tel processeur peut effectuer ces taches de maniere plus efficace que le processeur principal.
 
Premiere generation de hardware :  
- rien n'est accelere, puis on commence a accelerer quelques taches comme le double buffering (recopie d'ecran rapide ou simple changement de pointeurs), le remplissage geometrique (simple et avec des motifs), l'affichage de sprites.
- generation suivante, on accelere l'elimination des faces cachees (z-buffer ou tile architecture), on peut stocker des textures en memoire video, on accelere le blending (melange du motif avec le fond deja trace). On peut preciser des valeurs de couleurs sur les bords qui seront interpolees sur la surface du triangle.
- ensuite, on accelere le triangle setup. On passe des triangles deja transformes, voire sous forme de strips et on effectue un clipping sur les bords, on calcule la pente pour l'interpolation, on accelere le mipmapping et le filtrage des textures.
- On effectue la transformation sur la carte graphique, avec un nouveau processeur specialise ou integre au processeur graphique. la transformation pour l'instant inclut uniquement le calcul des coordonnees ecran de sommets qui sont donnees dans leur systeme de coordonnees objet. On calcule les eclairages a la maniere d'OpenGL (par sommet).
- Les transformations incluent desormais de plus en plus de choses, on peut effectuer du skinning de modeles sur la carte, modifier les normales et les valeurs d'eclairage, afin d'effectuer un eclairement par pixel (ou par fragment).
 
LeGreg


---------------
voxel terrain render engine | animation mentor
Reply

Marsh Posté le 19-02-2003 à 03:54:36    

legreg a écrit :

durandal, ta question n'a pas grand sens.. (explications peu apres)
 
le partage des taches entre un processeur generaliste (CPU) et le processeur specialise (un ou plusieurs) depend essentiellement de la maniere dont on programme (1)
et du type de capacites exposees par le hardware (2).
 
Il serait beaucoup plus interessant pour toi de te demander de quelles taches est compose la chaine d'affichage. Ensuite tu peux comprendre comment tel ou tel processeur peut effectuer ces taches de maniere plus efficace que le processeur principal.
 
Premiere generation de hardware :  
- rien n'est accelere, puis on commence a accelerer quelques taches comme le double buffering (recopie d'ecran rapide ou simple changement de pointeurs), le remplissage geometrique (simple et avec des motifs), l'affichage de sprites.
- generation suivante, on accelere l'elimination des faces cachees (z-buffer ou tile architecture), on peut stocker des textures en memoire video, on accelere le blending (melange du motif avec le fond deja trace). On peut preciser des valeurs de couleurs sur les bords qui seront interpolees sur la surface du triangle.
- ensuite, on accelere le triangle setup. On passe des triangles deja transformes, voire sous forme de strips et on effectue un clipping sur les bords, on calcule la pente pour l'interpolation, on accelere le mipmapping et le filtrage des textures.
- On effectue la transformation sur la carte graphique, avec un nouveau processeur specialise ou integre au processeur graphique. la transformation pour l'instant inclut uniquement le calcul des coordonnees ecran de sommets qui sont donnees dans leur systeme de coordonnees objet. On calcule les eclairages a la maniere d'OpenGL (par sommet).
- Les transformations incluent desormais de plus en plus de choses, on peut effectuer du skinning de modeles sur la carte, modifier les normales et les valeurs d'eclairage, afin d'effectuer un eclairement par pixel (ou par fragment).
 
LeGreg


 
 
ton explication de la chaine est vraiment a retenir, c'est pas vraiment pour moi, mais j'aime bien comprendre certaines choses :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed