Webgl drawelements旋转广场

时间:2014-11-06 09:48:58

标签: javascript webgl

好吧,我一直在试图用drawElements进行正方形旋转。 代码适用于drawarrays并且如果方块仍然是正常工作并且我使用drawElement调用。 现在在这个小提琴中,我试图让它旋转,(使用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 个答案:

答案 0 :(得分:0)

depthFunc to EQUAL与清除深度缓冲区一起设置为1.0只能绘制深度恰好为1.0的片段。有关深度函数的更多信息,请参阅链接的资源。只需删除下面的两行,一切都很好。

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