2010-01-20 149 views
1

我正在做一个代码做一个软件皮肤(骨/皮肤动画),我在“优化”阶段(skinner工作得很好,皮肤与22个4900三角形网格在Core Duo 2 Ghz(笔记本)上1.09毫秒的骨骼)。我需要知道的是:向量转换与矩阵

1)有人可以告诉我的方式(也许与伪代码)以float3x3矩阵变换float3(3浮点数组)(代表一个坐标)?

2)有人可以告诉我的方式(可能与伪代码)float3x3矩阵变换float3(3浮点数组)(代表正常)?

我问这个,因为我知道在蒙皮过程中,您可以避免使用矩阵的一部分,而不会在动画过程中发生任何变化。 (所以要恢复一些细化时间)

谢谢!

+0

刚刚发现此问题。我在这里发布了一个类似的例子,它包含了一些类似C代码的机制的更详细的答案:http://stackoverflow.com/questions/2944670/ – 2010-06-01 12:32:05

回答

1

通过数学缩减来优化矢量/矩阵运算是可能的,但是很棘手。您可以在主题hereherehere中找到一些信息。

现在,这可能不是你要找相当的东西,但...

您可以使用本机GPU(图形处理器卡),极大地增加向量的计算性能/矩阵操作。利用GPU上可用的SIMD处理器,许多操作可以增加几个数量级。

有两种可用的C#开发人员相当好的库GPGPU编程:

+0

使用GPU是没有问题的。或者,我已经有了一个Hardware skinner,它也可以正常工作,但是我必须为旧版卡(GPU的速度比CPU(比如Intel X3100卡)慢)/冲突计算DX9提供软件回退设备不支持Stream Out功能(计算边界结构)。 无论如何,我会看看等待一些其他答案的链接,也许有一些伪代码。无论如何感谢 – feal87 2010-01-20 20:49:15

+0

请注意,MS Accelerator尚未用于商业用途。 – 2011-04-13 15:51:39