붉은색 박스가 A 위치에서 출발하여 B위치 까지 이동하는 경우를 생각해 보자.
1.
사실감 있는 이동을 위해서는,
A에서는 점점 가속 되다가, B에서는 점점 감속되어야 한다.
2.
Impact가 있는 이동의 경우
A에서 최고 속도가 될 것이고, B지점에 가까워 질 수록 감속이 되어야 한다.
감속률이 1/2 즉 0.5라고 하고 계산을 하면,
첫 번째 프레임에서 박스를 A와 B의 중간 지점인 C까지 이동 시킨다.
두 번째 프레임에서는 박스를 C와 B의 중간 지점인 D까지 이동 시킨다.
네 번째 프레임에서는 박스를 D와 B의 중간 지점인 E까지 이동 시킨다.
이같은 작업을 반복식으로 나타내 보면,
while( abs(Box.position.x-Destination.x) >0.01){
Box.position.x+= ( Destination.x - Box.Position.x ) / 2;
}
로 표현할 수 있다.
0.01은 Epsilon값이므로 적당한 수치로 변경 하면되고,
2로 나눈 것은 감속비율 이므로 만약 10으로 나누면 더 천천히 감속될 것이다.
'Computer > Graphics' 카테고리의 다른 글
수묵화 렌더링(?) (0) | 2008.11.02 |
---|---|
Edge detection on GPU (0) | 2008.10.28 |
Cartoon rendering (0) | 2008.10.21 |
M: Normal Vector (0) | 2008.10.11 |
01 Start DXUT. (0) | 2008.10.08 |