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

OpenGL Discussion :

Un moteur 3d sans Opengl ?


Sujet :

OpenGL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut Un moteur 3d sans Opengl ?
    J'imagine que c'est possible de créer un moteur 3d sans lib graphique, mais à ce moment là, comment je devrais accéder à l'écran ? par vesa pour que mon moteur soit multi-plateforme ou autre chose ? :o

    Mais si je voudrais le faire que pour windows, je devrais utiliser les API de windows ?

    Bien sûr il faudra que je créé tout: mouvement de caméra, rotation des objets, etc.

    Je m'y connais un peu en matrice et en math, mais j'ai du mal à visualiser comment je peux calculer un objet 3d sur une surface 2d(écran)

    De plus, il y a les lumière, j'imagine que en quelque part je devrais garder mes objets en mémoire dans une structure pour apliquer la lumière(augmenter la luminosité des pixels) tout en calculant les faces cachés, car il est inutile qu'une face caché soit illuminé ..

    Encore une chose, concernant les cartes graphiques. J'ai de la difficulté à visualiser comment la carte peux accélérer les calculs ? quand on utilise opengl par exemple, c'est le cpu qui calcule notre programme, comment le cpu sait ce qu'il doit calculer et ce qu'il doit envoyer au gpu ?

    Merci

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    J'imagine que c'est possible de créer un moteur 3d sans lib graphique
    Question à trois francs : pourquoi faire donc ?

    Je m'y connais un peu en matrice et en math, mais j'ai du mal à visualiser comment je peux calculer un objet 3d sur une surface 2d(écran)
    Dans ce cas bonne chance

    De plus, il y a les lumière, j'imagine que en quelque part je devrais garder mes objets en mémoire dans une structure pour apliquer la lumière(augmenter la luminosité des pixels) tout en calculant les faces cachés, car il est inutile qu'une face caché soit illuminé ..
    Là encore bonne chance, car ce n'est pas du tout comme ça que ça marche (du moins pour l'éclairage de base par vertex).

    Encore une chose, concernant les cartes graphiques. J'ai de la difficulté à visualiser comment la carte peux accélérer les calculs ?
    Tout simplement en faisant des calculs. Car tout ce que fait le GPU, c'est ça de moins à faire pour le CPU, qui peut pendant ce temps calculer autre chose. Mais si tu te passes d'une API 3D, il est plus que probable que tu ne pourras pas tirer partie du hardware, et que ton moteur sera donc très lent.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    Je sais cela, mais comment le cpu fait la différence entre ce qu'il doit lui-même calculer et ce qu'il doit envoyer au gpu ?

    Si ce n'est pas comme cela que les lumière fonctionnement, tu pourrais me l'expliquer stp

  4. #4
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    et la reponse magique est.....

    en passant par les drivers !!!!
    ce sont tout simplement les drivers de la carte graphique qui determinent ce qui doit etre effectué sur le CPU (generalement des appels a la carte graphique en fait) et ce qui est effectué sur le GPU (generalement les appels effectué par le CPU)...

    et comme la vie est super bien faite tu n'a pas a t'en preocupper...

    sinon pour les autres questions


    J'imagine que c'est possible de créer un moteur 3d sans lib graphique, mais à ce moment là, comment je devrais accéder à l'écran ? par vesa pour que mon moteur soit multi-plateforme ou autre chose ? Surprised
    oui oui c'est tout a fait faisable... c'est juste quelques centaines de millier de code C et ASM pour attaquer la carte graphique. bien entendu avant il faut se taper les 130000 pages de documentation trouvable dans toutes les bonnes cremerie. Essaye pour t'amuser de demander a NVidia ou ATI de la doc sur leurs carte graphiques, je suis sure qu'il accederont a ta demande avec un grand sourire
    il suffit de voir la performance des pilote DRI sous linux pour se dire que ca doit etre amusant a faire...
    Mais ce n'est pas non plus completement infaisable, il suffit de regarder ce qui ce faisait il y a 10 ans sur quake 1 et 2 avec leurs rendu software... par contre tu ne profiterait alors absolument pas des aventages des dernieres cartes graphiques... une trident VGA 1 Mo suffit...
    Bien sûr il faudra que je créé tout: mouvement de caméra, rotation des objets, etc.
    exactement
    Je m'y connais un peu en matrice et en math, mais j'ai du mal à visualiser comment je peux calculer un objet 3d sur une surface 2d(écran)
    tout simplement avec... une matrice de projection (fantastique non)... mais une fois que tu a ta matrice avec projection, il y a aussi l'application de textures, le clipping a l'ecran, la gestion du frustum de vue et tout le tintouin... bref ce n'est pas JUSTE avec quelques matrice qu'on fait tout...
    si tu veut t'amuser a faire tout ca tu peut toujours jeter un coup d'oeuil sur les code source de Quake 1 et 2 (le 3 n'a pas de rendu software)... tu verra c'est edifiant
    De plus, il y a les lumière, j'imagine que en quelque part je devrais garder mes objets en mémoire dans une structure pour apliquer la lumière(augmenter la luminosité des pixels) tout en calculant les faces cachés, car il est inutile qu'une face caché soit illuminé ..
    pourquoi ne pas traiter les faces cachée ? openGL le fait si on ne lui dit pas de ne pas les afficher... et comment ferait tu de la transparence sans afficher ces fameuses face (qui ne sont cachée que si les polygones devant sont opaques) ?

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Pour les lumières, cherche "gouraud shading", "phong shading" ou encore "per-vertex lighting".

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    Ok Merci

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 177
    Points : 196
    Points
    196
    Par défaut
    Il n'est pas toujours facile de comprendre que le code qu'on utilise est fourni par le constructeur de notre carte graphique (via driver) et pas réelement fait par OpenGL.

    OpenGL sert surtout de standart pour les constructeur de cartes et fournit je dirait un "micro toolkit" :p.

    Enfin c'est comme ca que je l'ai compris pour ma part ^^.

  8. #8
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Il n'est pas toujours facile de comprendre que le code qu'on utilise est fourni par le constructeur de notre carte graphique (via driver) et pas réelement fait par OpenGL.
    ..............
    Mais justement, le driver est en fait l'implementation des fonctions OpenGL !

Discussions similaires

  1. Compilation de Qt 5 sous VS2010 sans OpenGL
    Par Matthieu Brucher dans le forum Qt
    Réponses: 3
    Dernier message: 18/06/2013, 21h10
  2. Animations sans openGL et DirectX
    Par halic dans le forum C#
    Réponses: 2
    Dernier message: 19/02/2007, 12h54
  3. bruitage wav de moteur ds animation/OpenGL / VCL
    Par LotfiB dans le forum C++Builder
    Réponses: 1
    Dernier message: 08/12/2005, 14h11
  4. Informations sur la carte graphique sans OpenGL ni DirectX !
    Par Hamdi Hedhili dans le forum Windows
    Réponses: 4
    Dernier message: 02/12/2005, 11h43

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