2

我想要一个可以动画的网格。我正在从文件中加载网格,包括关键帧。我想将所有帧放入 VBO 并在 GPU 上的顶点着色器中组合其中的两个。所以我想将帧传递给 GPU 和一些允许从这两个创建一个结果帧的统一

是否可以?如果是这样,我该怎么做?

4

1 回答 1

3

你只会有更多的顶点属性。通常,您可能有:

in vec3 position;
in vec3 normal;
in vec4 color;
in vec2 texCoord;

使用变形目标,您需要:

in vec3 position0;
in vec3 position1;
in vec3 normal0;
in vec3 normal1;
in vec4 color;
in vec2 texCoord;

实际的模型空间位置将是 和 之间的线性position0插值position1。正常情况也是如此(我猜)。一旦你得到它们,你就可以通过通常的转换来传递它们。颜色和纹理坐标大概不会改变,但如果它们改变了,那么它们也需要有01版本。

实际渲染非常简单。大概,您将在同一个缓冲区中拥有变形目标的所有位置。因此,将position0' 属性绑定到第一个变形目标,将 ' 属性绑定position1到第二个变形目标。法线也一样。然后你正常渲染。

于 2011-09-27T07:13:42.260 回答