Search code examples
actionscript-3stage3dflare3d

What is the indexBuffer, and what might cause me to run out of them?


I am making a flash game using Flare3D and when i load a new scene it give me this error:

Error: Error #3691: Resource limit for this resource type exceeded.
    at flash.display3D::Context3D/createIndexBuffer()
    at flare.core::Surface3D/upload()[Z:\projects\flare3d 2\src\flare\core\Surface3D.as:237]
    at flare.core::Mesh3D/upload()[Z:\projects\flare3d 2\src\flare\core\Mesh3D.as:130]
    at flare.core::Mesh3D/draw()[Z:\projects\flare3d 2\src\flare\core\Mesh3D.as:335]
    at flare.basic::Scene3D/render()[Z:\projects\flare3d 2\src\flare\basic\Scene3D.as:593]
    at flare.basic::Scene3D/enterFrameEvent()[Z:\projects\flare3d 2\src\flare\basic\Scene3D.as:461]

I am guessing from the error that it is running of something, but I don't know what the Context3D.createIndexBuffer() does. Since flare3D is not open source I can't dig in for any clues there.

So i want to know: what is teh Context3D IndexBuffer, and what might make me run out of that resource type?

And please don't just link to the ASDocs for those classes, I have looked and they do not answer this question.


Solution

  • I could be wrong, but I'm guessing they are talking about the same Index Buffers that are used in OpenGL and DirectX. They are arrays of integers that are indices into a vertex array so that when drawing multiple polygons that share vertices, you don't have to specify the entire vertex every time.

    This is a relatively good explanation: http://openglbook.com/the-book/chapter-3-index-buffer-objects-and-primitive-types/#toc-enter-index-buffers

    I don't know anything about Flare3D, but is it possible that your scene has too many complex meshes and is running out of memory for index buffers?