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 :

OpenGL 3.2 / GLSL 1.5 : Développeurs livrés à eux même


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Harooold
    Homme Profil pro
    Ingénieur 3D temps réel
    Inscrit en
    Mars 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 136
    Par défaut OpenGL 3.2 / GLSL 1.5 : Développeurs livrés à eux même
    Bonjour à tous,

    J'essaie de me remettre un peu à l'OpenGL, dépoussierer mon petit moteur multi fonction et me réconcilier avec mes soirées geeks devant mon ordi à programmer
    J'ai levé la patte depuis la fin de mes études à savoir mi mars 2009, du coup bien avant les versions 3.x d'OpenGL.

    Ayant suivi un peu de loin les évolution de notre API préferée je me doutais que mon ptit moteur allait devoir subir un relooking. Mais ils semblerait que les évolutions aient été plus méchantes que ce que j'aurais cru et passer à un moteur pur OpenGL 3.2, donc sans les extensions de compatibilité que je tiens à éviter, ben il va falloir tout refaire !

    Alors je me suis muni de SDL qui permet facilement d'avoir un contexte 3.2, d'un exemple d'application de base et je me suis lancé. Après avoir réussi à afficher mon triangle multicolore j'ai commencé à mettre des glPush/PopMatrix mais réalisé après coup qu'étant donné que les variables built-in ne sont plus d'actualités, et bien la gestion des matrices par opengl non plus !

    Là j'avoue avoir tiré un peu la tronche... Est il maintenant obligatoire au dév de faire lui même sa propre gestion des piles de matrices ?.
    C'était bien pratique qu'opengl s'en charge pour nous et là ... j'avoue avoir la flème ! Pour ceux ayant déjà un peu avancer avec la 3.2 vous avez géré ça comment ?
    Cela va rendre très ardue l'apprentissage d'opengl pour des jeunes padawans, je trouve ça dommage.

    Qui dit gestion des matrices à la main, dit gestion du volume de vision manuel également ?
    A vrai dire, ça ne me gène pas vraiment de devoir tout faire à la main, ça permet d'avoir un contrôle total sur ce qu'il se passe. Serait ce la fin des heures de débugages pour une histoire de matrice en colomne ou ligne dabord ?
    Je vais commencer à réflechir à une gestion des transformations / orientations 100% quaternions si je trouve un moyen de m'en servir efficacement avec GLSL... quitte à avoir les mains libres, autant innover.

    Tout ça pour dire que j'ai l'impression que la version 3.2 empute OpenGL de méchanismes qui étaient bien pratiques et facilitaient la vie aux développeurs !
    Ce sont mes premières impressions, j'espere que j'aurais de meilleurs surprises avec la suite, rassurez moi !

    Cordialement,
    Harold

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 171
    Billets dans le blog
    155
    Par défaut
    Bonjour,

    Moi aussi je peux dire que les dernières nouveautés d'OpenGL me déconcerte ( surtout que je suis nul en math ). Mais je crois qu'il existe des bibiolthèque pour la gestion des matrices.
    Ce qui peut aider, je pense.

    Sinon, il va falloir se taper les calculs des lumières, tout ça, tout ça. Du coup, je suis entièrement d'accord, que pour avoir un cube simple, on prend bien une journée ( j'ai pas encore fait ( j'ai pas de machine OpenGL 3.2 de toute façon ) ). Mais après on a les mains libres.
    Alors, il est vrai que je ne suis pas totalement pour ces changements d'OpenGL ( mais j'ai pas le droit de parole dans le consortium ), mais je suis pas totalement contre pour autant.

    Par contre, du coup, il manque des ressources sur le net ( qui reste trop souvent au OpenGL 1.4 ).
    Bonne chance à ce qui veulent s'y mettre.
    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.

  3. #3
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Par défaut
    Il existe la merveilleuse librairie GLM : http://glm.g-truc.net/
    Tu trouve tout => matrice, vecteur, etc... tu as des méthodes pour générer des matrice de projection ,rotation, etc... facilement.
    Et le plus merveilleux c'est que ça suit les spécifications de la GLSL donc exactement la même syntaxe.

    Exemple : mat4, vec4, etc... pour déclarer une matrice 4x4, un vecteur de 4 de dimension 4.

  4. #4
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 594
    Par défaut
    Salut,

    Je suis actuellement en train de lire le livre Beginning OpenGL Game Programming, 2nd Ed qui a été réalisé entre autres par des personnes du fameux site nehe que tout développeur OpenGL doit connaitre.

    Dans le bouquin, il est question de OpenGL 3.x et à propos des matrices ils disent effectivement que de nombreuses fonctions de gestion matricielles sont obsolètes. Si ce n'était que les piles (stacks), ça irait encore, mais maintenant il faut replonger dans les cours de math

    Aussi les auteurs de nehe ont développé une bibliothèque que je ne connaissait pas pour gérer les matrices sous OpenGL 3.x : kazmath.

    De mon côté, j'utilise mathgl-pp qui marche plutôt bien et qui est en C++
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  5. #5
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Par défaut
    Si il fait du GLSL, je trouve que GLM reste le must car cela donne une cohérence avec le code GLSL et le code API OpenGL vu que la syntaxe est la même. Et dans cette librairie, il existe une multitude de fonction super intéressante qui facilite la vie. Ce n'est que mon avis bien sur

  6. #6
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Alors là, on oublie le classique conseil : commence par OpenGL, il est plus sympa à apprendre, t'arrive vite à un résultat, non ?

    Je n'ai pas trop suivi l'évolution au concret, mais il était question d'enlever glBegin() et tous ces trucs sympa qui au début servent à apprendre et même par après : à débug. Qu'est-il de ça ? glBegin n'est plus là ?

    Si par exemple on passe à OpenGL 3+ pur, est-ce que l'appli tournera toujours sur des anciennes cartes graphiques ?

    Ça vaut le coup d'upgrade son moteur à GL3+ pur ? (Donc en enlevant glBegin() et cetera.) Oui j'utilise glBegin pour l'interface utilisateur qui se résume qu'à quelques triangles en 2D au dessus de la scène 3D.

    J'attends avec impatience vos avis

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 37
    Par défaut
    Alors là, on oublie le classique conseil : commence par OpenGL, il est plus sympa à apprendre, t'arrive vite à un résultat, non ?
    Je ne connais pas DirectX donc je ne peux pas vraiment juger. Mais je pense que niveau difficulté, OpenGL et DirectX se valent. Par contre, maintenant DirectX est sans doute plus abordable car les ressources (tuto) sur OpenGL deviennent à 80% dépréciés.

    Je n'ai pas trop suivi l'évolution au concret, mais il était question d'enlever glBegin() et tous ces trucs sympa qui au début servent à apprendre et même par après : à débug. Qu'est-il de ça ? glBegin n'est plus là ?
    Le but est surtout de forcer le programmeur à ne plus utiliser les fonctionnalités du pipeline fixe. Pour preuve, dans les shaders il n'y a même plus de variable built-in, il faut nous même passer les matrices, les attributs de sommets. C'est de toute façon plus puissant, car on définit nous même ce que sont les attributs de nos sommets. Je peux par exemple décider qu'un sommet c'est un ensemble: {position, normale, couleur, tangente}
    Bon, ok on pouvait déjà le faire avant, mais cette fois c'est clairement le programmeur qui décide de ce qu'est un sommet.

    Si par exemple on passe à OpenGL 3+ pur, est-ce que l'appli tournera toujours sur des anciennes cartes graphiques ?
    Si tu passes à de l'OpenGL 3.2 pur, ça ne tournera pas sur des anciennes cartes graphiques. Par exemple les cartes graphiques qui ne supportent pas les shaders par exemple. Mais bon, il faut savoir évoluer, on ne peut pas toujours supporter les anciens matériels.
    Après, si tu veux continuer à utiliser glBegin, et à utiliser le pipeline fixe (donc pas du OpenGL 3.2), tu peux ré-activer le tout via une extension.

    Ça vaut le coup d'upgrade son moteur à GL3+ pur ? (Donc en enlevant glBegin() et cetera.) Oui j'utilise glBegin pour l'interface utilisateur qui se résume qu'à quelques triangles en 2D au dessus de la scène 3D.
    Bien sur que ça vaut le cout. Quand OpenGL 3.0 est sorti, la majorité des gens ont criés au scandale parceque OpenGL utilisait encore le pipeline fixe. Le fait de forcer le programmeur à ne plus l'utiliser est donc ce que tout le monde attendait.

    D'ailleurs si ça motive quelqu'un, pourquoi ne pas ouvrir un thread pour discuter de la rédaction d'un eventuel tutoriel sur OpenGL 3.2 ? La majorité des tuto sur OpenGL sont devenu dépréciés comme je le disais. Bien sur, quelqu'un pourrait le faire seul, mais je pense que si on veut faire quelque chose de bien, il faudrait couvrir beaucoup plus que ce qu'on peut trouver actuellement sur le net.

    Je vois beaucoup de tutoriel OpenGL où on enseigne "Pour faire une rotation, tu utilises glRotated(). Oui, ok. Avant c'était valide, mais maintenant il faut donner au programmeur débutant des connaissances minimales sur l'algébre linéaire! Il y a tellement de chose à voir maintenant. (Bien sur, le programmeur peut toujours utiliser des lib mathématiques, mais bon, c'est moins marrant.)

    Pour cette proposition, je vous laisse répondre. J'avais déjà proposé à Raptor, et ma proposition tient toujours.

  8. #8
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Merci pour cette excellente réponse.

    Ben si l'application GL 3.2+ pur ne tournera pas sur des anciennes cartes graphiques sans shaders c'est pas un problème. Si quelqu'un a une cg qui ne supporte pas les shaders, il sait qu'il veut pas jouer avec.

    Quant à un bon tutoriel OpenGL 3.2 en français ce serait merveilleux. Par exemple moi je débarque, je veux mettre à jour mon application pour supporter le nouveau OpenGL, est-ce qu'on a un bon tutoriel en français ?

    Je suis pour. Dommage que je ne pourrai pas aider sauf pour la correction de l'orthographe peut être.

  9. #9
    Membre émérite
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 943
    Par défaut
    Citation Envoyé par Soack Voir le message
    Je ne connais pas DirectX donc je ne peux pas vraiment juger. Mais je pense que niveau difficulté, OpenGL et DirectX se valent. Par contre, maintenant DirectX est sans doute plus abordable car les ressources (tuto) sur OpenGL deviennent à 80% dépréciés.
    Et encore, on est plus proche des 95 que des 80.

    Aujourd'hui le débat D3DvsOGL serait bien différent. Les 2 API existe pour d'autres langages, certain sont relativement bien portable. Les 2 APIs ont bien évolué pour au final se rapprocher. Ce qui faisait la force d'OGL, ca compatibilité est aujourd'hui son point faible. Pas possible de trouver de bons tutos sur le sujet.

Discussions similaires

  1. [GLSL] Conseil Livre OpenGL (GLSL) récent
    Par angioedema dans le forum OpenGL
    Réponses: 4
    Dernier message: 07/11/2014, 15h25
  2. [Scrum] Peut-on à la fois être Scrum master et développeur sur un même projet ?
    Par rad_hass dans le forum Méthodes Agiles
    Réponses: 34
    Dernier message: 06/07/2014, 12h45
  3. Les développeurs indépendants pourront publier eux-mêmes leurs jeux sur la Xbox One
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 8
    Dernier message: 28/07/2013, 20h24
  4. OpenGL extensions et GLSL
    Par info_reda dans le forum OpenGL
    Réponses: 3
    Dernier message: 20/04/2012, 12h57
  5. Redressement d'Image avec OpenGL Shader Language (GLSL)
    Par luxigo dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 18/10/2009, 14h24

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