1
我試圖得到的lookAt功能的工作,我已經取得了一些成功:處理四元數「注視」功能 - 保持直立字符
public virtual void LookAt(Vector3 point)
{
Vector3 fw = Forward;
Vector3 delta = (point - Position).Normalized();
if (delta.LengthSquared > 0)
{
Vector3 axis = Vector3.Cross(delta, fw);
float angle = Vector3.CalculateAngle(delta, fw);
if (angle > 0)
{
angle *= -Math.Sign(Vector3.Dot(Vector3.Cross(axis, fw), delta));
Rotation *= Quaternion.FromAxisAngle(axis.Normalized(), angle);
}
}
}
這工作,但不能拿考慮到我不想要任何滾動。所以方向是正確的,但我需要修理我的相機卷。現在,我知道我可以通過從AxisAngle創建一個四元數來旋轉它,但我不知道如何獲得當前位置和直立位置之間的角度!?
編輯:現在使用matrix.lookAt並轉換爲四元數。
哇,我想我一直在尋找這樣的功能幾天。非常感謝! – pixartist