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

3D Python Discussion :

[Tutoriel pyopengl] La programmation 3D mode d'emploi ?


Sujet :

3D Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut [Tutoriel pyopengl] La programmation 3D mode d'emploi ?
    Salut les python du forum 3D,

    Suite a de longues semaines d'étude d'un ouvrage sur OpenGL, j'ai acquis pas mal de connaissances sur le sujet.

    Et comme ce forum est désert j'ai décidé de transmettre ce que j'ai put tirer comme connaissance du livre étudié, en écrivant un tutoriel Python qui est plutôt un HOW-TO de la programmation 3D avec OpenGL, afin de repeupler ce forum.

    J'ai beaucoup entendus que la programmation 3D avec OpenGL été compliquer et ajouter au faîte que python est un langage lent en terme de vitesse d'exécution par rapport au langage compilé comme C ou C++ par exemple. Python n'est pas idéal pour la programmation 3D qui demande pas mal de code a exécuter, souvent dans une boucle.

    Le tutoriel est la preuve que l'on peut faire de la programmation 3D avec OpenGL et il est simpliste c.a.d, que les grands théorèmes mathématiques permettant les calcules de coordonnées par matrices ou génération de polyèdres sont a peine effleurer.

    Le tutoriel est construit afin de vous donnez les bases nécessaires a la génération de polyèdres régulier (tétraèdre, cube, octaèdre, dodecaèdre, icosaèdre, etc...) et les outils pour les animés, c.a.d les codes des formules de calcul des coordonnées dans un repère en 3 Dimension (matriciel ou pas).

    J'ai écrit ce tutoriel dans le but de donner a mes amis python la possibilité de créer des programmes 3D, malgré qu'un complément est nécessaire pour user de toute la puissance de OpenGL.

    Pour finir j'ai écrit un module d'aide a la programmation 3D qui reprend pas mal de codes issue du tutoriel, donc si vous (étudiez) lisez le tutoriel vous n'aurai aucun mal a vous servir du module.

    Je serai ravis d'animer la flamme de la programmation 3D en vous et espère que vous irez plus loin en téléchargeant d'autres tutoriel, voir d'acheter un livre sur OpenGL.
    Il n'en existe pas pour l'implémentation python de OpenGL mais dans d'autres langages si et pas beaucoup en français.

    A ce propos une petite anecdote:

    J'ai a un moment commencer le livre, dont les codes sont écrit en C++, puis j'ai lâchement abandonner au bout de quelques dizaines de pages,
    puis quelques temps plus tard, après avoir appris les rouages du langage C, j'ai repris le livre... regarder le tutoriel et vous devinerez ce qu'est devenus la deuxième tentative de lecture du livre.
    La morale est que, en tant que python, apprendre le C est un avantage (La syntaxe du C est proche du C++), mais c'est difficile également.
    Vous trouverez le fichier du tutoriel nommer Introduction a pyopengl dans l'index de mon site sous forme de fichier *.zip contenant des pages *.html composant le tutoriel.

    PS: Il y a eu une correction d'orthographe et de grammaire mais la correctrice étant une littéraire a déchiqueter mes phrases en changeant le sens de celle-ci involontairement, alors j'ai du rectifier en gardant une partie du document non corriger qui est donc enclin a contenir des fautes orthographique et grammaticale, désolé.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    Pas de. zip, il y a un problème de permission pour ma part.

  3. #3
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut
    Comment ça pas de zip ?
    Tu parle du tutoriel ?

    Explications: le lien n'est pas un lien direct ver le fichier *.zip du tutoriel mais vers une page index de mon site.

    Une page index est une page qui affiche un listing de fichiers sur un serveur web, il suffit de cliquer sur le nom du fichier pour le télécharger (j'ai essayer ca marche très bien).
    C'est comme ta page ou tu host tes fichiers *.zip de tes jeux donné comme source sur pygame.org (Pas la DropBox).

    Le fichier s'appelle: Introduction_a_pyopengl.zip

    Mais si tu parle du programme cube-hunter (le jeu de shoot-them-all ou l'on doit dégommer des cubes que tu m'a permis de présenter sur pygame .org) je n'ai pas encore eu le temps de le tester sous Windows, donc j'ai pas encore fait de fichier *.zip.

    Je suis vraiment désolé du retard pris par la procédure, je le ferai dès que je pourrai.

    Puisque l'on en parle et que c'est le sujet:
    cube-hunter est un petit jeu de shoot-them-all fait avec pyopengl et peu être lu comme exemple de jeu en 3D implémenter avec OpenGL.
    Le jeu n'est que compatible avec Linux et est distribuer sous forme de fichier *.deb.

    Je vous souhaite bonne lecture et attend patiemment vos réactions et vos critiques.

  4. #4
    Expert confirmé

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Par défaut
    ça a l'air très interessant tout ça. Merci beaucoup

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    ok ça marche sur PC, c'est sur tablette que ça coince.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 127
    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 127
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    J'y ai vu des choses étranges dans votre mode d'emploi. Notamment, on parle de matrices de couleurs dans l'introduction, notion que je ne connais absolument pas. Pouvez-vous l'expliquer ?
    Ce code (seconde partie) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    def resizeGL(width,height) :
      fov_angle=60.0                   # Angle of eye view.
      z_near=2.0                       # Distance from the user from the screen.
      z_far=1000.0                     # Distance in depth.
     
      glMatrixMode(GL_PROJECTION)      # Enable Projection matrix configuration.
      glLoadIdentity()
      gluPerspective( fov_angle,
                      float(width)/float(height),
                      z_near,
                      z_far )
     
      glLoadIdentity()
      glOrtho(-30.0,                   # Left coordinates value.   ( x_min )
               30.0,                   # Right coordinates value.  ( x_max )
              -30.0,                   # Bottom coordinates value. ( y_min )
               30.0,                   # Top coordinates value.    ( y_max )
              -30.0,                   # Near coordinates value.   ( z_min )
               30.0)                   # Far coordinates value.    ( z_max )
     
      glMatrixMode(GL_MODELVIEW)       # Enable modelview matrix as current matrix.
    Le glLoadIdentity annule la transformation effectuée par gluPerspective.

    Finalement, vous utilisez OpenGL 1. En soit, ce n'est pas faux, cela fonctionne encore, mais clairement, c'est déprécié. Nous sommes passé à ce que l'on appelle OpenGL Moderne. Minimum, la version 3.0 d'OpenGL. La moitié des fonctions que vous présentez ne sont plus à utiliser.
    De plus, c'est loin d'être un cours de pyOpenGL, mais un cours de 3D. La moitié contient les notions pour faire des formes géométriques et des formules sur la géométrie. Mais bon, cela ne suffit pas spécialement pour faire de la vraie 3D en informatique (surtout que l'on n'utilise pas ou très peu le centre d'une forme 3D).
    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.

Discussions similaires

  1. [Python 2.X] Tutoriel pour pyopengl: mode d'emploi de la programmation 3D.
    Par Luke spywoker dans le forum Général Python
    Réponses: 4
    Dernier message: 09/10/2014, 22h42
  2. Le grand mode d'emploi du forum, à lire si vous souhaitez tout savoir !
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 03/06/2013, 17h36
  3. [TP] Programmation en mode graphique
    Par krachik dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 12/05/2005, 11h57
  4. [débutante][Concept] Destruction d'objet, mode d'emploi?
    Par skea dans le forum Général Java
    Réponses: 4
    Dernier message: 12/06/2004, 21h48

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