Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3785 connectés 

 


Dernière réponse
Sujet : [OpenGl] Problème actualisation du tampon de profondeur
1 Nainconnu Bonjour à tous,
Je travail actutellement sur le module de visualisation 3d d'un logiciel d'imagerie médicale qui utilise openGl, couplé avec le widget GtkGlArea. L'une des fonctionalités liées au module 3d de ce logiciel est la possibilié de déplacer un curseur (une croix) au sein de la scène 3d en cliquant sur la molette de la souris. Par ailleurs le comportement de ce curseur a été codé de telle sorte que si on clique dans le "vide", le curseur disparait, sinon il reste "collé" à la surface de l'objet.
 
J'en viens à mon problème :
Si l'on déplace (lentement) le curseur en gardant la molette enfoncée, celui ci ce déplace bien, mais on constate 2 problèmes majeurs :
 
    * la taille du curseur ce modifie -> les segments de la croix augmentent en taille
    * il ne colle plus à la surface -> on peut se déplacer dans le vide.
 
J'ai volontairement omis de balancer des lignes de code pour d'abord vous décrire le problème de manière globale. Personnellement je vois 2 hyposthèse envisageables :
 
   1. problème de mise à jour du tampon de profondeur, car la fonction : glReadPixels(x, y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &prof), associe une valeur différente de 1 à prof. Et mon curseur se retrouve dans "les airs" et "le vide" -> la profondeur est erronée
 
  2. problème de réaffichage car mon curseur (une croix) grandit quand je le déplace
 
Ces 2 phénomènes se produisent UNIQUEMENT quand je déplace mon curseur lentement (molette préssée+déplacement lent).
 
Comme vous l'avez surement devinez je travail sur un code qui n'est pas de moi, et je suis en train d'apprendre OpenGl sur le tas. Je n'ai donc que les connaissances de bases en la matière et encore , mais je suis en train d'y remédier. ;)  
 
Merci d'avance pour ceux qui prendront le temps de répondre

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
1 Nainconnu Bonjour à tous,
Je travail actutellement sur le module de visualisation 3d d'un logiciel d'imagerie médicale qui utilise openGl, couplé avec le widget GtkGlArea. L'une des fonctionalités liées au module 3d de ce logiciel est la possibilié de déplacer un curseur (une croix) au sein de la scène 3d en cliquant sur la molette de la souris. Par ailleurs le comportement de ce curseur a été codé de telle sorte que si on clique dans le "vide", le curseur disparait, sinon il reste "collé" à la surface de l'objet.
 
J'en viens à mon problème :
Si l'on déplace (lentement) le curseur en gardant la molette enfoncée, celui ci ce déplace bien, mais on constate 2 problèmes majeurs :
 
    * la taille du curseur ce modifie -> les segments de la croix augmentent en taille
    * il ne colle plus à la surface -> on peut se déplacer dans le vide.
 
J'ai volontairement omis de balancer des lignes de code pour d'abord vous décrire le problème de manière globale. Personnellement je vois 2 hyposthèse envisageables :
 
   1. problème de mise à jour du tampon de profondeur, car la fonction : glReadPixels(x, y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &prof), associe une valeur différente de 1 à prof. Et mon curseur se retrouve dans "les airs" et "le vide" -> la profondeur est erronée
 
  2. problème de réaffichage car mon curseur (une croix) grandit quand je le déplace
 
Ces 2 phénomènes se produisent UNIQUEMENT quand je déplace mon curseur lentement (molette préssée+déplacement lent).
 
Comme vous l'avez surement devinez je travail sur un code qui n'est pas de moi, et je suis en train d'apprendre OpenGl sur le tas. Je n'ai donc que les connaissances de bases en la matière et encore , mais je suis en train d'y remédier. ;)  
 
Merci d'avance pour ceux qui prendront le temps de répondre

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)