Что такое примитивы рисования WebGL?

Я занимался графическим программированием с помощью webgl для рисования OBJMesh, но это не слишком хорошо, так как он не рисует его правильно. Я думаю, что это из-за примитивов рисования, которые я использую e.g:gl.drawArrays(gl.TRIANGLE_STRIP, 0, vertexBuffer.numItems);

итак, могу ли я спросить, какие примитивы разрешает webGL? это то же самое, что и openGL? Я пытался использовать gl.Квадроциклы, как я думал, это позволит, как openGL, поэтому я больше не уверен.

2 ответов


от 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 (треугольники). Если я попробую те же сетки с другими примитивами, это сломает сетку, поэтому это зависит от того, как сетка была создана.

вот мои демки http://rodrigo-silveira.com/webgl-3d-demos/