L'Éditeur de Shaders est une des nouveautés de Firefox 27.
L'Éditeur de Shaders permet de voir et d'éditer les vertex shaders et les fragments shaders utilisés par WebGL
WebGL est une API JavaScript qui sert à afficher des graphismes 3D et 2D interactifs dans le navigateur sans plugin. Avec WebGL deux programmes appelés "Shaders" sont générés, ceux-ci sont appelé dans le niveau approprié du processus d’affichage d'OpenGL Le premier shader est un vertex shader, qui fournit les coordonnés de chaque vertex qui doit être affiché. Le deuxième est un fragment shader qui fournit la couleur de chaque pixel qui doit être affiché.
Ces shaders sont codés dans le langage OpenGL Shading, ou GLSL. En WebGL, ces shaders peuvent être intégrés dans une page de différentes manières : sous forme de texte directement codés dans le code source JavaScript, sous forme de fichier séparé intégré avec les balises <script>
, ou récupérés depuis le serveur sous forme de texte. Le code JavaScript en cours d’exécution dans la page envoie alors les shaders à la compilation en utilisant les APIs WebGL, et ils sont ensuite exécutés sur le GPU (unité de processeur graphique) de l'appareil.
Avec l'Éditeur de Shaders il est possible d’examiner et d'éditer la sources de vertex shaders et de fragment shaders.
Voici une autre vidéo montrant comment utiliser l'Éditeur de Shader pour des applications complexes (dans ce cas, la démo l'Unreal Engine) :
Ouvrir l'Éditeur de Shaders
L'Éditeur de Shaders est désactivé par défaut. Pour l'activer, il faut ouvrir les paramètres de la Boite à Outils et cocher "Éditeur de shaders" dans la section "Outils de développement par défaut". L'Éditeur de Shaders apparaitra alors dans la barre d'outils de la Boite à Outils. Cliquez dessus pour ouvrir l'Éditeur de Shaders.
Au début il y a qu'une fenêtre vide avec un bouton demandant de recharger la page :
Pour commencer, il faut charger une page qui crée un contexte WebGL et charge un programme dedans. Les captures d'écran ci-dessous sont tirées de la démo de l'Unreal Engine.
Une fenêtre apparait alors divisée en trois panneaux : une liste de tous les programmes GLSL sur la gauche, le vertex shader en cours du programme sélectionné au milieu et le fragment shader en cours du programme sélectionné sur la droite :
Gérer les programmes
Le panneau de gauche liste tous les programmes utilisés par le contexte WebGL. En survolant un élément dans la liste, la figure géométrique affichée par le programme est coloré en rouge vif :
Cliquer sur l’icône en forme d'œil sur la gauche d'un programme désactivera ce programme. Ceci est pratique pour se concentrer sur certains shaders ou pour cacher des éléments qui se superposent :
Si vous cliquez sur un programme, ses vertex et fragment shaders sont affichés dans les deux autres panneaux et vous pouvez les modifier.
Modifier des shaders
Cliquer sur un programme affichera son vertex shader (panneau du milieu) et son fragment shader (panneau de droite), il sera alors possible de les modifier.
Les changements réalisés seront visibles lors du ré-affichage du contexte WebGL (par exemple lors de la prochaine frame). Il est par exemple possible de modifier des couleurs :
L'éditeur met en surbrillance les erreurs dans le code :
Survoler la croix affiché à coté d'une ligne contenant une erreur montrera plus de détails sur le problème :