一个mesh相关的小问题

在给着色器的attribute传入数据时,使用了:
Mesh.setIndices(indices: number[]|Uint16Array|Uint8Array, index?: number, dynamic?: boolean): void;
这个api
然后发现个问题


图中这个接口,没有将meshData.vb参数和subMeshs中的vbBuffer对象关联,导致meshData.vb是null,然后在下图中的位置会报错

目前我自己解决了下

我不清楚是bug,还是我对这个接口使用方法有问题,如果是后者,往指出,谢谢
引擎版本(mac 2.4.2),运行环境chrome 85.0.4183.102

setVertices这些应该是引擎只建议代码创建的网格使用,要init初始化的mesh才给用,只能自己重新创建一个mesh然后复制模型的mesh顶点数据这些过去,再用setVertices动态设置顶点数据。
一般来说,最好是不要用引擎里的私有属性,不过你这样用没问题的话也不是不行。

核心想法是通过修改attribute的值来替换uniform向shader传参,因为同一个模型需要被复数此渲染,如果能用attribute传参就可以一次batch,uniform改参数的话会中断batch,然后发现了这个问题,引擎组能不能给个好的解决方案

我目前的情况是同一个模型需要一次渲染几十次,但是每个单独的对象有部分着色器参数上的差异,如果用uniform需要几十次drawcall,我能想到的替代方案是
1: attribute传参
2: 利用glinstanceid和一个uniform参数表
目前选了方案1