2013-02-28 99 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