11

我一直在使用 webgl 进行一些图形编程来绘制 OBJMesh,但它并没有很好地绘制它,因为它没有正确绘制它。我认为那是因为我正在使用的绘图原语,例如:gl.drawArrays(gl.TRIANGLE_STRIP, 0, vertexBuffer.numItems);

那么我能问一下 webGL 允许哪些原语吗?它和openGL一样吗?我一直在尝试使用 gl.QUADS,因为我认为它会像 openGL 那样允许它,所以我不太确定了。

4

2 回答 2

17

来自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;
于 2013-01-24T14:34:07.633 回答
5

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

我已经完成了一些 WebGL 演示,其中我绘制了复杂的网格,并且我总是使用 GL_TRIANGLES (TRIANGLES)。如果我尝试使用其他图元使用相同的网格,它会破坏网格,因此这取决于网格的创建方式。

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

于 2013-01-24T14:33:15.420 回答