-
previousViewProjectionMatrix 를 가져오고 싶을때게임 개발 2020. 10. 8. 21:11
몇몇 특이한 상황에서는 View/Projection Matrix를 사용해야할 때가 있다.
하지만 SRP에서인가(아마도?)는 previousViewProjectionMatrix 이 업데이트 되지 않는다.
그렇다면 간단히 Projection * View를 하면 될것 같고
이에 해당하는 projectionMatrix * worldToCameraMatrix 를 구하면 바로 될 것 같지만...
다른값이 나온다. 아주 다른값도 아닌 뭔가 비슷한 이상한값이 나온다.
이게 좌표계 문제인데.. previousViewProjectionMatrix는 자동으로 DX좌표계로 변환해 주지만
그게 아니라면 직접 해줘야한다.
DX에서라면 다음과 같이 해결할 수 있다.
Matrix4x4 p = Camera.main.projectionMatrix;
// D3D에서는 Y반전
for (int i = 0; i < 4; i++)
{
p[1, i] = -p[1, i];
}
// D3D 범위로 변환
for (int i = 0; i < 4; i++)
{
p[2, i] = p[3, i] * 0.5f - p[2, i] * 0.5f;
}'게임 개발' 카테고리의 다른 글
URP 약어 (0) 2021.06.05 MetaHuman to ALS v4 for UE4 #2 (0) 2021.06.01 MetaHuman to ALS v4 for UE4 #1 (0) 2021.05.26 S3, DXT, BC (0) 2021.01.06 Compute Shader에서 Dispatch와 numthreads의 관계 (0) 2020.09.23