본문 바로가기

프로그래밍

[맵툴] 5일차. Plane를 자기가 정의한 수치에 맞게끔 생성하게 하였다. 이제 픽킹적용이다. 더보기
[맵툴] 띠두르기로 그림을 그리면서 나름대로 정규화식을 만들기 D3DPT_TRIANGLESTRIP 의 띠두르기로 Plane를 만든다고 할 때, 가장 기본적인 1 x 1 형태의 사각형 , 버텍스 수는 4개 , 인덱스버퍼를 적용해서 0-1 , 2-3 을 셋팅해서 2개의 값을 가진다. 그다음 2 x 2 형태의 사각형, 버텍스 수는 9개, 인덱스버퍼 적용해서 0-1, 3-4, 6-7, 1-2, 4-5, 7-8 을 셋팅해서 6개의 값을 가진다. 다만 6-7과 1-2 사이에 무효화 삼각형 영역이 있기때문에 8개의 삼각형이 존재하겠지만, 그 무효화 삼각형영역을 고려해서 삼각형이 10개라고 기입을 해야한다. 즉 DrawIndexedPrimitive(D3DPT_TRIANGLESTRIP, 0,0, 9 /*버텍스수*/,0, 10/*삼각형수*/); 그 밖에 3x3 , 4x4, 3x2, .. 더보기
[맵툴] 4일차. (모든걸 재수정 -> Plane샘플제작) 현재 1차 목표는 Plane형태로 판을 셋팅한다음, 픽킹을 적용한다. 그래서 픽킹된 정점과 그주변의 높낮이를 변형한다. 그런데 현재 초반부.. 이과정에서.. Plane형태를 만든다 할 때, "많은 예제들을 토대로 쉽게 생성할 수 있을것이다." 라는 생각부터 틀렸던 것 같다. 직접 로우단계부터 손대볼 필요가 있다. 엔진이나 뭐 구현이된 클래스/함수가 그립겠지만 허당 프로그래머로 남을 수야 없지...다시 리바이벌을 해본다ㅋ 위의 2 * 2의 Plane가 있다. 길이나 뭐그런건 다 1.0f 로 해놨고, 버텍스버퍼로 정점정보(FVF를 xyz하고 디퓨즈상태만) 셋팅해놨고 순서는 다음과 같다. 각 위치에 시계방향두르기로 0,1,2 2,1,3 2,3,4 4,3,5 1,6,3 3,6,7 3,7,5 5,7,8 8개의 삼.. 더보기
[맵툴] 3일차. 기본적으로 화면에 맵을 띄워보기까진했다만, 이제는 픽킹에 의해 맵을 수정하는 방식에 대해 생각해볼차례다. 더보기
[맵툴] 2일차 코드샘플러의 x,y,z좌표를 어느정도 감지하게끔 라인을 그리는 예제를 참고하여 라인을 그렸고, 적절하게 키보드와 마우스의 컨트롤로 뷰행렬이 이동하고 회전하게끔 하는 카메라기능도 넣었다. 다음은 여기에 가장 간단한 지형을 넣어보고 향후 어떻게할지 다시 방향을 잡아야겠다. 더보기
DirectX 예제 XYZ축 라인그리기 및 카메라(뷰행렬)에 관한 예제 소스는 간단하고 필요한 구현부분만 작성되어있기에 이부분을 따라 구현하는데에는 어렵지 않을것이다. 뷰행렬을 적용할때 D3DXMatrixLookAtLH함수를 작성했었다. 구체적인 방법은 배제한체 이 함수에 의존했다. 그런데 위의 예제에서는 그렇지는 않다. 가장 중요한 부분의 함수 위의 설명인데, 이것으로 어느정도 이해가 가는듯 하였고, //------------------------------------------------------------------------------ // Name : updateViewMatrix() // Desc : Builds a view matrix suitable for Direct3D. // // Here's what the final matrix should look .. 더보기
[맵툴] 1일차. 아~ MFC도 아~~주 예전에 몇번해본것만 기억나고, VS2005에서도 처음이고 다이얼로그바도 띄우는게... 어쨋든 다~ 처음인지라 어색했지만 할수록 익숙해지는거같다. 구현되었다고 느낀거. MFC, DirectX9.0 화면띄우기, 다이얼로그바띄우기, 다이얼로그바 내의 버튼활성화시키기 휴~~ 책보고 인터넷보면서 셋팅했다. 뭐 어쨋든 되긴된거다. 다음단계로는.. 화면에 간단한 메쉬를 뛰우고, 카메라조작정도로 가능하게해야 되겠다. 더보기
[MFC]다이얼로그바 띄우기 http://blog.naver.com/seiyouchyan/60095718871 이 블로그에 들어가면 설명이 나온다. 책에는 다이얼로그바가 없어서 낑낑거리며 검색했는데 그나마 가장 쉽게 설명한것이라본다. 제공되더라 CDialogBar라는 클래스 다만 클래스를 추가하고자할때 CDialog클래스가 기본으로되어서 따로 부모를 CDialogBar로 수정해주어야한다. 그 이후에는 잘되드라 더보기
[MFC] 다이얼로그바 내부에 있는 버튼활성화 이 소스에는 다이얼로그바적용과 버튼활성화가 담겨있다. 버튼활성화는 다이얼로그바를 상속받은 임의의클래스를 보면 알수있다. 다이얼로그바는 CControlBar를 상속받아서 버튼의 메세지를 받지 못하여 버튼을 달면 비활성화 되어 있다. 따라서 몇가지를 수동으로 기입해 주어야 한다. 다이얼로그바 헤더파일 #if !defined(AFX_CTRLPALDLG_H__A734BECF_5B37_4011_A6DB_46AB92DA69C2__INCLUDED_) #define AFX_CTRLPALDLG_H__A734BECF_5B37_4011_A6DB_46AB92DA69C2__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // CtrlPalDlg.h : .. 더보기
링크드리스트 정의 : 일정한 순서를 가지는 데이터 항목을 표현하는 방법, 배열과 같은 순차적표현 방법과는 달리 데이터 항목들의 논리적 순서만 유지되고 기억장소 내에 각 항목들의 임의의 위치를 가지도록 하는 자료구조 구조 : 각 데이터 항목들이 기억장소 내의 어떤 위치에 있는지 표시, 데이터 항목에 값뿐 아니라 다음 항목의 위치정보도 저장, 위치 정보 저장에는 포인터를 사용한다. 장점 : 기억공간의 활용도가 매우 높다. 데이터 삽입,삭제가 수월하다. 단점 : 데이터 직접접근이 거의 불가하다. (순차적접근만이가능), 링크손실에 대한 복구 거의불가, 포인터를통해사용하기떄문에 포인터추가적인 기억공간필요 --------------------------------------------------------------------.. 더보기