Micoute a écrit : ↑dim. 12/sept./2021 7:02
C'est vrai qu'on n'est pas très nombreux sur ce forum d'entraide, il y a eut une époque ou ça foisonnait de compétences, mais l'esprit gaulois n'aidant pas, les maîtres se sont retirés, nous laissant seuls. Merci pour le partage
Rien a voir avec l'esprit gaulois. le Forum FR est mort depuis longtemps. des topics sur opengl , y 'en a eu de pas mal de monde, y compris moi même.
ces derniers temps , le forum était blindé de bots , j'ai reçu pas mal de mail pour des vieux topics... cela n'aide pas aux retours des "vieux", c'est plus casse pied qu'autre chose. difficile donc de trouvé une information cohérente dans le bordel.
@threeslider
Initengine3D() est superflu , initialise plutôt les spites. la première commande initialise ogre3D , tu n'en as pas besoin pour faire de l'opengl.
faire un clear color avec un alpha de 0 n'a pas de sens non plus. l'opengl que tu utilises est "obsolète" , voici un lien FR :
http://www.opengl-tutorial.org/fr/beginners-tutorials/
dans ton code , tu dessines en premier des vertex , puis tu change de mode ( projection ) du charge l'identité , la perspective , tu passes en vue locale , du translate , tu actives des flags opengl , du défini un viewport , c'est pas bon tout ca , à la première frame , tout est foireux. les glenable() , pas besoin de le changer toute les frames , une seule fois cela suffit. opengl est une machine à état.
ton code corrigé :
Code : Tout sélectionner
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
CompilerIf Subsystem("OpenGL") = #False
MessageRequester("Error", "Please set the subsystem to OpenGL")
End
CompilerEndIf
CompilerEndIf
InitKeyboard()
InitSprite()
OpenWindow(0, 0, 0, 800, 600, "Hello world for test with OpenGL", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 800, 600)
; INIT DES STATE OPENGL
glShadeModel_(#GL_SMOOTH)
glEnable_(#GL_DEPTH_TEST)
glEnable_(#GL_CULL_FACE)
Repeat
glClearColor_(0.7, 0.7, 0.7, 1.0) ; background color
glClear_(#GL_COLOR_BUFFER_BIT | #GL_DEPTH_BUFFER_BIT)
Repeat
event = WindowEvent()
Select Event
Case #PB_Event_CloseWindow
quit = 1
EndSelect
Until event = 0
; TA CAMERA
glMatrixMode_(#GL_PROJECTION)
glLoadIdentity_()
; TU PEU AUSSI TRANSLATE ICI OU FAIRE DES ROTATES
gluPerspective_(45.0, 800/600, 1.0, 60.0)
;LE / LES OBJETS
glMatrixMode_(#GL_MODELVIEW)
glLoadIdentity_();
glTranslatef_(0, 0, -1)
glBegin_(#GL_POLYGON)
glColor3f_(1.0, 0.0, 0.0)
glVertex3f_(0.0, 0.0, 0.0) ; centre de ton écran
glVertex3f_(0.5, 0.0, 0.0)
glVertex3f_(0.5, 0.5, 0.0)
glVertex3f_(0.0, 0.5, 0.0)
glEnd_()
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape) Or quit = 1