테드옹의 VFX
Houdini Orient 총정리 본문
[사전지식]
- 쿼터니언은 x,y,z 회전 정보를 4원수 복소수로 표기한 것 (S, T는 존재하지 않음)
- orient를 vector3로 구성하려면 N(z-axis), up(y-axis)가 필요
(*정확히는 저 두 정보를 이용해서 3차원 직교좌표 행렬을 만들고, 그것을 사원수로 변환하는 것)
matrix3 R = [Side.x Up.x N.x]
[Side.y Up.y N.y]
[Side.z Up.z N.z]
N과 up은 각각 z, y축이고 저 둘을 외적하면 Side축도 만들 수 있기 때문에 N과 up이 있으면 사원수를 만들 수 있다.
만약 N정보만 있어도 (0,1,0)벡터와 외적하여 Side벡터를 만들고, N과 Side를 외적하여 up벡터를 만들 수도 있다.
[N에서 Orient로, Orient에서 N으로]
1. p@orient = quaternion(maketransform(@N, @up))
2-1. 현재 가진 orient로 N과 up을 만드려면
@N = qrotate(p@orient, set(0,0,1))
@up = qrotate(p@orient, set(0,1,0))을 사용
2-2. orient로 matrix를 만드려면
3@transform = qconvert(p@orient)
4@fulltransform = qconvert(p@orient, v@P)
[쿼터니언 회전]
이후 quaterniontoeuler()함수를 이용해 Rx, Ry, Rz정보를 추출하면 World Transform에 사용할 수 있다.
혹은 slerp()함수를 이용해 회전을 선형보간 할 수도 있다
'Houdini' 카테고리의 다른 글
Hython Render Command (0) | 2024.02.23 |
---|---|
Python Panel 정리 (0) | 2023.11.27 |
Space Transformation (1) | 2023.10.05 |
Guide Deform Wrangle (0) | 2023.09.09 |
Houdini Vellum 정리 (1) | 2023.08.17 |