我一直在使用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)。如果我嘗試與其他基元相同的網格,它將打破網格,所以它取決於網格的創建方式。