Forum Programmation.c Apprentissage d'OpenGL

Posté par . Licence CC by-sa
1
30
oct.
2015

Bonjour,
J'ai envie d'apprendre à coder un petit moteur 3d.

Le problème, c'est qu'il y a beaucoup de tutoriel, et le choix est compliqué.
De ce que j'ai compris, OpenGL 3 et 4 sont proches, tandis qu'OpenGL 2 est très ancien.

Parmi ceux que j'ai trouvé, celui ci me semble très bon.
http://opengl.developpez.com/tutoriels/opengl-tutorial/

Que pensez-vous de ce dernier?
Est-ce que cela vous semblerais trop compliqué pour un débutant en 3d (même si il est clair)?

Merci beaucoup

  • # pas besoin d'etre un pro de la 3D pour apprendre OPENGL

    Posté par . Évalué à 2.

    dans un premier temps, tu vas apprendre à ouvrir une fenetre, faire des ronds, des carrés, des lignes, des surfaces, poser des textures.

    ensuite seulement viendra la partie complexe si tu debutes en 3D,
    comment dessiner ton monde avec les objets de bases (lignes/courbes, volumes cubes, spheres, pyramides)…

    comment stocker ces objets sans atteindre le PETA octet de donnée,
    et comment calculer l'affichage de maniere optimale

  • # Quelques liens

    Posté par . Évalué à 8.

    J'ai récemment aussi fait ce type de recherches.

    J'avais besoin de tutoriels qui permettent d'avoir rapidement quelque chose à l'écran, pas nécessairement complexe, et des bouts de code qui compilent sur ma plateforme, qui est une Debian, et sans avoir besoin de galérer avec un IDE (je me contente de git, vim, cmake et cgdb personnellement).
    Je programme habituellement en C++, mais je lis le C sans grand problèmes (ils ne sont pas "frères" pour rien).
    Autrement dis, je ne cherchais pas des tutoriels pour apprendre à programmer, juste pour gérer les bases de l'OpenGL et les shaders, de façon portable (histoire d'avoir un minimum de rendu pour mon projet, en somme).

    Si tu as le même type de besoins, j'ai trouvé ces liens la, par ordre de préférence (et de complétion de lecture, je n'ai pas tout lu)

    Le 1er utilise GLFW pour gérer la fenêtre (OpenGL ne fait que dessiner un "tas de pixels", ça ne gère ni les fenêtres ni les entrées), le source est en C et relativement clair, même si parfois les étapes entre 2 tutoriels sont un peu larges.
    Le fait d'être basé sur GLFW contribue certainement à rendre le code moins pénible à modifier, à mon avis, mais d'un autre côté tu trouveras moins de bouts de code pour GLFW, surtout que la version 3 est sortie relativement récemment.
    Comme j'ai personnellement une préférence pour les bibliothèques qui ne font qu'une seule chose et la font bien, le fait d'être basé sur GLFW3 est un gros avantage. Cette bibliothèque à une documentation extrêmement claire, et ne fait vraiment QUE contrôler une fenêtre. Pas de gestion du son, du réseau ni du dessin proprement dit.
    L'API publique de GLFW3 est en C, donc c'est utilisable en C, même si j'ai personnellement écrit quelques wrappers histoire d'en faire moins (l'avantage de la RAII en somme).

    Le 2nd utilise se base sur GLUT au lieu de GLFW, qui est une bibliothèque qui se base sur un système de callbacks.
    Au niveau du code OpenGL proprement dit, je le trouve plus clair, et avec des étapes plus courtes, que le 1er. Il n'arrive en 2nde position pour 2 raisons: je ne l'ai trouvé que récemment, et n'ai donc pas lu autant que pour les autres, et il se base sur GLUT.
    GLUT est une bibliothèque très prisée dans le monde de l'OpenGL, mais je t'avoues avoir un peu de mal avec les systèmes à base de callbacks. Ça ne fait pas un très bon mélange avec les objets du C++… et niveau lisibilité je trouve ça assez moche.

    Le 3ème, c'est du C++ pur et dur, avec Visual Studio. Il se base sur l'API de windows.
    J'ai trouvé le code et les explications globalement plus clairs que pour le 1er, parfois je lisais les 2 côte à côte.
    Il est 3ème, parce qu'utilisant l'API windows et Visual Studio, il ne se conforme pas du tout à mon objectif de portabilité.

    Enfin, le dernier, sur wikibooks souffre d'un problème récurrent chez les documents de wikibooks (que j'ai lus, du moins): il dégage une forte impression de "Work In Progress", qui ne donne pas confiance.
    Je m'en sers quand même quand j'ai besoin d'un bout de code ou d'une explication rapide pour un problème simple.

  • # re

    Posté par . Évalué à 1.

    Pour opengl, faut choisir la version minimum 3.3, c'est ce qui est généralement utiliser actuellement.
    Depuis 3.3 à 4.x il y a une certaine nouveauté, ce que les anciennes version <3.3 ne supportent pas.

    "Comme ta création n’est pas en vain, la création de ces événements n’est pas non plus en vain." Bediüzzaman

  • # Site du Zéro

    Posté par . Évalué à 2.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.