我基本上和这里问的人有同样的问题: Dynamically sized arrays in OpenGL ES vertex shader; 用于混合形状/变形目标。特别是他最后一个未回答的问题也困扰着我。
所以我还想为我正在处理的每个网格使用任意数量的混合形状。目前我使用的是固定数字并将形状视为顶点属性。这里的好处是我总是有当前可用顶点的相关数据。现在,如果我想使用任意数量的形状,我想我会使用 SSBO,因为它们的线索正是我想要的:动态大小的数据。然而,据我所知,SSBO 是静态的,对于着色器中每个已处理的顶点,我都有可用的整个网格的 blendshape 数据。这意味着我必须引入某种计数器并尝试从我的 SSBO 中为每个顶点挑选正确的数据。
这种理解正确吗?我真的不确定这是否是最佳解决方案,也许您可以给我一些提示。