la cueillette Open GL dans la programmation informatique est le processus consistant à déterminer quel objet dans un en trois dimensions (3D) scène se situe à un moment donné sur l'écran une fois que la scène est rendue. Il peut également se référer à la localisation d'objets multiples à un point ou à l'intérieur d'une boîte. Le plus souvent, la cueillette Open GL est utilisée pour déterminer quel objet 3D sur l'écran d'un utilisateur tente de sélectionner avec le curseur de la souris. Bien que cette opération peut paraître simple, il y a des subtilités dans la façon dont plusieurs Open GL rend une scène qui peut le rendre assez complexe. En outre, il y a des pépins intrinsèques de certaines cartes graphiques et les pilotes qui peuvent causer de la fonction Open GL cueillette à l'échec et le retour des résultats erronés.
Quand un utilisateur se penche sur une scène 3D sur un écran d'ordinateur, l'image résultante est connue comme un rendu de la scène. La scène est actuellement stocké dans la mémoire comme une collection de formes primitives ou des polygones, qui eux-mêmes ne sont que des ensembles de points 3D dans l'espace de la scène. L'ordinateur utilise les coordonnées du monde, qui sont parfois appelés des coordonnées absolues, pour exécuter les fonctions les plus élémentaires qui manipulent des objets dans la scène. Dans la plupart des applications, l'utilisateur est en mesure de manœuvrer la vue de la scène sous différents angles afin que les objets puissent être vus dans les différents points de vue. L'emplacement virtuel de l'utilisateur dans la scène est appelé angle de caméra ou position de la caméra.
La complexité de la cueillette Open GL provient de déterminer l'emplacement de la souris sur les deux dimensions (2D) à partir de l'écran une position éventuellement arbitraire et l'angle de la scène, la position de la caméra. En outre, parce que le rendu du point de vue de l'observateur humain est vraiment 2D, il n'est pas possible pour l'utilisateur de fournir la profondeur de la souris, cliquez à l'intérieur de la scène. La fonction Open GL cueillette résout ce problème complexe de deux manières.
La première est que, au lieu d'effectuer une série de calculs séparés pour traduire où le spectateur est abstraite et de trouver un objet dans la fenêtre de rendu, la fonction rend effectivement la scène comme il le fait en fonctionnement normal, à l'exception que le rendu utilisé pour la sélection n'est pas affichée, elle est uniquement utilisée pour calculer les positions correctes des objets. La différence est que, au lieu de rendre toute la zone qui sera visible par l'utilisateur, elle rend seulement la zone où se trouve la souris. Cela signifie que tous les objets rendus sont techniquement au point où le pointeur de la souris se trouve.
Le deuxième problème, à savoir n’avoir aucun moyen d'indiquer la profondeur d'une zone sélectionnée, est résolu en retournant tous les objets qui se trouvent sous coordonnées de la souris dans la scène. Le Open GL cueillette fonction retourne tous les objets dans un tableau avec quelle distance ils sont de l'emplacement du spectateur. Cela permet à un programme visant à trouver rapidement l'objet le plus proche si vous le souhaitez.
Une façon de visualiser Open GL cueillette est d'imaginer une ligne, appelée parfois comme un rayon dans la programmation 3D, en passant de la position du pointeur de la souris dans la scène et loin de l'emplacement du spectateur. Chaque objet de cette touche ray est ajouté à un tableau d'objets, ainsi que la façon dont elle est loin de l'observateur. C'est une explication très simple de la façon dont une forme d'Open GL ouvrages de prélèvement.
Une autre méthode de cueillette objet dans Open GL consiste à localiser un objet par la couleur, et il peut être beaucoup plus rapide. Cette méthode rend la scène, mais, au lieu d'appliquer l'éclairage et la texture des objets, ils sont plutôt rendus avec une seule couleur simple. Chaque objet ou groupe d'objets a sa propre couleur distincte. La scène est seulement rendue à la mémoire et ne s'affiche pas, si cela n'affecte pas ce que l'utilisateur voit. Au lieu de chercher les collisions entre les objets 3D, la couleur à la position du curseur de la souris est retournée, et que la couleur sera en corrélation avec un objet spécifique.