Nuke/3D

Nuke 3D Matrix Knob 이해하기

르면가게 2024. 12. 13. 16:09

Enter the Matrix Knob

Nuke 6.1에서는 3D 노드(예: ReadGeo, Axis, Camera 등)에서 Matrix Knob 기능이 추가되었습니다. 이 기능은 노드의 변환 데이터를 4x4 행렬 형태로 표현하며, 로컬 및 월드 데이터를 포함합니다. 이를 활용하면 복잡한 3D 변환 작업을 간소화할 수 있습니다.


1. Matrix Knob의 기본 개념

  • 4x4 행렬(homogeneous coordinates)
    행렬은 노드의 변환 데이터를 수학적으로 표현한 방식이에요.
    • 로컬(Local) 행렬: 해당 노드의 직접적인 변환값을 저장.
      → 일반적인 Transform Knob 값을 반영하며, "Specify Matrix"를 체크하면 직접 행렬 값을 수정할 수 있어요.
    • 월드(World) 행렬: 부모 노드의 영향을 포함한 최종적인 변환 데이터를 저장.
      → 이 값을 통해 노드의 절대적인 XYZ 좌표를 확인할 수 있어요.

2. 행렬 데이터 읽기

행렬 데이터를 직접 읽는 것은 복잡해 보이지만, 기본적인 구조를 이해하면 간단합니다.

  • 평행이동(Translation):
    • 행렬의 마지막 열의 마지막 세 칸에 저장.
      단, Scale, Skew, Pivot 값이 없을 때만 적용됩니다.

  • 회전(Rotation):
    • 행렬의 특정 셀에 삼각함수 값(sine/cosine) 형태로 저장.
      예: Y축 회전 45도 → 0.707 (45도의 사인 또는 코사인 값)
      스케일, 스큐, 피벗 값이 추가되면 데이터가 달라질 수 있어요.

3. 예제 시나리오: 카메라 계층 구조 데이터 복사

목표

Camera1월드 변환 데이터Camera2로 복사.

  • Camera1은 Axis에 종속되어 있고, Camera2는 독립적인 데이터가 필요해요.

과정

  1. Camera2 설정
    • Camera2의 Local Matrix 그룹에서 "Specify Matrix" 체크.
  2. Edit Expressions 사용
    • Animation 메뉴 → Edit Expressions를 선택.
    • 모든 Local Matrix 칸에 다음 표현식을 입력
Camera1.world_matrix
  1. 결과 확인
    • Camera2의 Local Matrix가 Camera1의 World Matrix 데이터를 복사.
    • 이제 Camera2는 Camera1의 모든 월드 변환 데이터를 포함하면서 독립적으로 동작해요.

4. 활용 방법 요약

  • 로컬 데이터(Local Matrix): 개별 노드의 변환값을 직접 수정하거나 표현식으로 연결.
  • 월드 데이터(World Matrix): 부모 변환을 포함한 절대 좌표계를 활용.
  • Specify Matrix: 행렬 값을 수동으로 설정하거나, 다른 노드의 데이터를 복사할 때 사용.

5. 한눈에 보는 Matrix Knob 구조

Local Matrix 현재 노드의 변환 데이터를 표현. 기본 Transform Knob과 연계.
World Matrix 부모 변환을 포함한 절대 위치 데이터를 표현.
Specify Matrix 행렬 값을 수동으로 설정하거나 표현식으로 조작 가능.