天天看點

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("你想變換的向量");
           

繼續閱讀