Question simple:
Dans GLSL, existe-t-il un moyen de partager des fonctions entre plusieurs shaders, ou dois-je définir toutes les fonctions dans chaque shader qui en a besoin?
Vous pouvez définir certaines fonctions dans un fichier d'en-tête et #les inclure dans votre shader. C'est un peu différent de C / C ++ en ce que vous mettriez le corps de vos fonctions dans les en-têtes, pas seulement leurs prototypes (car les shaders n'ont pas de concept de compilation et de liaison séparées), mais à part ça, c'est comme C / C ++ en-têtes.
Si #include n'est pas disponible, vous utiliseriez les arguments de glShaderSource pour spécifier le contenu partagé. Exemple:
la source