Vector3定向属性值



我还没有找到关于这方面的文档(可能只是在谷歌中没有输入正确的搜索词(。我目前正在重新编写一台内部相机,想知道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都有两个属性,即LHRH变体。有人有关于这些值是什么以及为什么LHRH不同的文档吗?为什么大多数现代发动机只使用forwardback

注意:感谢大家的帮助,如果你觉得我需要在这篇文章中添加更多信息来进一步澄清,请随时在评论中告诉我,我会尽我所能进一步充实它。

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

答案LHRH表示左手坐标系和右手坐标系之间的差异。Forward属性需要根据DirectX中的坐标系进行选择。例如,我的坐标系是右旋的,所以我需要使用ForwardRHBackwardRH

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

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

最新更新