我一直在使用webgl来绘制OBJMesh的一些图形编程,但它没有太好,因为它没有正确绘制它。我认为这是因为我正在使用的绘图基元,例如:gl.drawArrays(gl.TRIANGLE_STRIP, 0, vertexBuffer.numItems);
什么是WebGL的绘制原语?
所以我可以问一下webGL允许哪些基元?它和openGL一样吗?我一直在尝试使用gl.QUADS,因为我认为它可以让OpenGL做到这一点,所以我不太确定。
我一直在使用webgl来绘制OBJMesh的一些图形编程,但它没有太好,因为它没有正确绘制它。我认为这是因为我正在使用的绘图基元,例如:gl.drawArrays(gl.TRIANGLE_STRIP, 0, vertexBuffer.numItems);
什么是WebGL的绘制原语?
所以我可以问一下webGL允许哪些基元?它和openGL一样吗?我一直在尝试使用gl.QUADS,因为我认为它可以让OpenGL做到这一点,所以我不太确定。
从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;
是的,WebGL绘制与OpenGL ES相同的基元(与OpenGL相同)。你是否尝试过绘制一些简单的网格,以便缩小问题的范围?你是否正在设置剔除,绘制正确的基元等?
我已经做了几个WebGL演示,我绘制了复杂的网格,我总是使用GL_TRIANGLES(TRIANGLES)。如果我尝试与其他基元相同的网格,它将打破网格,所以它取决于网格的创建方式。