2014-11-25 61 views
4

從three.js所R68遷移到69後(移植到R69之後),以獲得重複幾個這樣的錯誤:three.js所:vertexAttributePointer:沒有約束ARRAY_BUFFER

WebGL: INVALID_OPERATION: vertexAttribPointer: no bound ARRAY_BUFFER 
[.WebGLRenderingContext]GL ERROR :GL_INVALID_OPERATION : glDrawArrays: attempt to access out of range vertices in attribute 0 

它出現在WebGLRenderer在setupVertexAttributes ()在這個特定的行:

_gl.vertexAttribPointer(programAttribute, size, _gl.FLOAT, false, 0, startIndex * size * 4); // 4 bytes per Float32 

我使用BufferGeometry,但不知道什麼是錯的。我檢查了發行說明,但無法獲得膠水。幫助讚賞!

回答

2

我發現在我的代碼的問題。我不得不調整我的代碼以反映fromGeometry()函數從BufferGeometryUtils類到BufferGeometry類的移動。所以這解決了我的問題:

var geo = new THREE.BufferGeometry(); 
geo.fromGeometry(otherGeo); 

無論如何感謝所有的答案。

1

我得到同樣的警告。

當你有在場景中陰影被拉到攝像機視圖之外的對象會出現這種情況。你可以測試這個;

  1. 禁用你的影子
  2. 最初定位相機的位置,使其顯示全部到場。

我還沒有想到一個乾淨的修復,但選項2爲我工作。我還沒有嘗試過第一個選項,後來啓用了陰影。

+0

克里斯感謝您的回覆。 (不幸的是)我的場景有陰影被設計禁用,我的對象也沒有啓用陰影。所以在我看來這不是問題。 – 2014-11-25 15:42:22

+0

是的,似乎我得到了一個稍微不同的錯誤,對不起。你可以添加似乎觸發警告的代碼嗎? – 2014-11-25 15:54:25

+1

這在我看來,中threejs本身的渲染()方法,這讓我很緊張,因爲它沒有給我指示從哪裏開始搜索。 – 2014-11-26 11:15:13