Vector3方向性属性值

时间:2018-08-01 18:57:41

标签: c# vector directx-11

我无法找到有关此文档(可能只是没有在search中输入正确的Google术语)。我目前正在重新编写内部摄像机,并且想知道Vector3.ForwardRHVector3.ForwardLH的值是什么。我已经知道LeftRightUpDown的值,对于传统的Vector3来说,它们的值足够简单:

Vector3.Left  = (-1,  0, 0);
Vector3.Right = ( 1,  0, 0);
Vector3.Up    = ( 0,  1, 0);
Vector3.Down  = ( 0, -1, 0);

我也知道在Unity中,Vector3类具有属性forwardback,它们分别对应于Z轴:

Vector3.Forward  = (0, 0,  1);
Vector3.Backward = (0, 0, -1);

问题 :但是,DirectX 11为forwardback具有两个属性,分别是LH和{{ 1}}变体。是否有人有关于这些值是什么以及为什么RHLH不同的任何文档?为什么大多数现代引擎都只使用forwardback代替?

注意 :谢谢大家的帮助,如果您觉得我需要在此信息中添加更多信息以进一步阐明信息,请随时让我在评论中知道,我会尽力进一步完善它。

ALSO :指向RH的链接是我的实际搜索。

答案 GoogleLH代表左手坐标系和右手坐标系之间的差异。需要根据您在DirectX中的坐标系选择RH属性。例如,我的坐标系是右手系,因此我需要使用ForwardForwardRH

1 个答案:

答案 0 :(得分:2)

LH和RH分别代表左手坐标系和右手坐标系。 Z轴将指向相反的方向,具体取决于您使用的坐标系。 DirectX不知道您使用的是哪个系统,因此它同时提供了常量和方便性。

其他游戏引擎(例如Unity)仅提供一个常量,因为它们假定每个人都使用相同的坐标系。