我正在编写一个代码来做一个软件换肤器(骨骼/皮肤动画),我正处于“优化”阶段(skinner工作得非常好,皮肤有一个4900个三角形网格,有22个骨头,1.09毫秒在Core Duo 2 Ghz(笔记本)上。我需要知道的是:
1)有人能告诉我(可能使用伪代码)将float3(3个浮点数组)(表示坐标)转换为float4x3矩阵吗?
2)有人能告诉我(可能使用伪代码)将float3(3个浮点数组)(表示法线)转换为float3x3矩阵吗?
我问这个,因为我知道在皮肤过程中你可以避免使用矩阵的一部分而不会在动画过程中得到任何改变。 (所以要恢复一些精心制作的时间)
谢谢!
答案 0 :(得分:1)
通过数学简化优化矢量/矩阵运算是可能的,但是很棘手。您可以找到有关here,here和here主题的一些信息。
现在,这可能不是你想要的,但......
您可以使用机器GPU(图形卡处理器)大大提高矢量/矩阵运算的计算性能。利用{{3>可以将许多运算增加几个数量级GPU上可用的处理。
有两个相当不错的库供C#开发人员用于GPGPU编程: