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 :

Récupérer les images de différents points de vue en temps réel


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Par défaut Récupérer les images de différents points de vue en temps réel
    Bonjour,

    J'aimerais bien savoir comment faire pour récupérer les valeurs des pixels, en temps réel, (donc les méthodes lentes sont à bannir) des images de différentes caméras placées à différents endroits de la scène, ceci afin de les restituer ensuite dans des minis écrans (situés par exemple en bas à droite de la fenêtre d'affichage).

    Merci d'avance

  2. #2
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Salut:

    ce que tu cherches à faire s'appelle du "offscreen rendering": tu vas faire un rendu depuis chaque camera, mais qui sera sauvegardé dans une texture (par exemple) au lieu d'être affiché.

    Il y a plusieurs méthodes, qui dépendent avant tout de ta carte graphique:
    - sur les plus récentes: FBO (Frame Buffer Object). D'expérience, c'est la méthode la plus simple et aussi la plus rapide. Si ta carte le supporte n'hesite pas et va faire un tour sur http://www.gamedev.net/reference/art...rticle2331.asp où c'est très bien expliqué

    - si les FBOs ne sont pas supportés, tu peux essayer avec les pBuffer (Pixel Buffer), qui sont en qq sorte l'ancetre des FBOs. C'est un peu plus lourd a mettre en place, et a priori plus lent aussi. Regarde là: http://www.codesampler.com/oglsrc/oglsrc_7.htm
    NOTE: apparement certaines cartes supportent l'extension pBuffer (d'apres les extension viewer) mais plantent quand même à l'execution, cf mon post [PBUFFER][Intel 945G]. A mon avis avec une NVidia ou ATI doit pas y avoir de probleme

    - Si rien de tout ca marche il faut passer par des trucs compliqués que je n'ai pas encore réussi à mettre en place, genre http://msdn.microsoft.com/en-us/library/ms970768.aspx
    (d'ailleurs si qq'un connait un tutorial là dessus qui explique un peu plus clairement je suis preneur!)

    Pour résumer: si tu peux utiliser les FBOs ne cherche pas ailleurs!

  3. #3
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 573
    Par défaut
    surtout que les solution pBuffer et DIB ne sont pas portables
    à noter aussi que le top est tout de même d'effectuer le rendu dans la résolution à laquelle il apparaitra
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  4. #4
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Par défaut
    Ok je vais regarder ça, merci bcp !

  5. #5
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Par défaut
    Je viens de regarder le tuto sur les fbo. Il convient à mon premier besoin, à savoir faire un rendu de la scène sous des angles différents. Maintenant, pour une autre utilisation, j'aimerais savoir si il est possible de récupérer les composantes RGB de chaque pixel de la scène à chaque frame pour un autre usage car j'ai vu qu'apparemment ce n'est pas possible avec les fbo (en utilisant si possible une méthode rapide, même si je doute que ça soit possible).

    Merci d'avance

  6. #6
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Salut,

    si tu utilises des shaders, le fragment shader va être excécuté pour chaque pixel et tu pourras récupérer la valeur RGB de chacun (en fait ton shader est sensé assigner une couleur à chaque pixel, couleur qu'il récupère par interpolation des couleurs données par vertex).

    sans shaders, il me semble (ie: je n'ai pas encore essayé) que les PBOs (Pixel-buffer-objects) te permettent de faire ca aussi. Regarde par là http://www.songho.ca/opengl/gl_pbo.html

Discussions similaires

  1. Récupérer les images d'un div
    Par PierrotY dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/12/2006, 11h03
  2. Réponses: 12
    Dernier message: 25/06/2006, 23h24
  3. [VB6] Récupérer les images à partir d'une ImageList
    Par mbzhackers dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 30/05/2006, 15h46
  4. Récupérer les images d'un site web
    Par [Silk] dans le forum Web & réseau
    Réponses: 2
    Dernier message: 15/03/2006, 12h00
  5. [GRAPHIQUE] Récupérer les coordonnées d'un point
    Par freud dans le forum Composants VCL
    Réponses: 6
    Dernier message: 29/09/2005, 12h31

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