1. GPG 2. Section 2. Mathmatics 2.5
평행 수송 프레임
(Parallel Transport Frame)
DevRookie Study, 2011. 10.22 박민근(알콜코더)
2. 개요
• 위치가 이동할 때, 방향도 자연스럽게 변경 되어야 한다.
• 패스 카메라에서 카메라의 경로의 변화에 잘 들어 맞게, 카메라
의 방향이 바뀌어야 한다.
• 이러한 안정적인 방향 전환에 도움이 될 수 있는것이 바로
평행 수송 프레임 방법
3. 주석
• 위치 정보 만을 가지고, 부드러운 방향 전환을 만들어 낼 때 사용
• 스플라인은 위치의 부드러운 보갂, 이것은 방향의 부드러운 보갂
• 패스 카메라, 궤적 이펙트, 미사일 방향등에서 자주 사용한다
• 미사일은 이동 위치만 있을 뿐, 방향이 없다
• 방향이 갑자기 급변하게 되면, 이상하게 보인다
4.
5.
6. Parallel Transport on a Torus - Houdini and Python
You can watch it here:
http://vimeo.com/11706639
http://vimeo.com/11706639
About this video:
"A vector is parallel transported on a torus manifold.
원본 위치 <http://vimeo.com/11706639> The little line vectors on each point represent the frame field.
Not quite sure this is right because info on this is a little hard to find, but I think it is correct
unless a mistake has found its way in."
7. 활용
• 지오메트리의 생성에도 사용할 수 있다
• 로프팅(lofting) : 2D 도형을 기반으로 3D 지오메트리를 생
성한다
• 2D 도형의 방향들이 곡선 경로를 제대로 따라가야, 매끄러
운 3D 모델이 나온다
8. 특징
• 매끄러운 결과를 얻을 수 있는 이유
• 기존 프레임에 기반하여, 조금씩만 회전 시키기 때문
• 대싞 임의의 한 프레임을 계산하기 위해서는 앞에서부터 순
차적으로 전부 계산해 와야 한다.
• (이에 비해 뒤의 다른 두방법은 특정 위치의 프레임을 바로
계산할 수 있다)
9. 기법
• 초기 프레임을 정하고, 곡선에 따라 옮기되, 각 단계마다 프레임
을 곡선과 최대한 평행이 되도록 회전 시킨다
10. 곡선 C
다음 프레임 F2의 위치는 t에서의 C값
t-1에서의 기존 프레임 F1 F2의 방향은 F1을 축 A에 대해서 각도 a 만큼 회전시키면 얻
t-1에서의 접선 T1 (t-1에서의 1차 도함 을 수 있다
수, 즉 C의 속도) A = T1 X T2
T에서의 접선 T2 a = ArcCos((T1내적T2)/(|T1||T2|))
접선들이 평행하다면 회전은 생략할 수 있다 (T1 X T2
가 0이면)
11. 주의 사항
• 움직이는 객체의 방향에 적용할 때
• 방향 전환이 너무 안정적일 수도 있다
• 비행기의 경우 동체를 전혀 기울이지 않고, 방향 전환이 되면
이상하게 보인다.
12. [비교]프래넷 프레임
• 다음과 같은 세 개의 직교 축으로 만들어 짂다
• 곡선의 접선
• 접선과 2차 도함수의 내적
• 이상의 두벡터들의 외적 벡터
13. [비교] 프래넷 프레임
2차 도함수의 변화에 의해서,
방향이 뒤집어 지는 경우가
생긴다.
14. [비교]픽스드-업 방법
• 접선 T와 임의의 벡터 V(픽스드-업 벡터)를 통해서 프레임을 생
성한다.
• 방향 벡터 D = T / |T|
• 우향 벡터 R = D X V / | D X V |
• 상향 벡터 U = R X D
• [*주] 게임에서 특정 위치에서 방향 좌표계를 구할 때 가장 자주 쓰는 방식 –
갂단하다
• 궤적 이펙트, 미사일 방향등…