위의 동영상의 후반대에 보면 카메라의 상하가 바뀌면서 깜빡깜빡이는 현상이 발생한다...
이것은 행렬연산상에서의 문제로 =_= 특정값이상을 못보게 제한한다던가 혹은 사원수를 써줘야한다.
생각해보니 360도 돌아가는 카메라는 자주 않보였던것같기도하고....
Posted by 랜스.

Leave your greetings here.

  1. Comment RSS : http://lancekun.com/tc/rss/comment/133
  2. 랜스 2009/09/23 03:11  Modify/Delete  Reply  Address

    베스타님이 알려주셔서 수정했다능...ㄳㄳ

  3. 닭도난다 2009/09/23 17:34  Modify/Delete  Reply  Address

    그것이 바롱 짐벌락 입죠 ㅋ

게임수학책을 보면서 행렬을 공부하다가
이것 저것 현재 벡터와 행렬 클래스를 만들어보면서 해골책의 행렬부분에 적용을 하고있는데
투영부분에서 약간 애먹은 부분이 있어서 다른분들에게 도움이 되고자 글을씁니다.

직교투영(Orthographic Projection)
사용자 삽입 이미지
직교 투영을 할려면 DX9 함수로 D3DXMatrixOrthoLH 라는 함수를 사용합니다.
이함수는 밑의 값을 리턴값으로 반환해줍니다.
2/w           0               0              0
0             2/h              0              0
0               0         1/(zf-zn)         0
0               0       -zn/(zn-zn)        1

레퍼런스엔 조금 다른식으로 설명되있습니다만, 레퍼런스에 있는대로 하면않되길래 책보며 했습니다.
@대부분의 서적과 자료에는  _33이 1이고 _44가 0인데 실제론 _33이 0이고 _44가 1이더라구요
실제로했을때만 정상 처리되고 _33을 1주고 _44를 0줬을땐 프로젝션이 제대로않된것같습니다.
(*잘못된점있다면 댓글 부탁드립니다.)


원근투영(Orthographic Projection)



사용자 삽입 이미지
원근투영은 DX9에서 D3DXMatrixPerspectiveFovLH 라는 함수를 사용한다.
리턴값으로 밑의 값을 리턴한다.
w             0               0                 0
0               h              0                 0
0               0         zf/(zf-zn)          0
0               0       -zn*zf/(zf-zn)      1

w와 h값은 아래의 값을 넣어주면됩니다.
w = h / Aspect;
h = cot(fovY/2);
- Aspect는 뷰포트의 가로/세로비이구요.
-cot의 함수가 없던데 cot는 tan의 역함수이니 1/tan(fovY/2) 해주면됩니다.
[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.