[UDF] OpenGL, GLFW et SOIL

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

[UDF] OpenGL, GLFW et SOIL

#1

Message par matwachich »

Salut la compagnie!
Comme l'année passée, le printemps est synonyme de programmation graphique orientée Jeux Vidéos (GEngin)!!!

Aujourd'hui, je vous propose l'aboutissement d'une longue quête: arriver à charger et afficher une texture OpenGL
Et j'y suis enfin arriver!!! (PS: grâce à mon récent apprentissage du langage Python, et au fait de m'être un peut remis au C/C++)

Dans l'archive:
- Un wrapper pour OpenGL et GLU (quasiment toutes les fonctions de base sont écrite et testées)
- Un wrapper pour GLFW (Toutes les fonctions dont on à besoin sont écrite, les autres (timer, threads, chargement d'image) on en à pas besoin, soit parce que elle sont implémentés nativement dans AutoIt, ou bien parce que elle sont plus performantes dans: SOIL)
- Un wrapper pour SOIL (Simple OpenGL Image Library): La plupart des fonctions sont traduites (pour les autres, j'attend de peaufiner un peut mes connaissances!) C'est cette bibliothèque qui m'a permit de réaliser ma quête!
- Des exemples!

J’espère que ça vous plaira!

PS: les fonctions utilisées dans les exemples fonctionnent très bien, les autres n'ont pas été testées, si vous trouvez des bugs, vous savez ou me trouver!
PS: il est nécessaire de connaître au moins les bases d'OpenGL pour comprendre ce qui se passe dans les exemples, je vous conseil le bon vieux site du zero!
PS: J'ai inclus la documentation de GLFW (pdf)

TELECHARGER
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
lesolutionneur
Niveau 7
Niveau 7
Messages : 368
Enregistré le : ven. 09 déc. 2011 11:25
Status : Hors ligne

Re: [UDF] OpenGL, GLFW et SOIL

#2

Message par lesolutionneur »

Et on arrive à avoir un nombre d'images par seconde satisfaisant ?

Merci pour cet UDF, super, comme d'habitude ! :)
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] OpenGL, GLFW et SOIL

#3

Message par matwachich »

Bah y'a pas de quoi!!! :D
Pour le FPS, lancez l'exemple 2d_smiley.au3, et voyez ce que vous afficher la console à la fin
Pour ma part (Dual Core T3400, 3Go, Geforce 103M) autour de 1000! :mrgreen:
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [UDF] OpenGL, GLFW et SOIL

#4

Message par mikell »

De la folie ce truc :mrgreen:
Et t'as encore eu le temps pour tes exams ?!? :shock:

Un détail : dans le dossier juste décompressé sur le bureau, je n'ai pu faire fonctionner les exemples qu'en modifiant légèrement l'include glfw.au3

Code : Tout sélectionner

Func _glfwInit()
...
$__glfw_hDLL = DllOpen("..\glfw.dll")  [color=#008000] ;<== sinon la dll voulait pas charger, j'avais la variable à -1[/color]
EDIT
Un petit mode d'emploi basique serait le bienvenu, par exemple pour le smiley si on ferme la fenêtre on n'a pas les ConsoleWrite, faut faire ESC pour ça (ce qui m'a shooté d'abord mon soft de surveillance qui a la même Hotkey... :wink: )
Le haut de fenêtre des démos flicker pas mal, est-ce que ça aurait à voir avec le fps qui était de 5500 au dernier essai :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] OpenGL, GLFW et SOIL

#5

Message par matwachich »

Je m'étonne moi même tout les jours (comment j'arrive à avoir mes années!!!)

Pour les DLLs, en effet, l'idéal est de les copier dans le dossier des Exemples (perso, je les ai mise dans system32, c'est pour ça que j'ai oublié)

- Les exemples manquent de commentaires, mais d'un autre coté, sans les bases en OpenGL, même mes commentaires serait insuffisant...
- Le flicker c'est soit disons l'affichage du FPS. Cet exemple est fait pour montrer le FPS maximum atteignable (moi le record c'est 1500). Mais pour une utilisation normal, il vaut mieux activer la synchronisation verticale (en commentant la ligne _glfwSwapInterval(0))
- Pour le bug de fermeture... C'est vrai qu'il me l'a fait une fois, mais je n'arrive pas à le reproduire sans même avoir toucher au code. Va savoir...

Sinon, je me lancer dans une sorte de ré-écriture de GEngin, avec OpenGL, et une dll en C, ou je mettrai toutes les fonctions qui nécessite de la rapidité (calcule de positions, de collisions...) Mais ce n'est pas pour tout de suite (exams! :mrgreen: )

Ciao!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [UDF] OpenGL, GLFW et SOIL

#6

Message par mikell »

matwachich a écrit : Les exemples manquent de commentaires, mais d'un autre coté, sans les bases en OpenGL, même mes commentaires serait insuffisant
Oula non, je parlais de quelques commentaires d'utilisation vraiment basiques (pour afficher les consolewrite, j'ai dû aller dans le code pour découvrir qu'il existait une hotkey ESC)
matwachich a écrit : pour une utilisation normal, il vaut mieux activer la synchronisation verticale (en commentant la ligne _glfwSwapInterval(0))
J'ai commenté la ligne et je suis toujours à 5500 avec du flicker... c'est normal docteur ?

Heu réponse non urgente, les exams d'abord :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] OpenGL, GLFW et SOIL

#7

Message par matwachich »

Euh...
1- T'as une machine de malade! (moi j'atteint max 1500)
2- 60/s c'est rapide aussi (d'ou le flicker)
3- 5500 même en ayant commenter la ligne... j'en sais rien! (bizard) Essai avec _glfwSwapInterval(1)
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [UDF] OpenGL, GLFW et SOIL

