Что такое примитивы рисования 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/