ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ASE Animation [ *NODE_TM ]
    GamePrograming/Direct3D 2009. 3. 26. 11:45




    *NODE_NAME 의 경우 부모의 값을 받아올 일이 생길때 필요하므로, 가지고 있어야한다.


    *TM_ROW0 0.0000 -0.9537 -0.3007
    *TM_ROW1 1.0000 0.0000 0.0000
    *TM_ROW2 0.0000 -0.3007 0.9537
    *TM_ROW3 0.0299 -0.0258 0.5602


    ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    0.0000 -0.9537 -0.3007 0.0000
    1.0000 0.0000  0.0000 0.0000
    0.0000 -0.3007 0.9537 0.0000
    0.0299 -0.0258 0.5602 1.0000

    *빨간색은 생략된 부분

    ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    MAX는 오른손 좌표계 다이렉트는 왼손 좌표계를 사용하므로 y,z값을 변경,
    그리고 ROW1과 ROW2의 값을 변경해주면 된다,


    *Y Z값 변경

    0.0000 -0.3007 -0.9537 0.0000
    1.0000 0.0000 0.0000 0.0000
    0.0000 0.9537 -0.3007 0.0000
    0.0299 0.5602 -0.0258 1.0000


    *ROW1 ROW2 값 변경

    0.0000 -0.3007 -0.9537 0.0000
    0.0000 0.9537 -0.3007 0.0000
    1.0000 0.0000 0.0000 0.0000
    0.0299 0.5602 -0.0258 1.0000


    ------------------------------------------------------------------------------

    필자의 구조체는 이런식으로 정의해놓았다.
    Inherit이나, 나누어진 값은 무시해도 된다.
    중요한 값은, 

    자기 이름을 저장할 : CHAR NodeName[256]; 
    위에 정보를 저장할 : D3DXMATRIX TM_Node;
    부모값과 곱해진 Local :  D3DXMATRIX TM_Local;

    부모의 주소를 가지고있을 변수 :  struct _SNodeTM* Parent;





    Local TM = Node TM * Parent Node TM -1 이다.



    ASE 파일의 경우 부모부터 나오고 자식이 그다음 순서로 나오기때문에 정렬은 필요없다,
    필자의 경우 컨테이너 맵을 이용하여, 구조체들의 주소를 저장후 , 이름으로 검색하여,
    부모의 주소값을 넣어줬다.

    이렇게 되면!! GEOMOBJECT의 LOCAL 메트릭스 구하기는 끝이난다.!

    댓글

Designed by Tistory.