找到两个网格差异的最快方法

时间:2014-02-12 23:22:07

标签: c# wpf 3d

所以我有一个项目,我通过变形网格动画头像。

我有一个名为'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,但还没有让它正常工作。

非常感谢!

0 个答案:

没有答案