2009-12-10 50 views
2

我正在嘗試對圍繞球體移動的平面實施「查看」行爲,以便它們始終面向相機。如何在3D空間中實現「查看」行爲

到目前爲止我所知道的是,我知道飛機應該具有的法線,並且我知道它繞其局部Z軸的旋轉應該始終爲0.我認爲找出丟失的旋轉是非常平凡的操作值(X,Y),但到目前爲止,我什麼也沒找到。

簡而言之:如何使用正常和一個旋轉值提取平面的方向信息?或者,如果有人比使用正常人有更好的解決方案,這將是受歡迎的。

謝謝。

+0

你的問題有點不清楚。本地Z軸是否與正常相同?如何定義平面圍繞Z軸的旋轉?換句話說,一個旋轉值意味着什麼? – Beta 2009-12-10 16:24:27

+0

是的,本地Z和普通的一樣。 旋轉值表示平面在XY空間中的旋轉(Z軸爲樞軸)。 這是否澄清我的問題? – 2009-12-10 16:48:15

回答

1

想想這樣。您的飛機局部座標系中有兩個矢量,攝像機局部座標系中有兩個矢量。你需要一個變換矩陣,它將在這些座標系之間進行變換,以便向量排列。

分兩步進行。我不確定,但我認爲你正在試圖旋轉飛機的法線來對準眼球矢量。如果對這兩個向量進行歸一化,則可以從它們的叉積中得到一個旋轉軸,並從它們的點積中得到旋轉角的餘弦。用它來創建一個變換矩陣。

現在你想再做一次。再次,我不確定,但我認爲你說你想把飛機的本地Z軸與相機的向上向量對齊。所以,用這個變換矩陣變換Z軸,並再次計算一個旋轉,將其映射到相機的向上矢量。使用這個來創建第二個轉換矩陣。

現在將這兩個矩陣相乘以得到一個從平面的局部座標系轉換到相機的矩陣。

這就是你所追求的?

+0

謝謝,使用你的解決方案(並且爲了技術原因調整了一兩個東西),我纔開始工作。 – 2009-12-14 19:08:00