什么是indexBuffer,什么可能导致我用完它们?

时间:2012-04-25 23:17:18

标签: actionscript-3 stage3d flare3d

我正在使用Flare3D进行Flash游戏,当我加载新场景时,它会给我这个错误:

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]

我从错误中猜测它正在运行某些东西,但我不知道Context3D.createIndexBuffer()的作用。由于flare3D不是开源的,我无法深入了解那里的任何线索。

所以我想知道:什么是Context3D IndexBuffer,以及什么可能让我用完该资源类型?

请不要只为这些课程链接到ASDocs,我看了,他们没有回答这个问题。

1 个答案:

答案 0 :(得分:1)

我可能错了,但我猜它们正在讨论OpenGL和DirectX中使用的相同索引缓冲区。它们是整数数组,它们是顶点数组的索引,因此在绘制共享顶点的多个多边形时,不必每次都指定整个顶点。

这是一个比较好的解释: http://openglbook.com/the-book/chapter-3-index-buffer-objects-and-primitive-types/#toc-enter-index-buffers

我对Flare3D一无所知,但是你的场景可能有太多复杂的网格,而且内存中的索引缓冲区用完了吗?