1

我基本上和这里问的人有同样的问题: Dynamically sized arrays in OpenGL ES vertex shader; 用于混合形状/变形目标。特别是他最后一个未回答的问题也困扰着我。

所以我还想为我正在处理的每个网格使用任意数量的混合形状。目前我使用的是固定数字并将形状视为顶点属性。这里的好处是我总是有当前可用顶点的相关数据。现在,如果我想使用任意数量的形状,我想我会使用 SSBO,因为它们的线索正是我想要的:动态大小的数据。然而,据我所知,SSBO 是静态的,对于着色器中每个已处理的顶点,我都有可用的整个网格的 blendshape 数据。这意味着我必须引入某种计数器并尝试从我的 SSBO 中为每个顶点挑选正确的数据。

这种理解正确吗?我真的不确定这是否是最佳解决方案,也许您可​​以给我一些提示。

4

1 回答 1

1

是的,你的理解是正确的。

您可以使用或仅传递一些“顶点编号”作为属性,以了解要为您正在处理的特定顶点gl_VertexID加载哪些数据。SSBO

于 2016-06-13T12:01:54.973 回答