1
在我的應用程序中,我想獲得最大的恆定緩衝區大小。用DX,有一個宏D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT
代表這個值。如何獲得OpenGL
的價值?如何使用OpenGL獲得最大恆定緩衝區大小?
在我的應用程序中,我想獲得最大的恆定緩衝區大小。用DX,有一個宏D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT
代表這個值。如何獲得OpenGL
的價值?如何使用OpenGL獲得最大恆定緩衝區大小?
OpenGL沒有這樣的限制。
Buffer Objects可以是任意大小。但是,不同的使用的緩衝區對象具有不同的大小限制。 source for vertex array data基本上是無界的。但buffer textures有一個大小限制。 bound range of uniform buffer data的大小有一個限制。根據需要,various other uses有限制。但是內存緩衝區的大小沒有限制本身。
基本上,將緩衝區對象視爲指向GPU內存的指針,glBufferData
爲malloc
。使用指針的不同API可以限制他們可以訪問多少內存。但malloc
本身沒有任何特別的限制(當然,除了內存不足)。
謝謝,我對這些概念有點困惑,你的回答有很大幫助。我剛剛意識到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