我无法找到有关此文档(可能只是没有在search中输入正确的Google术语)。我目前正在重新编写内部摄像机,并且想知道Vector3.ForwardRH
和Vector3.ForwardLH
的值是什么。我已经知道Left
,Right
,Up
和Down
的值,对于传统的Vector3
来说,它们的值足够简单:
Vector3.Left = (-1, 0, 0);
Vector3.Right = ( 1, 0, 0);
Vector3.Up = ( 0, 1, 0);
Vector3.Down = ( 0, -1, 0);
我也知道在Unity
中,Vector3
类具有属性forward
和back
,它们分别对应于Z
轴:
Vector3.Forward = (0, 0, 1);
Vector3.Backward = (0, 0, -1);
问题 :但是,DirectX 11为forward
和back
具有两个属性,分别是LH
和{{ 1}}变体。是否有人有关于这些值是什么以及为什么RH
和LH
不同的任何文档?为什么大多数现代引擎都只使用forward
和back
代替?
注意 :谢谢大家的帮助,如果您觉得我需要在此信息中添加更多信息以进一步阐明信息,请随时让我在评论中知道,我会尽力进一步完善它。
ALSO :指向RH
的链接是我的实际搜索。
答案 :Google
和LH
代表左手坐标系和右手坐标系之间的差异。需要根据您在DirectX中的坐标系选择RH
属性。例如,我的坐标系是右手系,因此我需要使用Forward
和ForwardRH
。
答案 0 :(得分:2)
LH和RH分别代表左手坐标系和右手坐标系。 Z轴将指向相反的方向,具体取决于您使用的坐标系。 DirectX不知道您使用的是哪个系统,因此它同时提供了常量和方便性。
其他游戏引擎(例如Unity)仅提供一个常量,因为它们假定每个人都使用相同的坐标系。