2010-01-20 107 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