Proste pytanie:
Czy w GLSL istnieje sposób na dzielenie funkcji między wieloma modułami cieniującymi, czy też muszę zdefiniować wszystkie funkcje w każdym module cieniującym, który ich potrzebuje?
Możesz zdefiniować niektóre funkcje w pliku nagłówkowym i #włącz je do modułu cieniującego. Różni się nieco od C / C ++ pod tym względem, że umieszczasz ciała swoich funkcji w nagłówkach, nie tylko ich prototypy (ponieważ shadery nie mają koncepcji oddzielnej kompilacji i łączenia), ale poza tym jest to tak jak C / C ++ nagłówki.
Jeśli #include nie jest dostępny, użyłbyś argumentów glShaderSource do określenia współużytkowanych rzeczy. Przykład:
źródło