2

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

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

4

1 回答 1

3

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

  1. OpenGL 没有为您提供查询它的方法,因为:
  2. 这样的数字毫无意义,因为它不会转化为您可以在 GLSL 中直接控制的任何内容。

一个长的 GLSL 着色器可能编译,而一个短的着色器不能。为什么?因为编译器可能已经能够优化长着色器的大小,而短着色器扩展到大量的操作码。简而言之,GLSL 级别太高,无法有效量化这些限制。

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

于 2013-01-30T14:08:19.607 回答