/ / Jaki jest rozmiar limitu kodu wierzchołka lub fragmentu cieniowania w OpenGL 2+ - opengl, shader

Jaki jest rozmiar limitu kodu dla vertex lub shadera fragmentów w OpenGL 2+ - opengl, shader

Planuję napisać program, który zajmie trochęparaemetry jako dane wejściowe i wygeneruje własny ciąg cieniowania fragmentów, który następnie zostanie skompilowany, połączony i użyty jako moduł cieniujący fragment (zostanie wykonany tylko raz na początku programu). Nie jestem ekspertem od grafiki komputerowej, więc nie wiem, czy jest to standardowa praktyka, ale z pewnością uważam, że ma ona potencjał do zastosowania w niektórych interesujących aplikacjach - niekoniecznie w aplikacjach graficznych, ale prawdopodobnie komputerowych.

Moje pytanie brzmi: jaki jest limit rozmiaru kodu modułu cieniującego w OpenGL, tj. Ile pamięci może OpenGL rozsądnie przydzielić programowi w procesorze graficznym?

Odpowiedzi:

3 dla odpowiedzi № 1

Nie ma limitu rozmiaru kodu. OK, jest, ale:

  1. OpenGL nie daje ci sposobu na zapytanie o to, ponieważ:
  2. Taka liczba byłaby bez znaczenia, ponieważ nie przekłada się na wszystko, co można bezpośrednio kontrolować w GLSL.

Długi moduł cieniujący GLSL może skompilować, gdy jest krótkishader nie może być Dlaczego? Ponieważ kompilator mógł być w stanie zoptymalizować długi moduł cieniujący do rozmiarów, podczas gdy krótki moduł cieniujący został rozszerzony na wiele kodów operacyjnych, krótko mówiąc, GLSL jest zbyt wysoki, aby móc skutecznie określić ilościowo takie ograniczenia .

W każdym razie, biorąc pod uwagę ograniczenia sprzętu klasy GL 2.x, prawdopodobnie nie osiągniesz żadnych ograniczeń długości, chyba że spróbujesz to zrobić lub wykonasz pracę GPGPU.