Я планую написати програму, яка займе деяку частинуПараметри як вхідні і створить власний фрагмент шейдерного ряду, який потім буде скомпільовано, пов'язаний і використовуватиметься як фрагментний шейдер (він буде виконуватися лише один раз на початку програми). Я не фахівець з комп'ютерної графіки, тому я не знаю, чи це стандартна практика, але я напевно думаю, що він має потенціал для деяких цікавих додатків - не обов'язково графічних додатків, але, можливо, обчислювальних.
Я задаюся питанням, яким є обмеження розміру шейдеру в OpenGL, тобто, скільки пам'яті OpenGL можна обгрунтовано розподілити на програму на графічному процесорі?
Відповіді:
3 для відповіді № 1Немає обмеження розміру коду. ОК, є, але:
- OpenGL не дає вам змогу запитати його, оскільки:
- Такий номер був би безглуздим, оскільки він не перекладається на те, що ви можете безпосередньо контролювати в GLSL.
Довгий GLSL-шейдер може скласти короткийшейдер не може ". Чому? Оскільки компілятор, можливо, зумів оптимізувати довгий шейдер до розміру, а короткий шейдер розширився до великої кількості кодів операцій. Одним словом, GLSL є надто високим, щоб мати змогу ефективно кількісно оцінити такі обмеження .
У будь-якому випадку, зважаючи на обмеження обладнання GL-2.x, ви, напевно, не зможете досягти будь-яких обмежень у довжині, якщо ви не намагаєтесь це зробити або не працюєте на GPGPU.