2013-01-24 27 views
6

我一直在使用webgl来绘制OBJMesh的一些图形编程,但它没有太好,因为它没有正确绘制它。我认为这是因为我正在使用的绘图基元,例如:gl.drawArrays(gl.TRIANGLE_STRIP, 0, vertexBuffer.numItems);什么是WebGL的绘制原语?

所以我可以问一下webGL允许哪些基元?它和openGL一样吗?我一直在尝试使用gl.QUADS,因为我认为它可以让OpenGL做到这一点,所以我不太确定。

回答

12

https://www.khronos.org/registry/webgl/specs/1.0/

const GLenum POINTS       = 0x0000; 
const GLenum LINES       = 0x0001; 
const GLenum LINE_LOOP      = 0x0002; 
const GLenum LINE_STRIP      = 0x0003; 
const GLenum TRIANGLES      = 0x0004; 
const GLenum TRIANGLE_STRIP     = 0x0005; 
const GLenum TRIANGLE_FAN     = 0x0006; 
5

是的,WebGL绘制与OpenGL ES相同的基元(与OpenGL相同)。你是否尝试过绘制一些简单的网格,以便缩小问题的范围?你是否正在设置剔除,绘制正确的基元等?

我已经做了几个WebGL演示,我绘制了复杂的网格,我总是使用GL_TRIANGLES(TRIANGLES)。如果我尝试与其他基元相同的网格,它将打破网格,所以它取决于网格的创建方式。

这里是我的演示http://rodrigo-silveira.com/webgl-3d-demos/