2014-11-06 77 views
0

好吧,我試圖用drawElements做一個方形旋轉,已經足夠讓我感到頭痛了。 該代碼與drawarrays工作正常,如果廣場仍然存在,並且我使用drawElement調用,則工作正常。 現在在這個小提琴中,我試圖使它旋轉(使用drawElements),但我什麼也看不見。我已經設置了方形緩衝區和索引。我調試過了,數據看起來正確,所以我看不到我做錯了什麼。這是小提琴。Webgl drawelements旋轉正方形

var vertices = [-1,-1,-2, //FRONT FACE 
       1,-1,-2, 
       1,1,-2, 
       -1,1,-2]; 
var vertexBuffer = gl.createBuffer(); 
gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer); 
gl.bufferData(gl.ARRAY_BUFFER,new Float32Array(vertices), gl.STATIC_DRAW); 

vertexBuffer.itemSize = 3; 
vertexBuffer.numItems = parseInt(vertices.length/vertexBuffer.itemSize); 

var indices = [0,1,2,0,2,3]; 

var cubeBufferIndex = gl.createBuffer(); 
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, cubeBufferIndex); 
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices), gl.STATIC_DRAW); 

http://jsfiddle.net/3joez/mpj3dts7/

回答

1

與清除深度緩衝區1.0設置在組合depthFunc to EQUAL僅將在有正好1.0的深度片段。有關深度函數的更多信息,請參閱鏈接的資源。只要刪除下面的兩行,一切都呈現良好。

gl.depthFunc(gl.EQUAL); 
gl.clearDepth(1.0);