IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

manipuler la carte graphique


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 183
    Points : 60
    Points
    60
    Par défaut manipuler la carte graphique
    bonjour,
    je voudrais savoir comment utiliser ma carte graphique (en c++ si possible) c'est a dire afficher un pixel précis sur l'écran et éventuellement utiliser le processeur graphique pour faire des calculs sans passer par des bibliothèque (ou pas trop grosse et très optimisés)
    et aussi de préférence compatible avec nvidia ET amd
    merci

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    Par défaut
    Salut,

    Les cartes graphiques depuis les année 2000 sont programmable dans des langages ( CG , GLSL, HLSL) syntaxiquement proche du C, on peut donc créer des microprogrammes, blindé d’instructions vectoriels SIMD (Simple Instruction Multiple Data) appelés kernels ou shaders, permettant la parallélisassions des calcules.

    Les cartes graphiques sont conçues pour répondre à la rastérisation de données vectorielles en supprimant la volumétrie sur deux types de données consécutives :
    1. Les sommets de polygones (triangles) : permettant la parallélisassions de changement de repère et projection sur la zone de rendu.
    2. Les pixels de la zone de rendu : permettant de déterminer la couleur du pixel ;


    Toutefois la 3D projetés semble une technique en fin de vie, et donc le kernel géométrique abandonné au profit de kernel pixel, pour des techniques d’image de synthèse temps réel.
    Si tu débute et que tu souhaites te concentré sur l’affichage, donc les pixels, je te conseille d’expérimenter les pixels shader sur le site ShaderToy, cela te permettra de compiler des kernels en GLSL directement à partir d’un navigateur web , tu pourras également générer un signal sonore à partir de ta carte graphique grâce au sound shader
    ShaderElement : Bénéficier de l’accélération graphique simplement par une nouvelle balise HTML <shader>
    ODE.js : portage JavaScript du célèbre moteur physique 3D Open Dynamics Engine

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 183
    Points : 60
    Points
    60
    Par défaut
    ok merci mais du coup comment je peut lancer le shader a partir d'un code c++ ?
    enfaite je voudrais avoir une fonction de type drawPixel(x,y,color) pour afficher des pixels individuellement
    comment je peut faire ça avec un shader ?
    oui je sais je suis nul x)

  4. #4
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Personne ne te donnera le code tout fait , les ressources sur OpenGL et les shaders c'est pas ce qui manque sur le net , voila un tutoriel pour apprendre les shaders qui est disponible sur developpez.com (pas besoin de cherché très loin ) : http://alexandre-laurent.developpez....L/OpenGL-GLSL/ .
    Après ça dépend ce que tu veux faire si c'est pour de la 2D , la SDL 1.2 est suffisante pour ça vu que tu peux récupère les SDL_Surface et donc leur pixel en mémoire.

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    Par défaut
    Citation Envoyé par RedSkidy Voir le message
    enfaite je voudrais avoir une fonction de type drawPixel(x,y,color) pour afficher des pixels individuellement
    comment je peut faire ça avec un shader ?)
    Alors faut bien comprendre que le PixelShader te permettra d’écrire le corps de la fonctionnalité drawPixel, et que le but est d’exécuter ce code sur les unités de calculs de ta carte graphique !
    C’est un concept très diffèrent que d’utiliser une fonction drawPixel à partir d’un code c++ qui s’exécutera, de manière itérative, coté CPU ( aurevoir les performances)

    Si c’est bien le concept de Shader que tu souhaites maitriser, alors tu dois réfléchir à quel sont les calculs et les variables qui détermine la couleur du pixel.
    Déjà comprends-tu le PixelShader par défaut de shadertoy ?
    ShaderElement : Bénéficier de l’accélération graphique simplement par une nouvelle balise HTML <shader>
    ODE.js : portage JavaScript du célèbre moteur physique 3D Open Dynamics Engine

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 183
    Points : 60
    Points
    60
    Par défaut
    il faudrais que dans mon code c++ (sur le proc) j'ai ma fonction drawpixel qui execute un shader (sur la carte graphique donc) avec les bons paramètres

  7. #7
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Inutile de demander dis plutôt ce que tu ne comprend pas sur OpenGL/GLSL , quand tu l'aura étudié ça tu reviendra venir nous dire quel partie te bloque , sinon il y a aussi le FBO pour écrire sur l'écran , mais comme cela a été dit tu perdra en performance si tu veux écrire pixel par pixel a chaque frame.

  8. #8
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    OpenGL n'est pas l'unique solution. S'il programme sur Windows, il peut utiliser DirecX ^^

    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
    Tutoriels et FAQ TypeScript

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 183
    Points : 60
    Points
    60
    Par défaut
    bah enfaite c'est juste que je sais pas comment appeller un shader a partir d'un code c++ (ha oui aussi y'auras pas de polygones)
    et pour directX moi je suis sur windows mais pour les autres c'est pas compatible si ?

  10. #10
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    Citation Envoyé par RedSkidy Voir le message
    et pour directX moi je suis sur windows mais pour les autres c'est pas compatible si ?
    DirectX est spécifique à Windows, mais c'est déjà une bonne base de départ ^^
    Il me semble aussi que DirectX est plus performant que OpenGL et que de toute façon les principes de bases entre les deux API sont similaires.

    Toujours est-il que tu peux difficilement accéder directement à la mémoire de ta carte graphique sans passer par des API comme DirectX ou OpenGL.
    Tutoriels et FAQ TypeScript

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 183
    Points : 60
    Points
    60
    Par défaut
    justement je voudrais essayer de faire une sorte d'api comme opengl/directX mais qui ne fonctionne pas avec des polygones

  12. #12
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    OpenGL et DirectX ne fonctionne pas uniquement avec des polygones.

    cf pixel shaders : http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
    Tutoriels et FAQ TypeScript

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 183
    Points : 60
    Points
    60
    Par défaut
    oui c'est sur y'a les shader pour rajouter des effets visuels donc je corrige :
    *qui n'utilise pas de polygones pour afficher des objets en 3D

  14. #14
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 183
    Points : 60
    Points
    60
    Par défaut
    bon du coup je pense que je vais aller voir du coté de l'asm merci quand même

  15. #15
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 577
    Points
    218 577
    Billets dans le blog
    120
    Par défaut
    En assembleur, à part le mode DOS (qui n'est plus accessible depuis Windows Vista, je crois) en 320x240 pixels (256 couleurs s'il vous plait), vous n'aurait rien.
    Quel est votre but réel, en nous le disant, on pourra mieux vous guider.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  16. #16
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 183
    Points : 60
    Points
    60
    Par défaut
    oui j'ai pu voir ça :/
    mais je pense que je vais utiliser un mélange de la sdl et de opencl

  17. #17
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Tu dis ne pas vouloir utilisé les polygone, mais à l'heure actuel les carte graphiques sont optimisé pour manipulé justement ces-dis polygone, donc peut importe ce que tu feras, ça sera forcément moins optimisé que ce qui se fait à l'heure actuelle .

    Faut que je remette la main sur un article, mais il y a une boite qui s'est intéressé à la représentation atomique et non pas en polygone, avec des résultat hyper bluffant. En revanche les perf n'étaient pas au rendez-vous, si je retrouve l'article, je le mettrais en éditant le message.

    EDIT:voila l'article en question, tout simplement sur dvp ^^.
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  18. #18
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 183
    Points : 60
    Points
    60
    Par défaut
    oui justement je voulais m'inspirer de leur système mais pour les cartes graphiques si mon api deviens plus efficace que le système actuel (ce dont je doute fort mais on sait jamais :p) les developpeurs vont surement l'utiliser et les fabricants de carte graphiques s'y adapter.
    mais bon y'a très peu de chance que ça arrive je sais mais ça me fait au moins un entrainement

  19. #19
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Donc en gros ce que tu veux c'est développer un moteur de rendu atomique? pourquoi vouloir absolument l’exécuter sur une carte graphique alors? Les performances seront catastrophiques par rapport à l'utiliser sur un processeur, je vois pas trop l'avantage que tu comptes en tirer? :/
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  20. #20
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    Je pense que le plus efficace serait de fabriquer ta propre carte graphique voire même les puces qui la compose.
    Tu pourrais ainsi contrôler totalement le cycle de production et les performances.
    Tutoriels et FAQ TypeScript

Discussions similaires

  1. Enumerer les resolutions supportées par la Carte graphique
    Par venomelektro dans le forum OpenGL
    Réponses: 8
    Dernier message: 22/03/2005, 23h45
  2. Comment contrôler la carte graphique ?
    Par Nico*3-3 dans le forum Assembleur
    Réponses: 5
    Dernier message: 13/02/2005, 20h23
  3. Difficulté d'installation de ma carte graphique
    Par sekiryou dans le forum Matériel
    Réponses: 3
    Dernier message: 10/02/2004, 15h24
  4. [DX 9][C++]Plein ecran + carte graphique
    Par delire8 dans le forum DirectX
    Réponses: 2
    Dernier message: 09/05/2003, 20h11
  5. carte graphique et pixels shader
    Par yeeep dans le forum DirectX
    Réponses: 2
    Dernier message: 26/04/2003, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo