什么是WebGL的绘制原语?

Dan*_*nny 11 javascript opengl-es webgl

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

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

Nat*_*one 16

来自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;
Run Code Online (Sandbox Code Playgroud)


rod*_*ira 5

是的,WebGL绘制与OpenGL ES相同的原语(与OpenGL相同).您是否尝试绘制一些琐碎的网格,以便缩小问题的范围?你在设置剔除,绘制正确的原语等吗?

我做了一些WebGL演示,我绘制了复杂的网格,我总是使用GL_TRIANGLES(TRIANGLES).如果我尝试与其他基元相同的网格,它会破坏网格,因此它取决于网格的创建方式.

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