每个顶点的OpenGL ES 2.0着色器旋转

时间:2012-11-10 14:25:28

标签: rotation opengl-es-2.0 vertex-shader

这个问题实际上与皮肤有关。 假设我们有一个顶点组(骨骼)作为浮动缓冲区的模型,我们将它传递给着色器。有没有办法部分旋转顶点组? 缓冲区是x,y,z,u,v,n1,n2,n3,boneid,rotfactor。 (rotfactor是一个浮点数,表示我们要应用于此顶点的%旋转量)。因此,如果使用角度= 45的旋转矩阵旋转组,是否有任何方法可以旋转每个顶点45 * rotfactor? 感谢。

1 个答案:

答案 0 :(得分:0)

这非常详细地描述了您正在尝试做的事情:

http://www.opengl.org/wiki/Skeletal_Animation

请注意以下这一行:

uniform mat4 Bone[10];  //Array of bones that you compute (animate) on the CPU and you upload to the shader

正如它所暗示的那样,您需要为每个骨骼计算一个矩阵。您将在CPU端的应用程序代码中执行此操作,即着色器中的。然后,您将这些矩阵传递到统一变量Bone