2013-02-28 68 views

回答

4

OpenGL没有这样的限制。

Buffer Objects可以是任意大小。但是,不同的使用的缓冲区对象具有不同的大小限制。 source for vertex array data基本上是无界的。但buffer textures有一个大小限制。 bound range of uniform buffer data的大小有一个限制。根据需要,various other uses有限制。但是内存缓冲区的大小没有限制本身

基本上,将缓冲区对象视为指向GPU内存的指针,glBufferDatamalloc。使用指针的不同API可以限制他们可以访问多少内存。但malloc本身没有任何特别的限制(当然,除了内存不足)。

+0

谢谢,我对这些概念有点困惑,你的回答有很大帮助。我刚刚意识到dx中的“const buffer”对应于OGL中的“Uniform Block”,所以我可以使用glGetIntegerv()方法和GL_MAX_VERTEX_UNIFORM_BLOCKS,GL_MAX_GEOMETRY_UNIFORM_BLOCKS,GL_MAX_FRAGMENT_UNIFORM_BLOCKS,GL_MAX_UNIFORM_BLOCK_SIZE来获取属性。 – user2119107 2013-03-04 01:58:11