Glu.PickMatrix (gb.opengl.glu)
Static Sub PickMatrix ( X As Float, Y As Float, DelX As Float, DelY As Float, Viewport As Integer[] )
Définit une région de recopie.
Paramètres
- x, y
-
Spécifie le center d'une région de recopie en coordonnées fenêtre.
- delX, delY
-
Spécifie la largeur et la hauteur, respectivement, de la région en coordonnées fenêtre.
- viewport
-
Spécifie le port d'affichage (comme pour un appel à Gl.GetIntegerv).
Description
Glu.PickMatrix crée une matrice de projection qui peut être utilisée pour restreindre le tracé à une petite région du port d'affichage.
C'est typiquement utile pour déterminer quels objets sont à tracer près du curseur.
Employez
Glu.PickMatrix pour restreindre le tracé à une petite région du port d'affichage.
Puis, entrez en mode sélection (avec
Gl.RenderMode) et refaite un rendu de la scène.
Toutes les primitives qui auraient été tracées au voisinage du curseur sont identifiées et stockées dans le tampon de sélection.
La matrice crée par
Glu.PickMatrix est multipliée par la matrice en cours comme si Gl.MultMatrix était appelé avec la matrice générée.
Pour utiliser efficacement la matrice de recopie générée, appelez d'abord
Gl.LoadIdentity pour charger une matrice identité sur la pile matricielle de perspective.
Puis appelez
Glu.PickMatrix, et, finalement, appelez une commande (comme
Glu.Perspective) pour multiplier la matrice perspective par la matrice de recopie.
Quand on emploie
Glu.PickMatrix pour copier des NURBS, il faut faire attention de désactiver la propriété NURBS
de
Glu.AUTO_LOAD_MATRIX. Si Glu.AUTO_LOAD_MATRIX n'est pas désactivée, tout rendu de surface NURBS est subdivisé différemment avec la matrice de copie qu'elle ne le serait sans la matrice de recopie.
Exemple
Quand on fait un rendu de scene ainsi :
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(...);
glMatrixMode(GL_MODELVIEW);
draw la scène
une portion du pot d'affichage peut être sélectionné comme région de recopie de cette manière :
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPickMatrix(x, y, width, height, viewport);
gluPerspective(...);
glMatrixMode(GL_MODELVIEW);
Tracé de la scène
Voir aussi
Voir documentation originale sur le site web OpenGL