簡體   English   中英

正確定向3D網格以指向其前進方向

[英]Properly orienting a 3D mesh to point in the direction it's heading

我正試圖獲得一個網格來遍歷一個球體上的電路。 我拍攝了包裹在球體上的圖像,並對希望網格物體遵循的路徑進行了着色。 然后,我計算了路徑的所有(u,v)點。 使用(u,v)點,我將轉換為球面坐標以將網格放置到球體上,並設置繞X和Y軸的旋轉rot.xrot.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM