[GPG 1 글 4.15] GPG1 - 4장15절에서..

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

장태권
Posts: 12
Joined: 2002-11-12 11:27
Location: 블빠

GPG1 - 4장15절에서..

Post by 장태권 »

---------------------------------------------------------------------------
함수 (bone, Forward, Orientation) 받아서
//역행렬을 만들기 위해서 계층 구조의 방향행렬들을 결합
concatenate(bone->orientation, orientation, localOrientation);
//이 뼈대의 방향 행렬의 역행렬 구한다
inverse(localOrientation. bone->inverseOrientation);
//이 뼈대의 방향 행렬을 전진 행렬과 합친다.
concatenate(bone->orientation, forward, localForward);
//이 뼈대의 애니메이션 행렬을 전진 행렬과 합친다
concatenate(bone->animation, localForward, localForward);
//최종 스티칭 행렬을 완성한다
concatenate(bone->inverseOrientation, localForward, bone->final);
if(bone->child)
함수 (bone->child, localForward, localOrientation)
if(bone->sibling)
함수 (bone->sibling, forward, orientation)
---------------------------------------------------------------------------

bone->final = (①뼈대 좌표계로 변환해서 ②애니메이션 시키는 행렬) 이라면

① inv(bone->orientation * orientation)
:: TM은 로컬을 바로 월드로 바꿔주는 행렬이라면,
:: A->B->C 계층 구조로 되어있고 B의 bone->final을 구한다면
:: 위의 ①는 inv(B.TM * A.TM) 가 되는데, 뼈대 좌표로 변환하기 위해서
:: 그냥 inv(B.TM)만 곱해주면 되는 것 같은데 A.TM이 있어서 좀 이상합니다
:: bone->orientation이 TM과 다른 것인가요?

② (bone->orientation * forward * bone->animation)
:: B.TM * ? * B.AniTM
:: 여기서 forward와 bone->animation 행렬을 어떻게 구하는지 궁금합니다.


또, A->B->C라면 최종적으로 B영향 받는 정점의 스키닝은,
V = V * inv(B.TM) *(B.AniTM * A.AniTM)
= V 정점을 B pivot 로컬로 옮기고 B애니메이션 -> A애니메이션
= 월드 상에 V정점 계산

이렇게 했는데, 화면에 삼각형이 날아다니고 춤을 추는 등?의
특수효과만 나오네요 --; 답답할 따름입니다.
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

오랜만에 GPG에 대한 질문이 올라왔네요.. 잘은 모르지만 다른 분들의 답변을 유도한다는 의미에서 제 생각을 말씀드리면요...


1번은... 현재 뼈대의 좌표계는 부모 뼈대의 좌표계를 기준으로 한다고 봐야 그 코드 전체가 성립되는 것 갈습니다. 계통구조를 따라 내려오면서 계속 누적되는 식으로...

2 번은 forward는 뼈대의 긴쪽 방향인데 이전 재귀에서의 결과가 넘어옵니다. 최초의 방향은 ?? 기준자세에서의 기준 방향이 아닐까 싶은데...

animation 행렬은 이 함수 외부에서 해당 트리 노드에 이미 지정되어 있어야 할 것이구요... 애니메이션 시퀀스의 현재 프레임에 대해 보간 등을 통해서 미리 결정되어 있어야 하는게 아닐지...
장태권
Posts: 12
Joined: 2002-11-12 11:27
Location: 블빠

^^

Post by 장태권 »

답답한 마음으로 올린 글에 짧지만 답글이 올라오는게
이렇게 큰 힘이 될지는 몰랐었네요 ^^; 류광님 감사..
스키닝이 되는 걸 보니 3일 동안 가슴을 답답하게 했던 것이 사라졌네요
애니메이션 마지막 부분에서 엿가락 처럼 꼬이는 것만 해결하면
gpgstudy에 도움이 될만한 정리된 글을 올릴 수 있을 것 같습니다~

즐프하세요~ :)2
Post Reply