首页 文章

OpenGl3及以上两帧之间的线性插值

提问于
浏览
0

我有两个框架(即由相同数量的顶点组成的两个网格),我正在尝试编写一个顶点着色器,线性插值以将第1帧变形为第2帧 . 我正在阅读一个教程,该教程展示了如何在旧版OpenGL . 算法基本上是:

GLBegin
 For each vertex in frame 1
  Send equivalent vertex to uniform variable in vertex shader from frame 2
  Send vertex from frame 1 to vertex shader
  (shader uses mix() to linearly interpolate between the two XYZ values)
GLEnd

但这不是OpenGL3中的事情 . 有人可以帮我想一个算法,我仍然可以在顶点着色器中使用mix()来创建两个网格/帧之间的变形?

1 回答

  • 0

    最简单的方法是使用两组位置属性和一个均匀的混合因子在0和1之间,然后通过GLSL的 mix 函数使用混合因子在它们之间混合 . 当你完全达到1.0时,你可以切换回因子0,但现在使用第二个网格作为第一个集合,只需更新顶点属性指针 .

相关问题