GPU 骨骼动画和法线。有没有快速的方法来获得转置(逆(m))?

Posted

技术标签:

【中文标题】GPU 骨骼动画和法线。有没有快速的方法来获得转置(逆(m))?【英文标题】:GPU Skeletal Animation and Normals. Is there fast way to get transpose(inverse(m))? 【发布时间】:2018-01-04 21:50:51 【问题描述】:

为我的游戏编写硬件蒙皮,并且还需要为法线设置动画。从article 我了解到,通常要转换法线,您需要这样的东西:

transformed_normal = transpose(inverse(bone[i])) * normal;

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

编辑:找到了这个很酷的解决方案https://***.com/a/46518010/9173149

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于GPU 骨骼动画和法线。有没有快速的方法来获得转置(逆(m))?的主要内容,如果未能解决你的问题,请参考以下文章

可以使用骨骼动画的对象是哪两种情况

3DSMAX 中的CS 骨骼动画插件初探

进击3D游戏界!Cocos Creator快速实现骨骼动画交互!

进击3D游戏界!Cocos Creator快速实现骨骼动画交互!

废弃了两年多的骨骼动画终于又动起来了。

3dmax展开盒子动画要用到骨骼吗?怎么设置骨骼和权重