OpenGL - Tutoriaux - 22 leçons !
OpenGL - Tutoriaux - 22 leçons !
Un membre du forum anglais hagibaba publie depuis quelques temps
des tutoriaux OpenGL directement traduit des tutoriaux de Nehe Productions.
Pour les curieux, j'ai compilé une petite archive toute prête pour essayer.
NeHe Productions :
http://nehe.gamedev.net/
http://nehe.gamedev.net/data/lessons/le ... ?lesson=01
Traduction PB4 par hagibaba :
Leçon 01: http://www.purebasic.fr/english/viewtopic.php?t=25195
Leçon 02: http://www.purebasic.fr/english/viewtopic.php?t=25196
Leçon 03: http://www.purebasic.fr/english/viewtopic.php?t=25197
Leçon 04: http://www.purebasic.fr/english/viewtopic.php?t=25198
Leçon 05: http://www.purebasic.fr/english/viewtopic.php?t=25199
Leçon 06: http://www.purebasic.fr/english/viewtopic.php?t=25250
Leçon 07: http://www.purebasic.fr/english/viewtopic.php?t=25251
Leçon 08: http://www.purebasic.fr/english/viewtopic.php?t=25252
Leçon 09: http://www.purebasic.fr/english/viewtopic.php?t=25285
Leçon 10: http://www.purebasic.fr/english/viewtopic.php?t=25295
Leçon 11: http://www.purebasic.fr/english/viewtopic.php?t=25315
Leçon 12: http://www.purebasic.fr/english/viewtopic.php?t=25316
Leçon 13: http://www.purebasic.fr/english/viewtopic.php?t=25317
Leçon 14: http://www.purebasic.fr/english/viewtopic.php?t=25343
Leçon 15: http://www.purebasic.fr/english/viewtopic.php?t=25344
Leçon 16: http://www.purebasic.fr/english/viewtopic.php?t=25354
Leçon 17: http://www.purebasic.fr/english/viewtopic.php?t=25369
Leçon 18: http://www.purebasic.fr/english/viewtopic.php?t=25371
Leçon 19: http://www.purebasic.fr/english/viewtopic.php?t=25381
Leçon 20: http://www.purebasic.fr/english/viewtopic.php?t=25396
Leçon 21: http://www.purebasic.fr/english/viewtopic.php?t=25417
Leçon 22: http://www.purebasic.fr/english/viewtopic.php?t=25549
Leçon 23: à suivre...
Archive - ZIP - 1240Ko ( Sources + Includes + Datas ) :
NeheProduction.zip
des tutoriaux OpenGL directement traduit des tutoriaux de Nehe Productions.
Pour les curieux, j'ai compilé une petite archive toute prête pour essayer.
NeHe Productions :
http://nehe.gamedev.net/
http://nehe.gamedev.net/data/lessons/le ... ?lesson=01
Traduction PB4 par hagibaba :
Leçon 01: http://www.purebasic.fr/english/viewtopic.php?t=25195
Leçon 02: http://www.purebasic.fr/english/viewtopic.php?t=25196
Leçon 03: http://www.purebasic.fr/english/viewtopic.php?t=25197
Leçon 04: http://www.purebasic.fr/english/viewtopic.php?t=25198
Leçon 05: http://www.purebasic.fr/english/viewtopic.php?t=25199
Leçon 06: http://www.purebasic.fr/english/viewtopic.php?t=25250
Leçon 07: http://www.purebasic.fr/english/viewtopic.php?t=25251
Leçon 08: http://www.purebasic.fr/english/viewtopic.php?t=25252
Leçon 09: http://www.purebasic.fr/english/viewtopic.php?t=25285
Leçon 10: http://www.purebasic.fr/english/viewtopic.php?t=25295
Leçon 11: http://www.purebasic.fr/english/viewtopic.php?t=25315
Leçon 12: http://www.purebasic.fr/english/viewtopic.php?t=25316
Leçon 13: http://www.purebasic.fr/english/viewtopic.php?t=25317
Leçon 14: http://www.purebasic.fr/english/viewtopic.php?t=25343
Leçon 15: http://www.purebasic.fr/english/viewtopic.php?t=25344
Leçon 16: http://www.purebasic.fr/english/viewtopic.php?t=25354
Leçon 17: http://www.purebasic.fr/english/viewtopic.php?t=25369
Leçon 18: http://www.purebasic.fr/english/viewtopic.php?t=25371
Leçon 19: http://www.purebasic.fr/english/viewtopic.php?t=25381
Leçon 20: http://www.purebasic.fr/english/viewtopic.php?t=25396
Leçon 21: http://www.purebasic.fr/english/viewtopic.php?t=25417
Leçon 22: http://www.purebasic.fr/english/viewtopic.php?t=25549
Leçon 23: à suivre...
Archive - ZIP - 1240Ko ( Sources + Includes + Datas ) :
NeheProduction.zip
Dernière modification par Flype le jeu. 25/janv./2007 10:20, modifié 9 fois.
Merci pour la compil Flype , j'adore le jeu de la leçon 21, simple et efficace.
Par contre j'ai deux carrés blancs avec la leçon 22 ? je suis le seul ?
J'ai vu que hagibaba avait corrigé tous ses codes sources pour prendre en compte les images au format 1,4, 8 et 24 bits.
Par contre j'ai deux carrés blancs avec la leçon 22 ? je suis le seul ?
J'ai vu que hagibaba avait corrigé tous ses codes sources pour prendre en compte les images au format 1,4, 8 et 24 bits.
hagibaba a écrit :The new LoadBMP procedure supports 1,4,8 and 24 bits.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
C'est normal , dans le post d'origine il y a ça :
This shows how to do multi-texturing, "fake" bump mapping and textures with an alpha channel.
Press M key for multi-texturing, B key for bump mapping, E for emboss effect, F key for filters, Arrows to rotate cube, Pageup/Pagedown to zoom.
Note: i don't think multi-texturing is working at the moment.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
J'étudie à fond les exemples et en gérénal ça va. Sauf qu'il y a une procédure que je ne comprends pas trop sa raison d'être. C'est celle-ci :
À première vue cette procédure travaille en arrière plan. La question qui me semble la plus évidente :
Pourquoi gérer une partie des messages reçu par la fenètre par l'intermédiare de cette procédure et l'autre partie dans la boucle principale du programme avec les commandes PeekMessage_(), TranslateMessage_() et DispatchMessage_() ?
Merçi à l'avance.
A+
Guimauve
Code : Tout sélectionner
Procedure.l WndProc(hWndParam.l, uMsg.l, wParam.l, lParam.l)
Select uMsg
Case #WM_ACTIVATE
If HIWORD(wParam)=0
active=#True
Else
active=#False ;Program Is No Longer Active
EndIf
ProcedureReturn 0 ;Return To The Message Loop
Case #WM_SYSCOMMAND ;Intercept System Commands
Select wParam ;Check System Calls
Case #SC_SCREENSAVE ;Screensaver Trying To Start?
ProcedureReturn 0 ;Prevent From Happening
Case #SC_MONITORPOWER ;Monitor Trying To Enter Powersave?
ProcedureReturn 0 ;Prevent From Happening
EndSelect
Case #WM_CLOSE ;Did We Receive A Close Message?
PostQuitMessage_(0) ;Send A Quit Message
ProcedureReturn 0 ;Jump Back
Case #WM_KEYDOWN ;Is A Key Being Held Down?
keys(wParam)=#True ;If So, Mark It As TRUE
ProcedureReturn 0 ;Jump Back
Case #WM_KEYUP ;Has A Key Been Released?
keys(wParam)=#False ;If So, Mark It As FALSE
ProcedureReturn 0 ;Jump Back
Case #WM_SIZE ;Resize The OpenGL Window
ReSizeGLScene(LOWORD(lParam),HIWORD(lParam)) ;LoWord=Width, HiWord=Height
ProcedureReturn 0 ;Jump Back
EndSelect
;Pass All Unhandled Messages To DefWindowProc
ProcedureReturn DefWindowProc_(hWndParam,uMsg,wParam,lParam)
EndProcedure
Pourquoi gérer une partie des messages reçu par la fenètre par l'intermédiare de cette procédure et l'autre partie dans la boucle principale du programme avec les commandes PeekMessage_(), TranslateMessage_() et DispatchMessage_() ?
Merçi à l'avance.
A+
Guimauve
Donc si je comprend bien, je pourrais sans problème simplifier cette procédure comme ceci :
Et gérer le reste dans la boucle principale.
A+
Guimauve
Code : Tout sélectionner
Procedure.l WndProc(hWndParam.l, uMsg.l, wParam.l, lParam.l)
Select uMsg
Case #WM_SYSCOMMAND ;Intercept System Commands
Select wParam ;Check System Calls
Case #SC_SCREENSAVE ;Screensaver Trying To Start?
ProcedureReturn 0 ;Prevent From Happening
Case #SC_MONITORPOWER ;Monitor Trying To Enter Powersave?
ProcedureReturn 0 ;Prevent From Happening
EndSelect
Case #WM_CLOSE ;Did We Receive A Close Message?
PostQuitMessage_(0) ;Send A Quit Message
ProcedureReturn 0 ;Jump Back
EndSelect
;Pass All Unhandled Messages To DefWindowProc
ProcedureReturn DefWindowProc_(hWndParam,uMsg,wParam,lParam)
EndProcedure
A+
Guimauve
Et bien quand la fenètre est ouverte elle reçoit les informations depuis le clavier et la souris.
Le tableau Keys() sert à savoir si une touche du clavier à été pressé ou non. Puisque cette
procédure s'exécute en arrière plan, elle ne peut que travailler sur des variables globales.
Ça fonctionne bien, le problème c'est que l'architecture du code ne correspond pas à
mes standards de programmation à savoir : RIEN EN GLOBAL
Je cherche un moyen de soit de la réduire le plus possible ou voir même la supprimer du
code. De toute façon, je ne pourrai pas travailler la dessus avant la fin de semaine prochaine.
A+
Guimauve
Le tableau Keys() sert à savoir si une touche du clavier à été pressé ou non. Puisque cette
procédure s'exécute en arrière plan, elle ne peut que travailler sur des variables globales.
Ça fonctionne bien, le problème c'est que l'architecture du code ne correspond pas à
mes standards de programmation à savoir : RIEN EN GLOBAL
Je cherche un moyen de soit de la réduire le plus possible ou voir même la supprimer du
code. De toute façon, je ne pourrai pas travailler la dessus avant la fin de semaine prochaine.
A+
Guimauve