Détermination des surfaces cachées
Dans une image 3D générée par ordinateur, la détermination des surfaces cachées est le processus utilisé pour déterminer si une surface est visible d'un point de vue donné. Un algorithme de détermination des surfaces cachées est une solution au problème de visibilité, qui est l'un des problèmes majeurs de la 3D générée par ordinateur.
La détermination des surfaces cachées est nécessaire au rendu correct d'une image, les éléments invisibles ne devant pas être dessinés. Elle accélère aussi le temps de rendu, les objets cachés pouvant être enlevés de la chaîne graphique.
Il y a beaucoup de techniques pour déterminer quelles sont les faces cachées, et la principale différence entre chacune de ces techniques est la manière d'aborder le problème. Il y a plusieurs niveaux de détermination des surfaces cachées. Ces niveaux sont (les termes ont été conservés en anglais):
- Backface culling (élimination des faces cachées) : on détermine un « sens » pour chaque face (en général les points sont classés dans le sens des aiguilles d'une montre). Si ce sens n'est pas le bon, alors la face est cachée. Cela revient au même que de n'afficher que si la normale de la face « regarde » la caméra.
- Viewing frustum culling (élimination des objets hors du cône de vue) : le viewing frustum est la représentation du volume visible par la caméra. Naturellement, les objets en dehors de ce volume ne seront pas visibles, donc pas affichés. Les objets étant à cheval sur ce volume seront découpés en morceaux plus petits dans un processus appelé clipping (découpage), et les morceaux en dehors du volume ne seront pas affichés.
- Occlusion culling (élimination des objets cachés) : c'est le fait de déterminer quelles parties d'un objet sont cachées par un autre pour un point de vue donné. C'est un des problèmes fondamentaux du graphisme sur ordinateur, et beaucoup d'algorithmes de ce genre ont été développés. Le plus simple est l'algorithme du peintre. Le plus utilisé de nos jours est le Z-buffer. Ces deux méthodes opèrent sur des objets constitués de polygones, généralement. Le Raytracing (ou Lancer de rayon), qui permet de dessiner des surfaces paramétriques, essaye de modéliser le chemin de la lumière de la caméra à la scène. Le premier objet qui coupe le trajet de la scène sera affiché, et on passera au pixel suivant.
- Contribution culling (élimination des objets minuscules) : souvent, certains objets sont si lointains dans la scène qu'ils ne contribuent pas significativement au rendu de l'image finale. Ces objets sont abandonnés pour l'image courante si leur projection à l'écran est trop petite. Une autre technique consiste à utiliser un objet de moindre précision (moins de faces, donc moins de calculs) en fonction de l'éloignement de l'objet.
Même si la détermination des surfaces cachées est le plus souvent utilisée pour déterminer ce qui sera visible dans l'image finale, elle est aussi utilisée pour d'autres applications, par exemple la détermination des parties d'un objet qui sont dans une ombre, ou plus généralement si un objet est contenu dans un volume donné (joueur dans une salle ou voiture sur une route, par exemple).
Voir aussi
- Portail de l'informatique théorique
- Portail de l’imagerie numérique