/ / Який розмір коду грати вершини або шейдер фрагмента в OpenGL 2+ - opengl, shader

Який граничний розмір коду вершини або фрагментного шейдера в OpenGL 2+ - opengl, shader

Я планую написати програму, яка займе деяку частинуПараметри як вхідні і створить власний фрагмент шейдерного ряду, який потім буде скомпільовано, пов'язаний і використовуватиметься як фрагментний шейдер (він буде виконуватися лише один раз на початку програми). Я не фахівець з комп'ютерної графіки, тому я не знаю, чи це стандартна практика, але я напевно думаю, що він має потенціал для деяких цікавих додатків - не обов'язково графічних додатків, але, можливо, обчислювальних.

Я задаюся питанням, яким є обмеження розміру шейдеру в OpenGL, тобто, скільки пам'яті OpenGL можна обгрунтовано розподілити на програму на графічному процесорі?

Відповіді:

3 для відповіді № 1

Немає обмеження розміру коду. ОК, є, але:

  1. OpenGL не дає вам змогу запитати його, оскільки:
  2. Такий номер був би безглуздим, оскільки він не перекладається на те, що ви можете безпосередньо контролювати в GLSL.

Довгий GLSL-шейдер може скласти короткийшейдер не може ". Чому? Оскільки компілятор, можливо, зумів оптимізувати довгий шейдер до розміру, а короткий шейдер розширився до великої кількості кодів операцій. Одним словом, GLSL є надто високим, щоб мати змогу ефективно кількісно оцінити такі обмеження .

У будь-якому випадку, зважаючи на обмеження обладнання GL-2.x, ви, напевно, не зможете досягти будь-яких обмежень у довжині, якщо ви не намагаєтесь це зробити або не працюєте на GPGPU.