최종 변환 행렬의 올바른 곱셈 순서를 파악하는 데 어려움이 있습니다. 나는 항상 이상한 움직임이나 왜곡 된 도형을 얻습니다. 내 현재 모델은 다음과 같습니다.
단일 노드의 경우 곱셈 순서는 다음과 같습니다.
L = S * R * T
어디에
L = 국소 변형 행렬
S = 로컬 스케일 매트릭스
R = 국부 회전 행렬
T = 로컬 변환 매트릭스
노드의 세계 변형의 경우 :
W = PW * L
어디에
W = 세계 변환 행렬
PW = 부모 세계 변환 행렬
L = 위에서 계산 한 국소 변환 행렬
렌더링 할 때 각 노드에 대해 행렬을 계산합니다.
MV = Inv (C) * NW
어디에
MV = 특정 노드에 대한 모델 뷰 변환 매트릭스
Inv (C) = 역 카메라 변환 행렬
NW = 위에서 계산 된 노드의 세계 변환 행렬.
마지막으로, 셰이더에는 다음과 같은 변형이 있습니다.
TVP = PRP * MV * VP
어디에
TVP = 최종 변환 된 정점 위치
PRP = 원근 매트릭스
MV = 위에서 계산 한 노드의 세계 변환 행렬
VP = 변형되지 않은 정점 위치.
현재 모델에서 로컬 회전이있는 자식 노드는 카메라를 변환 할 때 이상하게 회전합니다. 곱셈 순서는 어디에서 잘못 되었습니까?