Skrót:GLSL wielokrotnego użytku/wspólne funkcje, wspólne stałe (OpenGL ES 2.0)?
Czy mogę zdefiniować funkcję, której może używać każdy moduł cieniujący? Czy muszę zdefiniować to na moduł cieniujący?
Cała historia:
Chcę utworzyć wiele shaderów przeznaczony do kolorowania fragmentów wejściowe z predefiniowanymi rampy gradientu (coś takiego - http://www.thinkboxsoftware.com/storage/krakatoa-support-images/krakatoa15_kcm_densitybyage_gradientrampmap.png).
Chcę zdefiniować rampy gradientu stała dla każdego cieniującego (tablicę kolorów próbek vec4, gdzie wartość alfa posiada pozycję gradientu, patrz Pos na zdjęciu powyżej)
I potrzebuję funkcja, która może zwrócić próbkę koloru z danej rampy gradientowej dla określonej pozycji współrzędnych tekstury.
Więc pochylnie muszą być zdefiniowany RAZ za cieniującego, a funkcja powinna być zdefiniowane naraz że każdy shader można używać bezpiecznie.
mam algorytmów, pytanie jest dla funkcji udostępniania i definiowania stałych w GLSL.
Czy to możliwe? Czy muszę skopiować funkcję do każdego modułu cieniującego? Czy istnieje przynajmniej opcja prekompilacji?
Whoa, brzmi nieźle, spróbuję. – Geri