![](/img/trans.png)
[英]how to translate 3d mesh, given a view direction and a change in cursor position
[英]Properly orienting a 3D mesh to point in the direction it's heading
我正試圖獲得一個網格來遍歷一個球體上的電路。 我拍攝了包裹在球體上的圖像,並對希望網格物體遵循的路徑進行了着色。 然后,我計算了路徑的所有(u,v)點。 使用(u,v)點,我將轉換為球面坐標以將網格放置到球體上,並設置繞X和Y軸的旋轉rot.x
和rot.y
,以便網格與球體相切,並且面對球體的北極。 我的問題是使網格面向其前進方向。第三個旋轉變量rot.z
用於設置網格的前進方向。 目前,我得到了從第5點到第14點的(u,v)點,並取當前點和10個未來點的線段的仰角的平均值。 這是可行的,但是兩個缺點是航向非常頻繁地振動,並且在稍微急轉彎時航向也有不精確的趨勢。 什么是計算網格方向的好方法?
一種簡單的方法是構建旋轉矩陣。 這樣,您就不必考慮角度了,因為如果您知道方向以及上矢量或右矢量,則可以計算所有條目。 在您的情況下,方向是球體上的切線,而向上矢量是該點處的法線。
vec3 direction = tangent;
vec3 up = normal;
vec3 right = cross(direction,up);
mat3 m;
m[0] = right;
m[1] = up;
m[2] = direction;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.