#8

Message par mikell »

Voilà les dernières valeurs

Code : Tout sélectionner

Times (in ms):
    Average _glClear time: 0.0211527205233301
    Average Draws time: 0.0604215490101045
    Average _glfwSwapBuffers time: 0.0941384635071755
    Average FPS: 5065.71281789496
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] OpenGL, GLFW et SOIL

#9

Message par matwachich »

Géant ton FPS!!! T'as quoi comme machine???

PS: pour les bases en OpenGL -> ici (les 2 premiers cours)
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [UDF] OpenGL, GLFW et SOIL

#10

Message par Iste »

Chez moi il se passe juste rien, quelque soit l'exemple utilisé, dll replacées.
Signez ici
servabat
Niveau 4
Niveau 4
Messages : 69
Enregistré le : sam. 02 avr. 2011 16:26
Status : Hors ligne

Re: [UDF] OpenGL, GLFW et SOIL

#11

Message par servabat »

Salut,

Hum moi ça me retourne ça :

Code : Tout sélectionner

Times (in ms):
    Average _glClear time: 0
    Average Draws time: 0
    Average _glfwSwapBuffers time: 0
    Average FPS: 0

:P un petit bug on dirait :D

Edit: Comme l'a dit Mikell, avec

Code : Tout sélectionner

    If FileExists("glfw.dll") Then
        $__glfw_hDLL = DllOpen("glfw.dll")
    Else
        $__glfw_hDLL = DllOpen("..\glfw.dll")
    EndIf
ça marche... mais ça continue de ne pas marcher si je le lance depuis l'editeur de code (donc... pas de console :/)
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] OpenGL, GLFW et SOIL

#12

Message par matwachich »

Bah franchement, je n'en sais rien!
Peut être vos carte graphiques ne supportent pas OpenGL???
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [UDF] OpenGL, GLFW et SOIL

#13

Message par Iste »

Haha, la bonne blague ^^
En fait, ca tourne juste pas en x64, mais sans souci en x86, avec un bon paquet de fps ! (~5000)
Signez ici
Répondre