Comment font des logiciels tel qu'AutoCAD, Cabri-Géomètre et autres pour savoir à quel(s) objet(s) appartient un pixel sur l'écran?
Il peut y avoir plusieurs techniques envisageables, ça dépend comment tu stockes tes objets...
Si tes objets sont contenus dans une liste, en vrac, sans partitionnement ni autre critère permettant de simplifier la recherche, alors tu devras parcourir bêtement tes objets pour tester s'il y en a un qui est positionné là où l'utilisateur aura cliqué...

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Sachant que tu peux avoir la position 3D du point cliqué (genre, sous OpenGL, glunproject)
Bien entendu, combiner cela avec une partition (octree etc.) permettra d'accélérer considérablement ta recherche de l'objet (si tu as bcp d'objets à l'écran)
Qu'est-ce que tu veux faire comme programme ?
Quels sont les objets que tu manipules ?

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Tiens en passant, quelqu'un sait s'il y a un impact en terme de performances (temps et mémoire) à utiliser un octree plutôt qu'une séparation binaire et inversement ?
Instinctivement, le comportement asymptotique devrait être le même, mais on a rarement une inifnité d'objets dans un monde.
un octree est une facon de partitionner un espace (c'est simplement ca)
tu as une scene avec des objets et tout ton espace est partitionné (suivant un octree)
Ce sont des objets statiques.
Finalement j'ai opté pour le plus simple, je n'ai pas énormément d'objets et la recherche est plutôt rapide.
J'ai créé une structure contenant un pointeur vers une fonction qui retourne vrai ou faux si le point choisit appartient à l'objet.
Cette fonction fait une simple résolution d'équation (y=ax+b pour les lignes, (x − a)² + (y − b)² = r² pour un cercle, ...).