我计划编写一个程序,该程序将接受一些参数作为输入,并生成自己的片段着色器字符串,然后编译、链接并用作片段着色器(仅在程序开始时执行一次)。由于我不是计算机图形学专家,因此不知道这是否是标准实践,但我肯定认为它具有一些有趣应用的潜力,不一定是图形应用,也可能是计算应用。
我的问题是OpenGL着色器的代码大小限制,即OpenGL在图形处理器上可以合理分配多少内存给程序?
我的问题是OpenGL着色器的代码大小限制,即OpenGL在图形处理器上可以合理分配多少内存给程序?
没有代码大小限制。但是:
一个很长的GLSL着色器可能会编译通过,而一个很短的着色器却不行。为什么?因为编译器可能已经能够将长着色器优化到合适的大小,而短着色器则扩展到了许多操作码。简而言之,GLSL过于高级,无法有效地量化这些限制。
在任何情况下,鉴于GL 2.x级别的硬件的限制,你可能不会遇到任何长度限制,除非你试图这样做或者正在进行GPGPU工作。