OpenGL 2+中顶点或片段着色器的代码限制大小是多少

时间:2013-01-30 13:57:58

标签: opengl shader

我打算编写一个程序,它将把一些参数作为输入并生成自己的片段着色器字符串,然后将其编译,链接并用作片段着色器(它只在程序开始时完成一次) )。 我不是计算机图形学的专家,所以我不知道这是否是标准做法,但我绝对认为它有潜在的一些有趣的应用程序 - 不一定是图形应用程序,但可能是计算应用程序。

我的问题是OpenGL中着色器的代码大小限制是什么,即OpenGL可以合理地为图形处理器上的程序分配多少内存?

1 个答案:

答案 0 :(得分:3)

没有代码大小限制。好的,有,但是:

  1. OpenGL没有为您提供查询方式,因为:
  2. 这样的数字将毫无意义,因为它不会转化为您可以在GLSL中直接控制的任何内容。
  3. 长的GLSL着色器可能会编译,而短着色器则不能。为什么?因为编译器可能已经能够将长着色器优化到大小,而短着色器扩展到许多操作码。简而言之,GLSL太高,无法有效量化这些限制。

    在任何情况下,鉴于GL 2.x级硬件的限制,除非您尝试这样做或正在进行GPGPU工作,否则您可能不会遇到任何长度限制。