GPU骨架动画和法线.有快速的转换方法(反向(m))?

Ton*_*rge 2 opengl shader glsl normals skeletal-animation

为我的游戏编写硬件皮肤,并且还需要为法线制作动画.从这篇文章中我了解到,通常要改变法线,你需要这样的东西:

transformed_normal = transpose(inverse(bone[i])) * normal;
Run Code Online (Sandbox Code Playgroud)

我不能通过制服将第二组预先计算的转置(反向(骨骼))传递给着色器,因为我没有足够的制服.所以我必须在顶点着色器中计算这个转置(inverse(bone [i]))(对于数千个顶点中的每一个都是一次又一次),不是吗?有没有更快的方法来做到这一点?这个操作的一些便宜和肮脏的近似?

编辑:找到这个很酷的解决方案/sf/answers/3256260731/

Nic*_*las 5

处理此问题的典型方法是不在您的骨骼矩阵中放置缩放.如果骨骼转换仅具有旋转和平移,则不需要进行反转/转置.