天天看点

UE5 坐标转化

一、先附上UE官方有关坐标空间的介绍:坐标空间术语

二、在C++中进行坐标转化,直接附上代码:

FMinimalViewInfo MinimalViewInfo = FMinimalViewInfo();//实例化一个视野信息(FMinimalViewInfo),配置以下参数给它
	MinimalViewInfo.Location = 相机位置信息;
	MinimalViewInfo.Rotation = 相机旋转信息;
	MinimalViewInfo.FOV = 相机的FOV;
	MinimalViewInfo.DesiredFOV = 相机的FOV;
	MinimalViewInfo.AspectRatio = 相机横纵比;
	
	FMatrix ViewMatrix;
	FMatrix ProjectionMatrix;
	FMatrix ViewProjectionMatrix;
	//得到了三个转化矩阵
	//ViewMatrix:从世界空间转化到摄像机空间的矩阵
	//ProjectionMatrix:从摄像机空间转化到裁剪空间的矩阵
	//ViewProjectionMatrix: 从世界空间转化到裁剪空间的矩阵,即以上两个矩阵相乘
	UGameplayStatics::GetViewProjectionMatrix(MinimalViewInfo, ViewMatrix, ProjectionMatrix, ViewProjectionMatrix);
	//得到各个转化矩阵后就可以利用矩阵变换点或者向量了:
	FVector PosInViewSpace = ViewMatrix.TransformPosition("你想变换的坐标") ;
	FVector VecInViewSpace = ViewMatrix.TransformVector("你想变换的向量");
           

继续阅读