0
我試圖定位對象對空間中的一個點,使用:如何定位對點目標在3D無沿方向矢量旋轉不需要
m_Z = glm::normalize(target - m_Position);
m_Y = glm::normalize(m_Y - glm::dot(m_Y, m_Z) * m_Z);
m_X = glm::normalize(glm::cross(m_Y, m_Z));
而且,儘管對象不「看」的指向3D,它似乎圍繞它自己的前向矢量(m_X)旋轉,這意味着UP矢量的方向不正確。所以這個對象有時會在顛倒的時候看着這個點...所以它就像是一個傾斜的頭部(圍繞本地向前的矢量旋轉)
我知道如何將對象定向到2D中的一個點 - 這不是我所追求的 - 我正在尋找一種方法來糾正3D中的upvector,以至於對象的「頂部」總是(或多或少)朝上,所以我需要該對象跟隨(看)點不只是左右,而且還會上漲&下來。
m_X = left vector of object
m_Y = up vector of object
m_Z = forward vector of object
target = point's world position
m_Position = object's world position
剛剛嘗試了一下,實際上它看起來像是預期的結果,謝謝你的幫助,標記爲答案,這對我幫助很大! – Jack