访问WebGL 2实例化中的gl_InstanceID

时间:2017-06-08 05:25:37

标签: webgl2

我正在尝试在WebGL 2中进行实例化。我想使用内置变量gl_InstanceID来索引统一的浮点数组。

我收到以下错误:

glDrawElementsInstancedANGLE: attempt to draw with all attributes having non-zero divisors

WebGL 2中是否允许使用顶点属性(实例化数组)实现唯一的实例化?

此外,spec是唯一可以找到这些功能的权威场所吗?

1 个答案:

答案 0 :(得分:2)

spec表示它基于OpenGL ES 3.0 spec

  

本文档的其余部分旨在与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为零并绑定到   用于绘制命令的程序中的活动通用属性值。