Einfache Frage:
Gibt es in GLSL eine Möglichkeit, Funktionen für mehrere Shader freizugeben, oder muss ich alle Funktionen in jedem Shader definieren, der sie benötigt?
Sie können einige Funktionen in einer Header-Datei definieren und # in Ihren Shader aufnehmen. Es unterscheidet sich ein wenig von C / C ++ darin, dass Sie die Körper Ihrer Funktionen in die Header einfügen würden, nicht nur ihre Prototypen (da Shader kein Konzept für separates Kompilieren und Verknüpfen haben), sondern ansonsten wie C / C ++ Überschriften.
Wenn #include nicht verfügbar ist, würden Sie die Argumente von glShaderSource verwenden, um das gemeinsam genutzte Material anzugeben. Beispiel:
quelle