Bonjour,
J'ai lu les 4 sources suivantes pour comprendre comment le tampon de sélection (Selection Buffer) était agencé :
http://www.opengl.org/sdk/docs/man/x...lectBuffer.xml
http://www.unknownroad.com/rtfm/grap...selection.html
http://www.glprogramming.com/red/chapter13.html
http://www.lighthouse3d.com/opengl/p...php?openglway3
1) Ce que j'ai cru avoir compris au début
Le tampon de sélection (Selection Buffer) est un tableau d'entiers non signés. Appelons-le SelecBuff pour la suite.
Alors lorsque l'on quitte le mode de sélection (GL_SELECT) pour repasser en mode de rendu (GL_RENDER) par exemple, le tableau SelecBuff ressemble à ceci :
SelecBuff[0] contient le nombre n de primitives intersectant le volume d'affichage, en gros le nombre d'éléments auquel j'ai donné un nom "qui se trouvent sous ma souris".
SelecBuff[1] contient la coordonnés par rapport à l'axe des z de l'élément de profondeur maximale;
SelecBuff[2] contient la coordonnés par rapport à l'axe des z de l'élément de profondeur minimale;
SelecBuff[3] nom1
SelecBuff[4] nom2
...
SelecBuff[n] nomn
où nom* sont les numéros/noms associé aux n primitives qui intersectent le volume d'affichage.
Je pensais alors qu'il suffisait de récupérer nom1 pour savoir quel élément est sous ma souris (avec un peu de chance c'est le seul).
2) Seulement voilà ce que je viens de comprendre
La structure décrite ci-dessous est un "Hit Record"... et tout ce que j'ai dit plus haut est faux! Quelqu'un pourrait-il m'expliquer l'exemple de Selection Buffer donné ici que je recopie ci-dessous :
Je pense que ce serait le moyen le plus simple pour que je comprenne!0 No names have been stored for the first hit
4.2822e+009 Minimum depth for first hit
4.28436e+009 Maximum depth for first hit
1 Number of names for the second hit
4.2732e+009 Minimum depth for second hit
4.27334e+009 Maximum depth for second hit
6 A single name for the second hit
2 Number of names for the third hit
4.27138e+009 Minimum depth for third hit
4.27155e+009 Maximum depth for third hit
2 First name for third hit
5 Second name for third hit
Merci d'avance pour votre aide,
Rémi.
Partager