Skip to main content

Qu'est-ce qu'un OpenGL Ombre?

Une bibliothèque graphique ouverte (OpenGL ) Shadow est une approximation visuelle dans un OpenGL Reg en trois dimensions (3D);Scène de la façon dont une ombre serait jetée dans la vraie vie dans des conditions d'éclairage similaires.Les ombres sont une caractéristique visuelle complexe à implémenter dans OpenGL , en grande partie parce qu'il n'y a pas de support inné pour le casting des ombres dans une scène.Il existe plutôt une variété de techniques qui peuvent être utilisées pour créer des ombres à partir des objets et de la géométrie d'une scène en utilisant divers outils, tels que les différents tampons disponibles, shaders et, dans certains cas, des extensions qui donnent accès à des fonctionnalités spéciales sur certains graphiquescartes.Dans la plupart des cas, la qualité, la précision et la vitesse d'OpenGl Le rendu de l'ombre est directement lié à la puissance de traitement et à la mémoire du matériel graphique présent dans un ordinateur ou un appareil.Certaines des méthodes les plus populaires de mise en œuvre d'un OpenGL Les ombres incluent des volumes d'ombre, le mappage de l'ombre et le traçage des rayons.

Création d'une application qui a OpenGl Le soutien fantôme nécessite des connaissances mathématiques et une compréhension approfondie de la façon dont OpenGl travaux.OpenGl est largement utilisé pour créer des scènes 3D dynamiques et rendues en temps réel, de sorte que les algorithmes utilisés pour créer des ombres doivent non seulement être optimisés pour la vitesse, mais doivent également être soigneusement mesurés pour leur consommation de ressources et toutes les perturbations qui pourraient êtrecausé dans le pipeline graphique utilisé pour le rendu.Pour ces raisons, la méthode la plus élémentaire pour créer une ombre, appelée traçage des rayons, n'est souvent pas pratique pour les scènes 3D complètes, car cela peut prendre très longtemps.

Le traçage des rayons suit essentiellement une ligne imaginaire, ou rayon, de la visualisationplan ou position de la caméra à travers une scène à la surface d'un objet, puis calcule la couleur de la surface en fonction de la position d'une ou plusieurs sources lumineuses et autres facteurs.Pendant le processus de rasterisation, où la scène 3D est attirée par une surface bidimensionnelle (2D) afin qu'elle puisse être affichée, le processus de traçage des rayons doit être effectué sur chaque pixel qui est dessiné et, en particulier avec des textures ou d'autresPropriétés de surface, pourraient avoir besoin d'évaluer les mêmes pixels plusieurs fois.Cela signifie que le traçage des rayons en temps réel, bien qu'il rendrait avec précision les ombres, n'est généralement pas pratique.

Une autre méthode qui peut être utilisée pour créer un OpenGL reg;Shadow est connu sous le nom de cartographie de l'ombre.Cette méthode utilise la profondeur ou le tampon de pochoir pour rendre une scène de l'angle de la source lumineuse comme une série de distances de la source lumineuse aux surfaces de différents objets dans la scène.La scène est ensuite rendue une deuxième fois à partir de l'angle de vision correct, en vérifiant si chaque pixel se situe dans une certaine plage de distance dans le tampon, indiquant si le pixel est allumé ou ombré.L'utilisation du mappage de l'ombre peut être à forte intensité de mémoire et, avec des scènes qui ont plus d'une source lumineuse, peuvent impliquer de fabriquer plusieurs cartes à partir de plusieurs angles.

Les volumes d'ombre sont un moyen de créer un OpenGL Shadow qui est plus précis que certaines autres méthodes, mais il présente ses propres problèmes.Un volume d'ombre est essentiellement un morceau de géométrie invisible dans une scène qui s'étend de la surface éclairée d'un objet loin de la source lumineuse.Ce volume peut être vérifié par rapport à d'autres objets pour voir s'ils tombent dans l'ombre de la surface à partir de laquelle le volume est originaire.Cette procédure peut être très complexe et finalement créer des artefacts visuels lorsqu'ils sont optimisés pour la vitesse.