2014-10-17 42 views
0

因此,在對Morph和Skeletal動畫(從Blender導出)進行一些試驗後,我發現骨架文件比morph文件小近10倍。看起來明顯骨架是更好的選擇,但我想知道是否有利弊使用它。three.js animation:Skeleton/Skinning對Morph

具體而言,我懷疑需要更多的處理才能對骨架進行動畫而不是變形。什麼時候比另一個更好?如果Im動畫100個模型而不僅僅是一個,這會很重要嗎?如果骨架確實需要更多處理,並且我在線託管應用程序,那麼帶寬的減少(由於文件大小較小)是否值得在運行時需要進行額外的處理?

感謝您的任何意見。

回答

3

事實上,骨骼動畫需要稍微更多的處理,因爲骨骼的矩陣必須在每幀中計算(以JS)並上傳到GPU。使用變形動畫時,所有插值都可以在GPU端完成。所以這真的是一個記憶性能的交易。

當你確實有很多動畫在同一時間播放時,處理確實會有一定的成本。但是,與此同時,幾種不同的變形動畫將會有很大的文件大小。

正如你所說。

所以這取決於情況。您應該注意一些優點:

  • 如果動畫不是太快或太複雜,則可以以每秒降低的幀數存儲變形動畫,這樣您的文件就會變小。
  • 骨骼動畫有骨骼信息,可用於將東西附着到模型上,例如,你有一個士兵模型,你想附加不同的槍支。隨着變形動畫,你不能這樣做,所以你不得不動畫士兵和每一支槍。
  • 實際上,您可以在同一個應用程序中使用這兩種類型的動畫,併爲每次使用選擇最適合的動畫。
  • SkinnedMesh-es,與MorphAnimMesh-es相反,目前不支持光線投射。如果您需要光線投射,例如爲了選擇對象,你需要暫時使用變形動畫。