Der*_*lon 1 haxe opengl-es webgl
我正在学习带有haxe的WebGL,并且我坚持使用描述元素数组的部分.什么被认为是一个广场没有出现,我不知道为什么?
var verticesArray = [
0.5, 0.5,
0.5,-0.5,
-0.5,-0.5,
-0.5, 0.5
];
var indicesArray = [0, 1, 3, 1, 2, 3];
var VBO = GL.createBuffer();
GL.bindBuffer(GL.ARRAY_BUFFER, VBO);
GL.bufferData(GL.ARRAY_BUFFER,new Float32Array(verticesArray), GL.STATIC_DRAW);
var EBO = GL.createBuffer();
GL.bindBuffer(GL.ELEMENT_ARRAY_BUFFER, EBO);
GL.bufferData(GL.ELEMENT_ARRAY_BUFFER, new UInt16Array(indicesArray), GL.STATIC_DRAW);
GL.vertexAttribPointer(0, 2, GL.FLOAT, false, 0, 0);
GL.enableVertexAttribArray(0);
GL.useProgram(shaderProgram);
GL.drawElements(GL.TRIANGLES, 6, GL.UNSIGNED_INT, 0);
GL.bindBuffer(GL.ARRAY_BUFFER, null);
GL.bindBuffer(GL.ELEMENT_ARRAY_BUFFER, null);
Run Code Online (Sandbox Code Playgroud)
这里是所有想要绘制正方形的代码我已经得到了着色器编程工作
确保调用中的类型drawElements与提供的索引数组类型匹配,即
gl.UNSIGNED_BYTE 对于 Uint8Arraygl.UNSIGNED_SHORT 对于 Uint16Arraygl.UNSIGNED_INTfor Uint32Array(需要OES_element_index_uint延期)此外VertexAttribPointer,enableVertexAttribArray调用始终在当前绑定到ARRAY_BUFFER目标的缓冲区上运行,在这种情况下,这不是问题,但如果添加其他VBO,则很好地成为编写它的方式.因此,要么在创建和绑定缓冲区之后设置它们,要么确保绑定了正确的缓冲区.
| 归档时间: |
|
| 查看次数: |
1471 次 |
| 最近记录: |