我正在尝试在WebGL 2中进行实例化。我想使用内置变量gl_InstanceID
来索引统一的浮点数组。
我收到以下错误:
glDrawElementsInstancedANGLE: attempt to draw with all attributes having non-zero divisors
WebGL 2中是否允许使用顶点属性(实例化数组)实现唯一的实例化?
此外,spec是唯一可以找到这些功能的权威场所吗?
答案 0 :(得分:2)
本文档的其余部分旨在与OpenGL ES 3.0规范一起阅读(撰写本文时为3.0.4,可从Khronos OpenGL ES API Registry获得)。除非另有说明,否则每种方法的行为都由OpenGL ES 3.0规范定义。此规范可能与OpenGL ES 3.0不同,以确保互操作性或安全性,通常定义OpenGL ES 3.0留下实现定义的区域。这些差异在Differences Between WebGL and OpenGL ES 3.0部分进行了总结。
不幸的是,它们似乎忘了指定至少一个属性必须具有与OpenGL ES 3.0不同的非零除数。 I filed a bug
需要添加的部分是
INVALID_OPERATION由DrawArraysInstanced或生成 DrawElementsInstanced如果没有至少一个启用 顶点属性数组,其
divisor
为零并绑定到 用于绘制命令的程序中的活动通用属性值。