조회 수 1351 추천 수 3 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

안녕하세요. Zeprod님의 빠른강의에 발맞추기 위하여 다시금 올립니다 -_-;; 이거 아는것도없는데 ㅠ.ㅠ


 


오늘은 카메라에 대해 알아보겠습니다.


 


카메라는 사람의 눈과 똑같습니다. 다만 다르게도 설정할수있지요.


 


사람의 눈의 시야 범위가 부채꼴 모양으로 생겼지요.


 


\                        /


  \        범위      /


     \                /


       \            /


          \       /


               눈


 


요래~ 요래~ 생겼지요. 카메라도 마찬가지입니다.


 


\      최대범위      /


  \                    /


     \                /


       \            /


          \       /


            최소범위


 


             모니터


 


모니터에 보이는 화면은 최소범위부터 최대범위까지입니다.


최소범위는 대부분 1.0f기준이며 최대범위는 설정 나름입니다. 최소범위조차도 정해줄수있습니다.


 


자그럼 본론으로 들어가지요.


 


VOID SetupMatrices( void )
{
 D3DXMATRIX matView, matProj, matLocal;
 
 D3DXMatrixLookAtLH( &matView,
   &D3DXVECTOR3( Eye.x, Eye.y, Eye.z ), //관찰자의 눈 위치
   &D3DXVECTOR3( Look.x, Look.y, Look.z), //관찰자가 쳐다 보는 위치
   &D3DXVECTOR3( Up.x, Up.y, Up.z ) );  //카메라의 윗방향 설정


 // 뷰 변환
 g_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );


 // 프로젝션 변환
 D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.333333f, 1.0f, 500.0f );
 g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );
}


 


화면의 카메라 지점을 설정햊는 것입니다. 짧지요? 이것만 설정해도 DirectX기초 카메라 설정은 끝납니다.


 D3DXMatrixLookAtLH( &matView,
   &D3DXVECTOR3( Eye.x, Eye.y, Eye.z ), //관찰자의 눈 위치
   &D3DXVECTOR3( Look.x, Look.y, Look.z), //관찰자가 쳐다 보는 위치
   &D3DXVECTOR3( Up.x, Up.y, Up.z ) );  //카메라의 윗방향 설정


 


matView에 카메라위치값을 설정해줍니다.


 


카메라의 위치가 어디이며 쳐다보는곳 그리고 어느정도 위에있는지를 설정해서 matView에 모든계산을 해서 넣어줍니다.


자세히 파고들어가면 한도끝도없으니 그냥 넘어가겠습니다.


 


뷰 변환


g_pd3dDevice->SetTransform( D3DTS_VIEW, &matView ); 셋팅한값을 생성해줍니다. 워우!!


 


/ 프로젝션 변환
 D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.333333f, 1.0f, 500.0f );
 g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );


이건 화면 비율을 설정합니다.


D3DX_PI/4는 각도설정입니다. 시야의 좌우 각도를 설정해줍니다.


1.33333333f는 화면의 좌우 비율입니다. 4:3비율이기때문에 1.33333333f입니다. 와이드모니터가 없는 시절에는 1.3333333f를 그대로 썼지만 와이드모니터환경을 지원하느냐에 따라서 16:9가될수도 16:10이될수도있씁니다.


1.0f 화면에 최소범위입니다. 카메라와 대상체의 거리가 1.0f이하라면 화면에 찍히지 않습니다.


500.0f최대 화면 범위입니다. 카메라와 대상체의 거리가 500.0f이상이라면 화면에 찍히지 않습니다.


 


 g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj ); 셋팅한값을 생성합니다~


 


자 이렇게 설정하시면 셋팅한 값에 따라 화면이 적용됩니다.


 


자 쉽죠?


 


-_-;;

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
804 RPG Maker [넬바]인생게임을 만들려고?그러면 읽어봐![추가 추가 추가 !] Nelba 2005.06.15 1459
803 언어/기타 시작 하자 마자 스위치, 변수 조작하기 file EverSmileMan 2007.02.13 1454
802 언어/기타 [구기술체험소] Fast Animation System file 비밀소년 2007.05.03 1453
801 RPG Maker 나름대로 게임제작1 - 시나리오 작성법 켈리시 2006.12.26 1447
800 언어/기타 귀차니즘 타파 알고리즘 file A. 미스릴 2008.02.11 1447
799 언어/기타 턴알에서 순간데미지 2배이상으로늘리기[턴알] Dship 2007.05.21 1446
798 언어/기타 두드리는 미니게임... JIN[晉] 2007.07.25 1439
797 언어/기타 숫자 게이지 색에 관한 팁 『덩키동크』 2007.03.30 1428
796 언어/기타 왜 C언어를 해야하나요? -1 웁피 2006.09.16 1426
795 RPG Maker RPG MV 게임 도중에 윈도우 스킨 파일 자체를 통째로 바꿔버리는 방법 (출처: HIME) 최저 2016.07.08 1423
794 언어/기타 포트리스예제 최종수정판! 윈드 2006.07.28 1420
793 언어/기타 [예제포함] 턴제 액션알피지 간단하게 만들어보자 !! 다크세이버™ 2005.09.28 1417
792 RPG Maker [초급]숲을 가꾸어 봅시다. 카스-오로치 2006.01.24 1415
791 언어/기타 [초보용!] 뭐 ~? 몬스터가 원거리 공격을 한다구~ 다크세이버™ 2005.12.05 1415
790 RPG Maker XP툴을 이용한 SRPG 이동형식 다크아머 2005.11.26 1415
789 RPG Maker 애완동물 만들기/따라다니게하기 크레시스 2005.08.31 1413
788 언어/기타 [잡담] ONE's SCRIPT 소개 Zeprod 2008.12.16 1409
787 RPG Maker 중,고수를 위한 빠른 숲맵배치[+부록:노하우통맵배치] 『덩키동크』 2006.07.30 1408
786 언어/기타 [DX&C++] 3대 행렬 연산의 사용 Zeprod 2007.03.30 1407
785 언어/기타 BGM, ME 소리가 안들렸다?[대책을 알아낸.............!!!] smofdz 2007.05.18 1400
Board Pagination Prev 1 ... 6 7 8 9 10 11 12 13 14 15 ... 51 Next
/ 51






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)