Bonjour,
Je viens vous demander de l’aide car après des pages de lecture je n’arrive toujours pas à comprendre certaine procédures pour effectuer les rendus opengl.
Voici ma mise en situation :
- Je souhaite effectuez des rendus dans l’esprit des webgl de www.shadertoy.com.
- L’utilisation de ces rendus doivent me permettre de les utiliser pour du vjing.
(Le vjing étant la discipline de mixer des images en temps réel, un bon exemple de logiciel est www.resolume.com, mais sans gestion 3d, inadapté pour moi)- Pour l’initialisation et paramétrages des vertex et shaders, j’utilise Rhino et Grasshopper.
(Rhino est un modeleur surfacique et Grassopper son éditeur de script visuel)
Voici la ou ma compréhension bloque :
- Ma carte graphique possédant plusieurs sortis d’écran (dans mon cas, des projecteurs). J’aurais parfois besoin d’afficher 3 images jointent (tel 3 écrans cote à cote). Parfois il me faudra avoir 3 images de scènes totalement différentes et certaine autre fois la même scène vu de camera différentes.
- Comment arrive ton grâce au code à satisfaire cette contrainte ? Des kilomètres de texte anglais, français et même espagnol, mon embrouillé je crois. Me voilà perdu avec les Contexte OpenGL, les Contexte de Rendu, et les Threads.
Et pour finir voici ce que j’ai compris :
- La règle de base serait de toujours avoir 1 contexte opengl pour 1 thread.
- Aussi il semblerait que partager ces ressources grâce à wglShareList soit rarement une bonne idée ?
- Pour l’affichage de la même scène cote à cote ou d’angle de vues différents (là, je commence à bloquer). Il me semble qu’il faut 1 contexte et 1 thread avec plusieurs viewport ?
- Pour l’affichage de scènes différentes il me faudrait 1 contexte, 1 thread et 1 viewport pour chacune d’elle ?
- Pour finir de me perdre, certain raconte qu’il faut coder des fonctions de rendus dans un thread principale sans contexte. Puis dans la boucle de rendu des threads possédant un contexte opengl, appelé l’une des fonctions de rendu.
Vous l’aurez compris, je n’arrive pas à structurer mes contextes, viewports, threads et boucles de rendu dès l’instant ou je dois produire plus d’une image. Actuellement, j’ai tout dans ma classe window état dans un thread avec son contexte opengl.
Si vous avez l’âme pédagogue, je serais ravis d’être guider ! : ) Merci à vous.
Partager