什麼是骨重量,骨骼影響,關節,偏移和局部矩陣?互聯網上沒有特定的文章能夠很好地解釋邏輯。我仍然不知道每個骨骼是否有與其他模型組合在一起的不同模型。或者如何處理這些矩陣,如何設置骨骼,組合和皮膚...我會很高興,如果你可以分享任何文章或關於opengl骨骼動畫的知識。OpenGL中骨骼動畫背後的邏輯
4
A
回答
5
其中一些術語在不同實現之間會有所不同。與其試圖提供具體的定義,我寧願對皮膚的工作方式給出一個非常粗略的概述,因爲我認爲這就是你所要求的。
此外,這是不是特別GL具體...
主要的想法是,你把多邊形模型,並將其連接到一個骨架。模型中的每個頂點都分配給一個或多個骨骼。在這種情況下,骨骼實際上只是一種轉換,儘管它們通常被視爲骨架,因爲骨骼通常是在層次結構中創作的,並且自然會類似於實際的骨架。
A「聯合」可能僅僅意味着「骨」,或在其他情況下可能實際上是指兩塊骨頭的連接方式和關節...
當骨骼是分層次的,他們將有「本地」這些變換描述了他們相對於父母的變換。在運行時,轉換通常會被連接起來,以至於它們都在同一個空間中。
使用權重完成頂點向骨骼的分配。權重將通常爲加起來爲每個頂點1。重量可以通過靠近骨骼自動分配,但通常由藝術家手動調整。通常它們使用藝術包中的工具「繪製」到3D模型上。
在運行時,頂點由它們受其影響的每個骨骼轉換,最終的頂點位置是這些不同轉換結果的加權平均值。如何計算加權平均值可能會有所不同,但這是一般方法。
但是,對於運行時應用程序,通常很重要的是將影響頂點的不同骨骼的數量保持爲最小,並且可能存在相對較小的上限; 4,也許。因此,不是爲每個頂點提供骨骼中每個骨骼的權重,而是通常提供固定數量的聯合指數以及相應的權重。
請注意,您在剝皮時通常不會對紋理座標執行任何操作,但幾乎可以肯定必須重新計算法線和可能的切線向量。同樣,如何做到這一點可以因實現而有所不同。
相關問題
- 1. OpenGL骨骼動畫邏輯
- 2. OpenGL骨骼動畫性能
- 3. OpenGL ES2骨骼動畫
- 4. Android OpenGL ES2骨骼動畫子骨骼矩陣
- 5. 骨骼動畫在OpenGL(GLSL)與Assimp
- 6. 如何在three.js colladaloader對象中定位骨骼(骨骼動畫)
- 7. Collada和骨骼動畫
- 8. Assimp動畫骨骼轉換
- 9. Libgdx spine2d骨骼動畫
- 10. Three.js多個骨骼動畫
- 11. Directx 11骨骼動畫
- 12. AS3骨骼角色動畫
- 13. 在OpenGL ES中優化骨骼動畫的頂點
- 14. OpenGL ES適合執行骨骼動畫嗎?
- 15. 帶親子問題的骨骼動畫
- 16. 交換mecanim骨骼的動畫
- 17. 存儲骨骼動畫的SRT值
- 18. 骨骼動畫:如何手動派生Assimp骨骼偏移矩陣
- 19. 無法播放骨骼動畫
- 20. 骨骼動畫,轉換乘法
- 21. 骨骼動畫:綁定姿勢
- 22. Three.js骨骼動畫,bons重新計算
- 23. 將骨骼動畫複製到其他?
- 24. 骨骼(骨)動畫的角度在three.js所稍有不正確
- 25. 在opengl中形成圓的座標背後的邏輯
- 26. 功能背後的邏輯
- 27. Android背後的邏輯
- 28. MacOS'sExposé背後的邏輯
- 29. Android OpenGL中的流暢動畫過渡邏輯
- 30. 模型與骨骼動畫(攪拌機出口)three.js中的動畫不正確
感謝您的回答,抱歉我遲到的回覆。我有一個關於這些局部和絕對變換矩陣的問題,它們與我們在opengl中自定義生成的一樣,就像在這個鏈接中一樣:http://www.songho.ca/opengl/gl_transform.html(OpenGL變換矩陣)? – deniz 2013-02-24 10:39:43