Qu'est-ce qu'une langue d'ombrage OpenGL®?
Le langage d'ombrage OpenGL® (GLSL) est un langage de programmation informatique conçu spécifiquement pour manipuler et contrôler les graphiques tridimensionnels (3D) pendant le processus de rendu directement dans l'unité de traitement graphique (GPU) d'une carte graphique à l'aide de bibliothèques OpenGL®. Essentiellement, le langage OpenGL® Shading offre aux programmeurs un accès direct à la géométrie 3D et le rendu au niveau le plus bas possible sans avoir à rédiger des routines de langage d'assemblage pour s'interfacer avec le matériel GPU. Grâce à l'utilisation du langage d'ombrage OpenGL®, des effets tels que les textures et la géométrie générées par la procédure peuvent être implémentées et optimisées directement dans le GPU, accélérant le processus de rendu. Il permet également aux fonctions plus complexes, telles que l'animation ou les effets spéciaux, d'être implémentées efficacement sans la surcharge de code de niveau supérieur. Le langage d'ombrage est compilé par le GPU en code exécutable, ce qui signifie que des implémentations et des compilateurs spécifiques peuvent être conçus pourCartes graphiques individuelles, augmentant les gains de performances de l'utilisation des différents shaders.
À toutes fins pratiques, le langage d'ombrage OpenGL® est un langage de programmation pleinement implémenté qui imite la syntaxe du langage de programmation C de presque toutes les manières, à l'exception des variables de type pointeur et de certaines directives pré-atrocesseurs. Les fonctions définies par l'utilisateur, les variables et les instructions de ramification et de boucle logiques sont toutes prises en charge, permettant à l'écriture de programmes pleinement réalisés en utilisant uniquement le langage du shader et en fournissant un niveau d'abstraction qui est portable sur différents systèmes d'exploitation et configurations matérielles. Une fois le programme Shader terminé, il est transmis au GPU, où il est compilé et exécuté au besoin pendant le processus de rendu.
Un programme écrit dans la langue d'ombrage OpenGL® est finalement transmis au GPU, où il peut être compilé par HaRDWare ou pilotes produits par le fabricant de la carte graphique. Cela signifie que certaines instructions utilisées à l'intérieur du langage peuvent avoir leur bytecode compilé réel optimisé pour fonctionner efficacement avec les fonctionnalités matérielles spécifiques d'une carte graphique spécifique. Cela augmente la vitesse d'exécution et peut étendre les fonctionnalités de base pour inclure des options de rendu spéciales et des effets qui pourraient être uniques à une seule carte graphique.
Il existe trois types de shaders que le langage d'ombrage OpenGL® peut être utilisé pour écrire. Le premier est connu sous le nom de vertex shader et est conçu pour effectuer des opérations complexes sur des sommets individuels, tels que la traduction, la mise à l'échelle ou la texture d'un point dans l'espace. Le second est un shader de géométrie et peut être utilisé pour ajouter, retirer ou manipuler autrement les polygones avant d'être finalement rastérisés. Les Shaders Fragment, également appelés Shaders Pixel, peuvent être écrits pour effectuer des opérations sur des points de la scène 3D car ils sont traduits en un plat à deux dimensions (2D) plat (2D)Image pour l'affichage sur un écran, comme les effets d'éclairage ou les distorsions.