2012-04-25 52 views
0

我使用Flare3D製作一個Flash遊戲,當我打開一個新的場景它給我這個錯誤:什麼是indexBuffer,什麼可能導致我用完它們?

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

我可能是錯的,但我猜他們談論了在OpenGL和DirectX使用相同的索引緩存。他們是指數到頂點數組整數數組,使繪圖共享頂點多個多邊形的時候,你就不必每次都指定整個頂點。

這是一個比較好的解釋: http://openglbook.com/the-book/chapter-3-index-buffer-objects-and-primitive-types/#toc-enter-index-buffers

我不知道Flare3D什麼,但有可能是你的場景中有太多複雜的網格,並且運行內存爲索引緩衝?

+0

斯凱 - 這聽起來像是正確的道路。如果沒有其他人有更好的關於Stage3D中IndexBuffer限制的信息,我並不反對接受這個答案。 – 2012-04-25 23:55:52

+0

就是這樣。他們是視頻卡上的陣列。如果你用完了,那麼你很可能會做出錯誤的事情。你不應該填滿這麼多你用完的東西。也就是說,你自己並沒有在技術上與他們合作,閃存虛擬機正在爲你做它,它可能只是閃存方面的一個糟糕的實現,誰知道。 – 2012-04-26 01:37:53

+0

或者您正在請求一個新的頂點緩衝區每幀或東西...我認爲這是在4096/256MB – 2012-04-26 11:12:03

相關問題