将世界 space 向量转换为本地 space

Transform world space vectors to local space

我正在编写一个将球体与面光源相交的光线追踪程序。我有那个向量

如何将该向量从世界坐标系转移到局部坐标系。我搜索了一个 c++ 算法,该向量的转换位于同一个半球。谢谢。

注意: 例如,该局部坐标系中的法向量坐标为: n2 = 向量(x=0, y=1, z=0)

编辑: 我正在搜索 "wo1"、"wi1" 和 "n2" 本地 xyz 坐标值。

您将位于世界坐标系中的矢量投影到构成本地坐标系基础的矢量。

例如,如果您的局部坐标系基础是跨越局部向量 space 的三元组向量(例如,LxLyLz)。 wo 本地系统中的坐标将是:

wo_local_x = wo . Lx;
wo_local_y = wo . Ly;
wo_local_z = wo . Lz;

其中 . 表示点积。