所以我有一个项目,我通过变形网格动画头像。
我有一个名为'current'的网格,它是一个可以操作并最终显示在屏幕上的网格。然后我有一堆变形目标,这些目标可以部分地并且根据它们的重量相互组合。
在我的代码中,我必须找到当前网格中的3D点与正在变形的3D点之间的差异。
我通过循环两个网格中的位置来找到点的差异。所以我对X,Y和Z点差异的计算如下:
double xDif = morphMesh.Positions[loop].X - currentMesh.Positions[loop].X;
double yDif = morphMesh.Positions[loop].Y - currentMesh.Positions[loop].Y;
double zDif = morphMesh.Positions[loop].Z - currentMesh.Positions[loop].Z;
假设网格有1000个位置,这是我目前使用的最多。这意味着1000次计算x 3.我的问题是,是否有更好的方法来执行该计算?
例如,有没有办法在psuedocode中执行此操作:
myDifferences = morphMesh.Positions - currentMesh.Positions
换句话说,在使用WPF的C#中有什么能更快地做到这一点吗?
我也在关注OpenCL,但还没有让它正常工作。
非常感谢!