如何使用VBO进行变形

how to use VBO for morphing?

本文关键字:变形 VBO 何使用      更新时间:2023-10-16

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

有可能吗?如果有,我该怎么做?

你会有更多的顶点属性。通常,您可以使用:

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;

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

实际的渲染非常简单。假设,您将在同一缓冲区中拥有变形目标的所有位置。所以这是将position0的属性绑定到第一个变形目标,并将position1的属性绑定到第二个变形目标的问题。法线也是一样。然后按正常方式渲染