3 개의 벡터를 포함하는 클래스가 있다고 가정합니다 (하나는 위치, 하나는 회전, 하나는 회전). 객체의 위치, 회전 및 크기를 상징하는 변형 행렬을 생성하는 데 사용할 수 있습니다. 그런 다음 부모를 추가합니다./개체 간의 자식 관계와 부모의 전역 변환 행렬에 자식의 로컬 변환 행렬을 곱하면 자식의 전역 행렬을 얻습니다.이 개체를 렌더링에 사용하기 때문에 부모가 회전하면 자식이 궤도처럼 회전합니다 이제는 자식의 로컬 변환 (전체 행렬이 아니라 별도의 구성 요소)을 얻을 수 있어야합니다. 나는 자식의 전역 변환을 알고 부모의 전역 변환을 알고 있습니다. 나는 아이의 지역을 곱하여 변환 얻을 수글로벌 위치/회전/스케일에서 로컬 위치/회전/스케일을 업데이트 하시겠습니까?
아이의 글로벌 정말 구체적으로이 작업을 수행 할 수 있어야 부모의 변환 inversed.However로 변환 :
1.To는 아이의 로컬 위치를 얻을 수있을 글로벌 위치와 부모의 글로벌 지위를 아는 것만으로 WITHOUT 모든 매트릭스를 생성합니다.
2. 전역 회전 및 부모의 전역 순환을 알기 만하면 자녀의 로컬 순환을 얻을 수 있습니다. WITHOUT은 모든 매트릭스를 생성합니다.
3. 어린이의 지역 규모를 알기 만하면 지구 규모와 부모의 지구 규모를 알 수 있습니다 WITHOUT은 모든 매트릭스를 생성합니다.
음, 무엇을 시도 했습니까? 정확히 1 점에 대한 귀하의 문제는 무엇입니까? – Hulk
음 Unity3D의 시스템처럼 똑똑해야합니다. Unity3D에서 객체의 회전을 변경할 때마다 객체의 위치가 자동으로 바뀌므로 회전합니다. 기본적으로 모든 시간마다 업데이트해야합니다. 하지만 내가 할 수있는 유일한 방법은 행렬을 생성하는 것입니다. 더 빠른 방법이 있는지 모르겠습니다. –
매트릭스를 생성하고 싶지 않은 이유를 설명해 주시겠습니까? 아마도 최종 목표를 말할 수 있다면 우리는 변형 행렬 생성을 피하는 중간 목표에 집중하는 대신에 도달 할 수 있습니다. – Michael