Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/09/2014, à 05:01

ubuntuforce

[Tutoriel python] Introduction a la programmation 3D avec pyopengl.

Salut les ubuntues,

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

Et j'ai décidé de transmettre ce que j'ai put tirer comme connaissance du livre étudié, en écrivant un tutoriel portant sur l'implémentation python de OpenGL: pyopengl.
Le tutoriel est plutôt un HOW-TO de la programmation 3D avec pyopengl.

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 aux langages compilés 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 pyopengl 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, nommer pyglut, 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 tutoriels, 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 mais pas beaucoup en français.


A ce propos une petite anecdote: a écrit :

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 (La syntaxe du C est proche du 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 mais c'est difficile également.

Vous trouverez le fichier du tutoriel nommer Introduction_a_pyopengl.zip 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é.


Rendez-vous sur mon site présentant mes créations open-source: http://www.open-source-projects.net/
Rendez-vous sur mon site dédier a mes créations d'imagerie 3D: http://www.3dreaming-imaging.net/
Testez pendant une semaine l'éditeur avec terminaux intégrées http://www.open-source-projects.net/it-edit/it-edit Vous l'adopterai sûrement !

Hors ligne

#2 Le 07/10/2014, à 04:11

ubuntuforce

Re : [Tutoriel python] Introduction a la programmation 3D avec pyopengl.

Ca n'intéresse personne: pas de réponses (commentaires, critiques, etc...) !!!

Je vous pris si vous avez lu mon tutoriel de bien vouloir laisser un court commentaire.

Car le silence et l'indifférence et la pire réponse de la communauté python face a l'annonce de parution d'un nouveau tutoriel.

Merci pour vos réponses éclairés.


Rendez-vous sur mon site présentant mes créations open-source: http://www.open-source-projects.net/
Rendez-vous sur mon site dédier a mes créations d'imagerie 3D: http://www.3dreaming-imaging.net/
Testez pendant une semaine l'éditeur avec terminaux intégrées http://www.open-source-projects.net/it-edit/it-edit Vous l'adopterai sûrement !

Hors ligne

#3 Le 07/10/2014, à 08:29

telliam

Re : [Tutoriel python] Introduction a la programmation 3D avec pyopengl.

Pour moi faire de l'openGL en python c'est un peu un non sens smile mais bon, je te félicite pour l'effort.
qq remarques (j'ai lu rapidement en diagonal):
- Si tu veux que les personnes le lisent met le en ligne plutôt que dans un fichier zip.
- C'est bourré de fautes de français
- un polygone est une figure plane, donc je ne vois pas pourquoi tu décris des coordonnées en 3D ( à moins que le plan ne soit pas parrallèle au plan xy,yz, ou zx) mais ça ce n'est pas indiqué il me semble, ou alors le terme est mal choisi
- Dans une de tes phrases tu confonds droites et segments.
- Tu parles de POO sans décrire ce que c'est.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#4 Le 09/10/2014, à 10:27

ubuntuforce

Re : [Tutoriel python] Introduction a la programmation 3D avec pyopengl.

Merci telliam pour cette réaction, ton encouragement et ton analyse après "une lecture en diagonale".

Le tutoriel est au format zip car générer avec sphinx:

c'est le générateur de documentation pour python qui est basé sur le langage de documentation officiel par convention pour python:
ReST (Re Structured Text).

Qu'en tant que python je te conseille vivement car le ReST permet de générer des documents dans divers formats (*pdf, *.html, Latex, et même des manpages) d'après une syntaxe simple, grâce a des outils comme
rst2pdf,
rst2html,
rst2man
et donc aussi par le biais de sphinx qui est d'ailleurs le générateur de la documentation officiel de python ; avec coloration syntaxique avec pygment mais d'autres modules sont incorporables.

Bref pour pouvoir incorporer des liens des images, etc.. j'ai dû choisir le format de sortie HTML avec sphinx ce qui donne quelques fichiers de plus pour l'indexation etc... -> Donc une archive comme format de sortie s'avérait nécessaire.

Désolé pour les fautes de français il y a eu une correction orthographique mais avec un hic: sujet déjà aborder dans le premier poste.

telliam a écrit :

un polygone est une figure plane, donc je ne vois pas pourquoi tu décris des coordonnées en 3D ( à moins que le plan ne soit pas parrallèle au plan xy,yz, ou zx) mais ça ce n'est pas indiqué il me semble, ou alors le terme est mal choisi

Simplement parce que un polyèdre est construit a partir de polygones, donc il faut savoir générer des polygones avant un polyèdre et d'ailleurs la notion de plan XY, XZ et YZ a été aborder dans le génération de polygone il y a même une image qui représente 3 polygones: chacun dans un plan différent.

Et il faut noter la convention suivante qui décrit comment enregistrer les vertices d'un polyèdre dans un conteneur:

 conteneur polyèdre = [ polygone = vertex_du_polygone ]  

Désolé pour la confusion de droites et de segments et je n'ai pas aborder la théorie de base de la P.O.O car le tutoriel s'adresse a des python d'un niveau convenable.

Pour finir si vous lisez (étudiez) bien le tutoriel vous pourrez vous construire un petit arsenal de base de programmation 3D.
Chose que j'ai faîte par le biais du module pyglut disponible sur PyPI par le biais de pip, compatible Windows et Linux.
Désolé pour les docstrings avec l'IDLE il faudra lire la documentation fournis avec, généré grâce a sphinx ou disposer d'un interpréteur plus smart qui affiche correctement les longues docstrings.

La programmation 3D avec pyopengl n'est pas impossible avec python même si je reconnaît que ce  n'est pas le langage le plus adapter. Mais une implémentation existe alors pourquoi pas en profiter...

D'ailleurs j'ai fait un petit jeu de shoot-them-all nommer cube-hunter minimaliste dans sa conception mais marrant a jouer (même si il bug un petit peu):
- pas de niveaux différents.
- pas de liste de highscore.
Juste un écran de configuration du jeu, par manque d'envie (j'aurai pû l'étoffer ou vous le pouvez car il est bien sur Open Source).
Etc...

PS: j'aurai bien écrit 2 ou 3 chapitres supplémentaires mais ça ne s'est pas fait, désolé.

Merci beaucoup pour cette réaction telliam, ça fait chaud au cœurs que quelqu'un disent enfin quelque chose sur un truc que j'ai mis de longues semaines a construire. Dommage que tu n'ai pas (donner sur ton profil) de site perso à visité.

Dernière modification par ubuntuforce (Le 09/10/2014, à 11:06)


Rendez-vous sur mon site présentant mes créations open-source: http://www.open-source-projects.net/
Rendez-vous sur mon site dédier a mes créations d'imagerie 3D: http://www.3dreaming-imaging.net/
Testez pendant une semaine l'éditeur avec terminaux intégrées http://www.open-source-projects.net/it-edit/it-edit Vous l'adopterai sûrement !

Hors ligne

#5 Le 09/10/2014, à 10:54

claudius01

Re : [Tutoriel python] Introduction a la programmation 3D avec pyopengl.

ubuntuforce a écrit :

Le tutoriel est au format zip car généré avec sphinx: c'est le générateur de documentation pour python qui est basé sur le langage de documentation officiel par convention pour python: ReST (Re Structured Text) ... et donc aussi par le biais de sphinx ...

Effectivement ReST / Sphinx, c'est vraiment très bien fait et puissant comme on peut le voir dans une autre application d'un éditeur de texte en ligne NoTex:
cf. https://notex.ch/home/ + Télécharger (Export as ... HTML) en local le site web généré (point d'entrée: content.html) et en prime, vous saurez tout sur ... l'équivalence Masse-énergie (E = mc² ;-)

Hors ligne

#6 Le 06/01/2016, à 15:50

chplum

Re : [Tutoriel python] Introduction a la programmation 3D avec pyopengl.

ubuntuforce a écrit :

Ca n'intéresse personne: pas de réponses (commentaires, critiques, etc...) !!!

Je vous pris si vous avez lu mon tutoriel de bien vouloir laisser un court commentaire.

Car le silence et l'indifférence et la pire réponse de la communauté python face a l'annonce de parution d'un nouveau tutoriel.

Merci pour vos réponses éclairés.

Hello !

Moi ça m'intéresse mais les liens ne sont pas valides ;-)

Hors ligne

#7 Le 06/01/2016, à 16:10

claudius01

Re : [Tutoriel python] Introduction a la programmation 3D avec pyopengl.

Bonjour,

chplum a écrit :

Hello !
Moi ça m'intéresse mais les liens ne sont pas valides ;-)

Moi aussi cela m'intéresse, mais ils l'étaient peut-être [valides] en ... 2014 ;-)

Bonne année 2016 à toutes et tous.

Hors ligne

#8 Le 07/01/2016, à 11:55

chplum

Re : [Tutoriel python] Introduction a la programmation 3D avec pyopengl.

claudius01 a écrit :

Bonjour,

chplum a écrit :

Hello !
Moi ça m'intéresse mais les liens ne sont pas valides ;-)

Moi aussi cela m'intéresse, mais ils l'étaient peut-être [valides] en ... 2014 ;-)

Bonne année 2016 à toutes et tous.

Effectivement...quand j'ai lu les dates des messages, dans ma tête c'était octobre de l'année dernière...j'ai du faire abstraction inconnsciemment de cette année pourrie 2015 ;-)

Bonne année 2016 à tous aussi (et à toutes !!)

Hors ligne