2010-11-01 9 views
5

Quel est le moyen le plus efficace d'identifier les sommets visibles d'un point de vue particulier?Identifier les sommets visibles dans OpenGL

J'ai une scène composée de plusieurs modèles 3D. Je souhaite attacher un identifiant à chaque sommet (ModelID, VertexID) puis générer des images 2D à partir de différents points de vue et générer pour chaque image une liste des identifiants de sommets visibles (essentiellement pour une application de traitement d'image). Initialement, je pensais effectuer un produit scalaire entre un vertex normal et le vecteur de vue de caméra pour déterminer si le vertex fait face à la caméra ou non, mais si le modèle est occlus par un autre objet, ce test ne fonctionnerait pas.

Merci d'avance

+0

GluProject serait ce que vous cherchiez? Mappage des coordonnées de l'objet aux coordonnées de la fenêtre? – Jim

+0

Quelle version d'OpenGL ciblez-vous? Toujours inclure cette information. En outre, avez-vous besoin de savoir quels sommets qui passent le test, ou avez-vous juste besoin du nombre? –

+0

Je cible le profil de base OpenGL 3.1. La réponse fournie est tout ce dont j'avais besoin, merci. – tat0

Répondre

3
  1. Disable tout l'éclairage/texturation
  2. rendu géométrie (GL_TRIANGLES) pour remplir
  3. rendu à nouveau votre géométrie Z-buffer (GL_POINTS), la sélection d'une autre couleur RVB pour chaque vertex, qui correspond à vos ID de modèle/vertex
  4. Relisez le framebuffer et analysez les couleurs que vous avez utilisées précédemment, en les mappant vers vos ID de modèle/vertex.

Pas très rapide, mais cela devrait fonctionner.

+0

Super, c'est un bon truc et ça marche bien. La vitesse n'est pas très importante dans ce cas. Merci de votre aide. – tat0

Questions connexes