2014-11-06 80 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);