矩阵向量变换

2024-05-09

我正在编写一个代码来制作软件蒙皮器(骨骼/皮肤动画),并且我正处于“优化”阶段(蒙皮器工作得很好,并且在 Core 上 1.09 毫秒内对 4900 个三角形网格与 22 个骨骼进行蒙皮Duo 2 Ghz(笔记本))。我需要知道的是:

1)有人可以告诉我如何(也许使用伪代码)将 float3 (3 个浮点数的数组)(表示坐标)转换为 float4x3 矩阵吗?

2)有人可以告诉我如何(也许用伪代码)将 float3 (3 个浮点数的数组)(代表法线)转换为 float3x3 矩阵吗?

我问这个问题是因为我知道在蒙皮过程中,您可以避免使用部分矩阵,而不会在动画过程中进行任何更改。 (这样可以节省一些阐述时间)

Thanks!


通过数学归约优化向量/矩阵运算是可能的,但很棘手。您可以找到有关该主题的一些信息here http://chortle.ccsu.edu/VectorLessons/vectorIndex.html, here http://www.dickbaldwin.com/KjellTutorial/KjellVectorTutorialIndex.htm, and here http://gpwiki.org/index.php/3D:Matrix_Math.

现在,这可能不完全是您正在寻找的,但是......

您可以使用机器GPU(图形卡处理器)来极大地提高矢量/矩阵运算的计算性能。通过利用以下优势,许多操作可以增加几个数量级GPU 上可用的处理。

有两个相当不错的库可供 C# 开发人员用于 GPGPU 编程:

  • 微软的加速器库 http://research.microsoft.com/en-us/projects/Accelerator/, 此处提供文档 ftp://ftp.research.microsoft.com/pub/tr/TR-2005-184.pdf.
  • Brahma http://brahma.ananthonline.net/- 一个面向 C# 开发人员的开源 GPU 库,利用 LINQ。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

矩阵向量变换 的相关文章