Utilisation des shaders

En bref

Les shaders sont de petits programmes graphiques qui s'exécutent sur votre GPU et permettent de créer des effets visuels génératifs en temps réel. Dans le domaine du vidéo mapping, ils offrent des textures infinies et dynamiques sans nécessiter de fichiers vidéo volumineux. Grâce à des logiciels tels que HeavyM, vous pouvez facilement importer des formats standard comme l'ISF et manipuler des visuels génératifs sans avoir à écrire la moindre ligne de code.

Qu'est-ce qu'un shader ?

Un shader est un type de programme informatique spécialement conçu pour s'exécuter sur un processeur graphique (GPU). Le terme ‘ shader ’ vient de ‘ shade ’ (ombre), car l'une des premières utilisations des shaders consistait à simuler des ombres et des reflets dans les graphismes 3D. Cependant, aujourd'hui, Les shaders sont utilisés pour une grande variété de tâches de traitement graphique, de l'application de textures et de couleurs à la création d'effets spéciaux complexes.

Shaders fonctionnent à un niveau très bas, ce qui signifie qu'ils disposent d'un contrôle direct et précis sur chacun des pixels qui composent une image ou une vidéo. Ils peuvent manipuler les données d'image très rapidement avec un minimum de ressources, ce qui les rend particulièrement utile pour les applications graphiques en temps réel, tels que les jeux vidéo, la réalité virtuelle et le vidéo mapping.

Les différents types de shaders

Il existe différents types de shaders, notamment les shaders de sommets, qui manipulent les points de données 3D (sommets), les shaders de géométrie, qui génèrent de nouvelles formes à partir de ces points, et les shaders de fragments (également appelés shaders de pixels), qui déterminent la couleur finale de chaque pixel à l'écran. Les shaders sont généralement écrits dans des langages de programmation spécialisés, tels que GLSL (OpenGL Shading Language) ou HLSL (High-Level Shading Language) pour DirectX.

Pixel shaders ou Fragment shaders

Le shader de fragment ou shader de pixel est un shader conçu pour calculer individuellement la couleur de chaque pixel. Elle prend en entrée les données de chaque pixel de l'image (position, coordonnées de texture, couleur) et renvoie sa couleur.

Ce sont ces shaders qui vous intéresseront le plus dans le cadre de l'utilisation de HeavyM. Ils sont généralement .FRAG ou .FS dans le cas du format ISF. Le format ISF définit une norme pour les fragments GLSL shaders, ce qui facilite leur interprétation par des applications interactives.

Les Vertex shaders

Les shaders de sommets servent à transformer les sommets en pixels.

Ce sont .Fichiers .VS qui accompagnent parfois le pixel shader, portent le même nom et doivent se trouver dans le même dossier.

Shaders d'effets de forme HeavyM

Lorsque vous cliquez sur les icônes rouges situées à droite de l'interface HeavyM, vous accédez à des catégories d'effets qui s'adaptent automatiquement aux formes dessinées. Ces effets sont liés aux groupes du panneau des calques situé à gauche. Toutes les formes d'un même groupe partagent la même apparence. Pour appliquer des effets différents à des formes différentes, vous devez créer des groupes supplémentaires et y ajouter des formes.

Il n'est actuellement pas possible d'ajouter ou de modifier le code des shaders d'effets existants dans cette catégorie.

Shaders de génération d'images

Vous pouvez ajouter des shaders de génération d'images en tant que sources dans le panneau accessible via l'icône blanche située dans la barre d'outils verticale à droite. Ces shaders nécessitent la création d'un lecteur pour être affichés. Ensuite, associez la source au lecteur en cliquant sur l'icône en forme de cible. Les shaders de génération d'images n'ont pas de durée par défaut, car il s'agit de programmes qui s'exécutent en boucle. Vous pouvez toutefois ajuster la durée d'affichage de la source.

Il n'est actuellement pas possible d'ajouter ou de modifier le code des shaders d'effets existants dans cette catégorie.

Shaders de génération d'images

Vous pouvez ajouter des shaders de génération d'images en tant que sources dans le panneau accessible via l'icône blanche située dans la barre d'outils verticale à droite. Ces shaders nécessitent la création d'un lecteur pour être affichés. Ensuite, associez la source au lecteur en cliquant sur l'icône en forme de cible. Les shaders de génération d'images n'ont pas de durée par défaut, car il s'agit de programmes qui s'exécutent en boucle. Vous pouvez toutefois ajuster la durée d'affichage de la source.

Traitement des shaders sur les joueurs

Vous avez la possibilité d'appliquer des effets de traitement d'image au lecteur. Pour ce faire, sélectionnez le lecteur et ajoutez des effets dans le panneau « Propriétés » situé en bas à gauche à l'aide du bouton « + ». Les effets sont ajoutés les uns après les autres. Chaque lecteur est indépendant ; par conséquent, les effets source et de traitement varieront d'un lecteur à l'autre, même si ceux-ci appartiennent au même groupe.

Importer ou créer des shaders

Où trouver des shaders ?

Il n'est pas nécessaire de savoir programmer pour utiliser les shaders avec HeavyM. En plus de la bibliothèque déjà intégrée au logiciel, Il existe des plateformes où l'on peut trouver de nouveaux shaders. sans avoir à les créer vous-même. La communauté des créateurs de shaders connaît une croissance rapide, et vous pouvez souvent utiliser les œuvres qu'ils partagent pour des projets à but non commercial.

Pour trouver des shaders .FS : https://www.interactiveshaderformat.com/

Pour trouver les shaders .FRAG : http://glslsandbox.com/ et https://www.shadertoy.com/

Remarque : les fichiers .FRAG ne sont pas pris en charge par HeavyM. Ils doivent être convertis au format .ISF ; vous trouverez ci-dessous la procédure à suivre pour effectuer cette conversion.

Veillez à vérifier les droits d'utilisation stipulés dans la licence, généralement indiqués au début du code du shader. En l'absence d'indications spécifiques, les droits d'auteur s'appliquent par défaut ; nous vous recommandons donc vivement de consulter l'auteur si vous avez l'intention d'utiliser le shader à des fins commerciales.

Importation de shaders

Comme indiqué, Il existe deux grandes catégories de shaders dans HeavyM : les shaders de génération et les shaders de traitement. HeavyM vous permet de combiner facilement des shaders issus de ces deux catégories. HeavyM propose des shaders par défaut dans les onglets « Bibliothèque » de chaque fenêtre de sélection de shaders. Tous ces shaders sont au format .FS et respectent donc la norme ISF. Pour importer vos propres shaders dans l'onglet « Mes shaders », Ils doivent respecter cette norme. Ainsi, les paramètres de vos shaders peuvent être facilement modifiés depuis l'interface de HeavyM.

Vous souhaitez importer d'autres formats de shaders dans HeavyM ? La conversion des shaders est très simple grâce à ces outils :

Développer vos propres shaders

Pour créer vos propres shaders, nous vous recommandons d'utiliser directement le format ISF afin de garantir la compatibilité avec le plus grand nombre d'applications possible. Le but de cet article n'est pas d'enseigner la programmation en GLSL, le langage utilisé par le format ISF. Pour cela, nous vous recommandons de consulter les sites très complets suivants :

Cependant, pour commencer, N'hésitez pas à consulter le site de l'ISF et à modifier les shaders existants. Ce site interactif vous permet de visualiser en temps réel les modifications apportées au shader. Il est également possible de partir d'un modèle de base.

Le principal inconvénient de la création et de la modification de shaders réside dans l'absence de retour d'erreur. En cas de problème de conception, il peut arriver que le shader ne s'exécute pas ou n'affiche rien, ce qui rend difficile l'identification de la source de l'erreur. Il est donc essentiel de faire preuve de minutie lors de la programmation.

Pour continuer

Gestion de la réactivité au son et à la musique

Ce guide a été rédigé par HeavyM, une entreprise spécialisée dans le vidéo mapping depuis 2013.

Pour toute question, remarque, suggestion, etc., merci d'utiliser ce formulaire de contact : https://help.heavym.net/hc/requests/new. Réponse garantie dans les 24 heures.

Foire aux questions (FAQ)

Qu'est-ce qu'un shader dans le vidéo mapping ?

Un shader est un programme informatique permettant de calculer des effets de rendu sur du matériel graphique avec une grande flexibilité. Dans le domaine du vidéo mapping, les shaders sont utilisés pour générer des textures dynamiques en temps réel et des effets visuels réactifs au son directement sur votre GPU, plutôt que de lire des boucles vidéo pré-rendues.

Qu'est-ce que le format ISF ?

ISF signifie « Interactive Shader Format ». Il s'agit d'une norme basée sur le GLSL (OpenGL Shading Language) qui permet de partager et d'utiliser facilement des visuels génératifs entre différents logiciels de VJing et de vidéo mapping, garantissant ainsi une compatibilité multiplateforme.

Faut-il savoir programmer pour utiliser les shaders ?

Non, il n'est pas nécessaire d'être programmeur. Même si les shaders sont écrits en langage de programmation (GLSL), les logiciels de vidéo mapping tels que HeavyM vous permet d'importer des fichiers ISF prêts à l'emploi ou d'utiliser des effets de shader intégrés en les glissant-déposant simplement sur vos formes.