我打算编写一个程序,它将把一些参数作为输入并生成自己的片段着色器字符串,然后将其编译,链接并用作片段着色器(它只在程序开始时完成一次) )。 我不是计算机图形学的专家,所以我不知道这是否是标准做法,但我绝对认为它有潜在的一些有趣的应用程序 - 不一定是图形应用程序,但可能是计算应用程序。
我的问题是OpenGL中着色器的代码大小限制是什么,即OpenGL可以合理地为图形处理器上的程序分配多少内存?
答案 0 :(得分:3)
没有代码大小限制。好的,有,但是:
长的GLSL着色器可能会编译,而短着色器则不能。为什么?因为编译器可能已经能够将长着色器优化到大小,而短着色器扩展到许多操作码。简而言之,GLSL太高,无法有效量化这些限制。
在任何情况下,鉴于GL 2.x级硬件的限制,除非您尝试这样做或正在进行GPGPU工作,否则您可能不会遇到任何长度限制。