AMIR

samedi 26 avril 2014

Qu'est-ce que OpenGL Picking?

Open GL  ramasser en programmation informatique est le processus de détermination de quel objet dans une scène en trois dimensions (3D) est situé à un point donné sur l'écran une fois la scène est rendue. Il peut également se référer à la localisation de plusieurs objets à un point ou à l'intérieur d'une boîte. Le plus souvent, la cueillette Open GL  est utilisée pour déterminer ce que l'objet 3D sur l'écran d'un utilisateur tente de sélectionner avec un curseur de la souris. Bien que cette opération puisse sembler simple, il ya plusieurs subtilités dans la façon dont Open GL  rend une scène qui peut le rendre assez complexe. En outre, il ya des défauts intrinsèques de certains pilotes et cartes graphiques qui peuvent causer l'Open GL fonction cueillette à échouer et renvoyer des résultats erronés.

Lorsque l'utilisateur regarde une scène 3D sur un moniteur 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 ou des polygones primitifs, qui eux-mêmes sont seulement des ensembles de points 3D dans l'espace de la scène. L'ordinateur utilise les coordonnées monde, qui sont parfois appelés des coordonnées absolues, pour la plupart des fonctions de base qui manipulent des objets dans la scène. Dans la plupart des applications, l'utilisateur est capable de manœuvrer la vue de la scène sous différents angles afin que les objets puissent être vues dans des perspectives différentes. L'emplacement virtuel de l'utilisateur dans la scène est appelée la position de l'angle de la caméra ou un appareil photo.
Annonce
La complexité de l'Open GL  provient de cueillette déterminer l'emplacement de la souris sur l'(2D) l'écran à deux dimensions à partir d'une position arbitraire et éventuellement l'angle intérieur 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 est impossible pour l'utilisateur de fournir la profondeur de la souris à l'intérieur de la scène. La cueillette  fonction Open GL résout ce problème complexe de deux façons.

Le premier est que, au lieu d'effectuer une série de calculs séparés pour traduire où le spectateur est abstrait, et ensuite trouver un objet dans la fenêtre de rendu, la fonction rend effectivement la scène comme il le fait habituellement lors de l'utilisation, à l'exception que le rendu utilisé pour la sélection ne s'affiche pas, il est seulement utilisé pour calculer les positions correctes des objets. La différence est que, au lieu de rendre l'ensemble de la région qui serait visible à l'utilisateur, elle ne rend la zone où se trouve la souris. Cela signifie des objets rendus sont techniquement au point où le pointeur de la souris se trouve.

Le deuxième problème, à savoir n'ayant aucun moyen pour indiquer la profondeur d'une zone sélectionnée, est résolue en retournant tous les objets qui sont sous les coordonnées de la souris sur la scène. Le Open GL ®fonction cueillette renvoie tous les objets dans un tableau avec quelle distance ils sont entre l'emplacement de l'observateur. Cela permet à un programme pour trouver rapidement l'objet le plus proche si vous le souhaitez.

Une façon de visualiser la cueillette Open GL  est d'imaginer une ligne, parfois appelé 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 de l'observateur. Chaque objet ce rayon touche est ajouté à un tableau d'objets, ainsi que la façon dont elle est loin de la visionneuse. C'est une explication très simple de la façon dont une forme d'Open GL  ramasser œuvres.

Une autre méthode de cueillette objet dans OpenGL  consiste à localiser un objet en couleur, et il peut être beaucoup plus rapide. Cette méthode rend la scène, mais, au lieu d'appliquer l'éclairage et de la texture aux objets, ils sont au contraire 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 des collisions entre les objets 3D, la couleur à la position du curseur de la souris est renvoyée à la place, et que la couleur sera corrélée à un objet spécifique.