IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Exemple de création d'un contexte opengl sans fenêtre


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 26
    Par défaut Exemple de création d'un contexte opengl sans fenêtre
    Bonjour à tous,

    Ma question est simple, savez vous comment créer un contexte openGL sous Windows sans créer une fenêtre?

    J'ai envie que l'ensemble de mes traitements se fassent offscreen (hors champ), du coup pour cela j'utilise une texture input, une output et un FBO pour stocker le résultat.

    Jusqu'à présent j'utilisais Glut ou WinMain pour la création de contexte mais cela nécessitait de créer une fenêtre quitte à n'y rien afficher dedans mais je ne souhaite plus afficher du tout!!!!

    Si vous avez une idée, ou un exemple, lien, tutoriel de ode je suis preneur ^^

    Souhaitant faire des calculs sur la GPU je regarde également la programmation GPGPU avec OpenGL afin de réaliser des traitements d'image mais je ne sais si cela est adapté.

    Merci d'avance!!!!

  2. #2
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 034
    Billets dans le blog
    12
    Par défaut
    Bonjour !
    Cette utilisation sans fenêtre, c'est pour une application console ?
    Parce que sinon tu as de toute façon une fenêtre (au moins la fenêtre principale) et tu as donc ce qu'il faut pour instancier un contexte.
    Sous Windows, tu peux aussi créer une fenêtre et ne pas l'afficher (en ne mettant pas le flag WS_VISIBLE).
    Sous Windows toujours, tu peux utiliser la fenêtre du bureau, via GetDesktopWindow
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 26
    Par défaut
    Salut,

    Oui c'est pour une application console.

    Merci déjà pour ta réponse.

    Voici le bout de code qui me permet de créer mon contexte OpenGL avec GLUT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	glutInit (&argc, argv);
    	glutCreateWindow("Ma fenêtre OpenGL");
    	glewInit();
    //	(*result) = n
    Et si jamais j'enlève la ligne glutCreateWindow("Ma fenêtre OpenGL"); mon programme plante dès qu'il rencontre une fonction openGL et ce que j'aimerais c'est les utiliser sans avoir besoin d'afficher une fenêtre OpenGL même si l'affichage n'est que temporaire.

    Je veux réaliser des traitements off screen dans mes textures et stocker ensuite le résultat dans mon Fbo.

  4. #4
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 034
    Billets dans le blog
    12
    Par défaut
    Un de tes soucis vient du fait que tu utilises GLUT qui crée obligatoirement une fenêtre.
    Tu dois donc te passer de cette API si tu veux faire ce que tu veux.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 26
    Par défaut
    Ok merci, je vois et je m'en doutais un peu.

    Bon je vais faire avec dans ce cas, et dis moi rien à voir avec le topic mais sais tu comment réaliser des calculs dans une texture puis stocker le résultat dans un framebuffer?

    Je ne trouve rien de concluant sur le net, j'ai juste appris que cela nécessite d'effectuer des traitements mathématiques avec notre GPU dans les textures puis grâce à glReadPixels() on peut sauvegarder le résultat dans notre framebuffer. (Pas sûr!!!!)

  6. #6
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 034
    Billets dans le blog
    12
    Par défaut
    En utilisant les compute shaders, je ne l'ai jamais fait, mais je pense que c'est le plus adapté à ton cas.

    Sans passer par les compute shaders, je vais avancer une théorie que je n'ai jamais appliquée et que j'établis là maintenant (et je ne sais même pas si c'est valide, du coup).
    - Tout d'abord, créer la texture d'entrée et la texture de sortie, aux mêmes dimensions.
    - Créer un FBO auquel tu vas attacher la texture de sortie
    - Créer un shader qui va prendre la texture d'entrée.
    - Pour ce shader, le vertex shader est bidon (voire pas nécessaire), les calculs seront effectués dans le fragment shader.
    - Définir un viewport orthographique aux dimensions identiques à celles des textures, afin de pouvoir dire "un fragment de mon pixel shader correspond à un pixel de ma texture".
    - Effectuer le rendu.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/02/2011, 16h39
  2. Context opengl, création / destruction
    Par shenron666 dans le forum OpenGL
    Réponses: 3
    Dernier message: 12/10/2007, 10h39
  3. OpenGL sans fenetre OpenGl
    Par ihuop dans le forum OpenGL
    Réponses: 10
    Dernier message: 20/04/2005, 14h33
  4. opengl sans toolkit
    Par Vermin dans le forum OpenGL
    Réponses: 9
    Dernier message: 03/02/2004, 14h44
  5. Tore en OpenGL sans utiliser glut
    Par lefort dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 20/11/2002, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo