2011-01-19 63 views
0

我的模型是軸對齊的。在斜坡上繪製模型

我知道我想繪製的表面的法線;如何計算我應該用來繪製垂直於曲面的模型的旋轉或旋轉矩陣?

+0

什麼是上下文?你需要什麼?你是否需要數學將模型的所有頂點轉換到新的位置,你只是想在一些渲染管道中繪製它,你只是想了解它背後的數學嗎?你的問題是什麼? – wich 2011-01-20 10:43:27

+0

我想設置GL模型視圖矩陣,這樣我就可以在我的模型VBO中繪製臉部(我知道xyz),並與正常的 – Will 2011-01-20 10:48:21

回答

3

好吧,如果ü爲單位向上向量和ñ是單位表面正常的,那麼你想,輪流üň旋轉。 (這種旋轉是不是唯一的:你可以後撰寫關於ü任何旋轉之前,任何繞ñ

如何計算這個旋轉?那麼,這取決於你正在使用的框架或API,以及如何表示旋轉。一個體面的框架有一個API調用,例如在Unity 3D中有Quaternion.FromToRotation

如果你沒有API調用,那麼你可以自己解決。 (a,θ)。這裏θ是向量ù和之間的角度Ñ(可以計算使用cosine ruleù·Ñ = | Ü | | Ñ | COSθ),和一個是垂直於兩個矢量的軸:a = u×n。 (有兩種特殊情況:當ü = ñ空旋轉就行了,如果ü = - ñ任何轉半圈的任何向量垂直於ü就行了。)

如果您使用的是OpenGL,現在可以撥打glRotate

如果你甚至沒有那個......好吧,你沒有業務問這種基本問題!但是see Wikipedia關於如何將軸角表示轉換爲矩陣表示。