Camera视图变换
这里Camera视图变换,就是常说的从世界坐标变换到眼睛坐标。因此View Matrix就是世界系到眼睛坐标系的变换矩阵。
CameraComponent->GetCameraView()->GetViewProjectionMatrix()会同时输出3个矩阵:
- View Matrix
- Projection Matrix
- View Projection Matrix
这里分析一下UE4里的眼睛坐标系的朝向问题:
- 在场景原点放置一个Camera Actor,姿态清零
- 在场景原点放置一个Cube Actor,姿态清零
- CameraActor->CameraComponent->GetCameraView()->GetViewProjectionMatrix(&OutViewMatrix),用OutViewMatrix.TransformPosition(Cube->GetActorLocation()),打印出这个新的Postion
- 总结一下:UE4里眼睛坐标系为左手系,X->右,Y->上,Z->前。这里的前后左右上下是站在眼睛的角度来说的。
应用:
- 根据物体的眼睛坐标(即在眼睛坐标系里的坐标)的Z值,就能判断出物体离眼睛成像面的远近关系,或叫深度关系。这是最直接的应用了。
UE坐标空间、坐标系
注意Clip空间的描述:After the perspective projection matrix was applied. Note that W in Clip space is the same as View Space Z. 也就是说:Wclip=Zeye
在Clip空间内的culling操作:-|w|<=x,y<=|w|, z<=w为可视