CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C]Programmation et cartes graphiques

Lagrangien
Lagrangien
Niveau 8
17 décembre 2012 à 12:23:51

Voilà,

J'ai programmé un tout petit "moteur 3d" avec la SDL (faite pour le 2D, donc). J'ai juste incorporé les lois de la perspective, j'ai une classe objet, une classe camera, une classe surface et une classe point. J'ai fait un petit zBuffer pas très perfectionné et j'allais attaquer les textures lorsque me vint la question :

Est-il possible de dire à son compilateur que le programme, s'il utilisait la carte graphique de l'ordinateur (s'il en a une) serait plus rapide ?

Si oui cela change-t-il la manière de programmer ?

Pourquoi une carte graphique aide-t-elle à accélérer le traitement de la 3D ? Ce sont des circuits faits spécifiquement pour ?

lokilok
lokilok
Niveau 17
17 décembre 2012 à 13:07:06

Bah j'imagine que pour dire a la carte graphique de travailler il faut utiliser opengl/directx, et vu que la SDL n'utilise aucun des deux j'sais pas comment elle fonctionne donc je pourrais pas te dire.

lokilok
lokilok
Niveau 17
17 décembre 2012 à 13:11:44

Enfin nan j'ai rien dis oubli mon message.

tbop2
tbop2
Niveau 10
17 décembre 2012 à 13:49:23

"Est-il possible de dire à son compilateur que le programme, s'il utilisait la carte graphique de l'ordinateur (s'il en a une) serait plus rapide ? "

Cette question n'a pas de sens. Pour utiliser une carte graphique il faut utiliser les API developpees pour. L'etape de compilation, et donc le compilateur, n'a rien a faire la-dedans.

"Si oui cela change-t-il la manière de programmer ? "
Donc ici c'est si non, et meme avec non OUI ca change une partie de ton code.

"Pourquoi une carte graphique aide-t-elle à accélérer le traitement de la 3D ? Ce sont des circuits faits spécifiquement pour ?"
Oui. Tu fais aussi appel a des notions beaucoup plus poussees des que tu passes a du rendu 3D. Aussi communement appele le Graphics pipeline:
http://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/
Les solutions hardware (donc physique) permettent des performances plus elevees car elles ont ete creees, et donc optimisees, entierement a cette tache.

godrik
godrik
Niveau 30
17 décembre 2012 à 15:32:03

Notons que de nos jours, les compilateurs savent executer du code sur les cartes graphiques a moindre cout. Les directives OpenACC sont simples et relativement efficace pour utiliser les GPU programmable.

Ici, ca n'a certainement pas grand lien avec les besoins d'OP, il veut probablement utiliser OpenGL ou qqch du genre.

Lagrangien
Lagrangien
Niveau 8
17 décembre 2012 à 16:50:59

Donc il faudrait que je me tourne vers une solution du type intégrer mon programme dans un environnement openGL ?

Si c'est le cas, comment le CPU, au moment de traiter les informations du programme, sait ce qu'il doit donner comme boulot à la carte graphique et ce qu'il doit garder pour lui?

godrik
godrik
Niveau 30
17 décembre 2012 à 16:57:12

elite_2009, oui, mais sdl2.0 c'est un peu comme duke nukem forever...

Lagrangien, Basiquement, OpenGL est une API qui permet de controller la carte graphique. La communication des donnees est abstraite par l'API.

Paulop
Paulop
Niveau 12
17 décembre 2012 à 17:58:36

Ils ont embauché un mec de SDL au passage, et je pense qu'ils ont une version perso de la lib.

Aldebran
Aldebran
Niveau 10
17 décembre 2012 à 20:50:30

"Pourquoi une carte graphique aide-t-elle à accélérer le traitement de la 3D ? Ce sont des circuits faits spécifiquement pour ?"

En codant ta 3D avec la SDL, t'as du t'apercevoir que tu faisais des calculs lourds de manière itérative (par exemple, la multiplication par la matrice MVP de tes vertices). Or le principe fondamental des cartes graphiques, c'est la parallélisation des calculs : la 3D c'est très parallélisable, et grâce à un GPU (qui possède de très nombreux coeurs) on peut effectuer des transformations géométriques sur chaque vertex en parallèle (la transformation MVP notamment), ou des changements de la couleur de chaque fragment (très utile pour le calcul des ombres, de l'illumination et l'application de textures).

Lagrangien
Lagrangien
Niveau 8
18 décembre 2012 à 00:06:07

D'accord, donc en fait si je veux rester sur la SDL tout en tirant profit d'une carte graphique, je peux me lever de bonne heure quoi...

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment