#588 Camera视图变换   Coordinate System     UE4     vector     about a year ago (owner) Document
这里Camera视图变换,就是常说的从世界坐标变换到眼睛坐标。因此View Matrix就是世界系到眼睛坐标系的变换矩阵。
CameraComponent->GetCameraView()->GetViewProjectionMatrix()会同时输出3个矩阵:
  • View Matrix
  • Projection Matrix
  • View Projection Matrix
这里分析一下UE4里的眼睛坐标系的朝向问题:
  1. 在场景原点放置一个Camera Actor,姿态清零
  2. 在场景原点放置一个Cube Actor,姿态清零
  3. CameraActor->CameraComponent->GetCameraView()->GetViewProjectionMatrix(&OutViewMatrix),用OutViewMatrix.TransformPosition(Cube->GetActorLocation()),打印出这个新的Postion
    • 当CubeActor的位置为(0,0,0)时,打印出(0,0,0,1)
    • 当CubeActor的位置为(10,0,0)时,打印出(0,0,10,1) => 表明UE4里的眼睛坐标系中往前看的方向是该坐标系的Z轴
    • 当CubeActor的位置为(0,10,0)时,打印出(10,0,0,1) => 表明UE4里的眼睛坐标系中往右看的方向是该坐标系的X轴
    • 当CubeActor的位置为(0,0,10)时,打印出(0,10,0,1) => 表明UE4里的眼睛坐标系中往上看的方向是该坐标系的Y轴
  4. 总结一下:UE4里眼睛坐标系为左手系,X->右,Y->上,Z->前。这里的前后左右上下是站在眼睛的角度来说的。
应用:
  • 根据物体的眼睛坐标(即在眼睛坐标系里的坐标)的Z值,就能判断出物体离眼睛成像面的远近关系,或叫深度关系。这是最直接的应用了。