假設我有一個包含3個向量的類(一個用於位置,一個用於縮放,一個用於旋轉),我可以使用它們生成一個變換矩陣,用於表示3D空間中對象的位置,旋轉和大小。然後,我將父項/子對象之間的關係,我將父子全局變換矩陣乘以子對象的局部變換矩陣,我得到子對象的全局變量矩陣,這是我用來渲染對象的那個對象,所以當父對象旋轉時,子對象圍繞它旋轉。現在我需要能夠得到一個孩子的本地變換(不是整個矩陣,只是單獨的組件)。我知道孩子的全局變換,我知道父母的全局變換。從全球位置/旋轉/比例更新本地位置/旋轉/比例?
我能得到孩子的地方乘以變換孩子的全球受父母的變換inversed.However變換我真正需要的是能夠明確地做到這一點:
1.To能夠得到孩子的局部位置,只要知道它的全球位置和父母的全球位置無生成任何矩陣;
2.爲了能夠得到孩子的地方輪換,只要知道它是全球的旋轉和父母的全球旋轉沒有生成任何矩陣;
3.只要知道它的全球尺度和父母的全球尺度而不是可以生成任何矩陣;
那麼,你有什麼嘗試?例如,第1點你的問題到底是什麼? – Hulk
那麼我需要它像Unity3D中的系統一樣聰明。Unity3D每當你改變一個對象的旋轉時,它的位置就會自動改變,所以它們隨之旋轉。基本上我需要它每次更新一切,但我能做到的唯一方法就是生成矩陣。我不知道是否有更快的方法。 –
你能解釋爲什麼你不想生成任何矩陣?也許如果你能告訴最終目標,我們可以嘗試實現它,而不是專注於避免生成變換矩陣的中間目標。 – Michael