看板 GameDesign 關於我們 聯絡資訊
如同azureblaze所說的 linked-nodes 每個node各自擁有自己的transform與mesh animation則是單純更新每個node的transform而已 skeletal mesh則是使用多個bone所組成的骨架 每個vertex使用多個index與weight來混合出結果 通常使用4組index/weight的vertex format animation則是更新bone的transform 除此還要運算vertex blending 使用CPU blending的好處是只需要運算一次 之後不管render pass幾次都不會重複運算 使用GPU blending的好處當然就是快速囉 不過multi-pass的時候還是會重複運算 當然現在GPU硬體已經進步到render2buffer了 所以也可以先用render2buffer的方式來做vertex blending 之後的multi-pass就可以用static mesh rendering的方式來最佳化 ※ 引述《azureblaze (AzureBlaze)》之銘言: : 傳統animation的作法是把模型切割成很多mesh : 像是大腿小腿身體各一個 : 然後分別定義每個mesh的平移旋轉縮放量做出keyframe : keyframe間再內插出他們的位置。 : 他最大的缺點就是要動就要整個mesh一起動 : 動動你的手指,你會發現皮膚上有些地方是幾乎不會動的 : 因此這樣的方式只能處理機械類的東西 : (或是用在那個手臂是長方體肩膀是球的美好時代) : skeletal(skinned) animation的作法會用傳統的方式弄出一個骨架 : 然後在每個vertex上指定每個骨頭對他的影響力 : 像是手臂中間的移動會完全照著手肘關節,可是越靠肩膀 : 受到肩膀關節位置的影響就會越大。 : 因此兩種動畫的製作差異算是頗大,所以無法靠轉檔處理 : (其實傳統要硬轉成skeletal的話可以指定一個mesh完全只 : 受一個骨頭影響,可是skeletal有額外的運算負擔所以大 : 概沒人會這樣做) : 就XNA的命名看來我覺得他應該是用兩個不同的東西來處理 : 這兩種animation,所以放不對的資料他會抱怨 : 另外有些animation還是混用的,那才麻煩XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.98.40