2017/07/12 - [3D 프로그래밍/Vulkan] - Vulkan Tutorial 번역2017/07/18 - [3D 프로그래밍/Vulkan] - Vulkan Tutorial 번역 - 22017/07/23 - [3D 프로그래밍/Vulkan] - Vulkan Tutorial 번역 -3 Vulkan Tutorial을 번역한 번역본의 수정본 입니다.앞으로의 수정은 Github 또는 이 포스팅에서 계속 업데이트 할 예정입니다. 2017년 10월 10일 수정본 2017년 11월 14일 수정본
저번에 Vulkan을 이용한 프레임 워크 제작을 한다고 했었는데 시간이 꽤 지난 그저께 부터 제작을 시작했다.사실 예상하던 속도보다 많이 느린편이여서 오히려 내가 당황스러울 정도이다..C#을 하다가 오랫만에 C++으로 코딩을 해보니 너무 언어가 복잡해서 눈에 잘 안들어 오기도 하고, DirectX와는 느낌이 많이 다르다.DirectX는 지금 생각해보면 추상화가 많이 되어 있어서 내가 GPU에 대해 잘 생각하지 않아도 잘 코드를 작성 할 수 있었는데(OpenGL은 GLFW를 사용하여 해봤었다.) Vulkan은 그래픽 카드에 많이 관여가 된 API인거 같다. 그래서 GPU의 구조를 공부하면서 코드를 작성하고 있다.그리고 동시에 Cocos2D-x 하고 잡다한 오픈소스 프레임워크만 뜯어봐서 한번 어떤 구조로 코..
DXUT를 사용 하는 방법에 대해 알아 보겠습니다.Directx SDK 가 설치 되어 있고Visual Studio 15 버전 이상 기준으로 설명 하겠습니다. 실행창에 Sample Browser을 검색해 DirectX Sample Browser 을 실행합니다.상단에 검색 창에 EmptyProject를 검색하고 Install Project를 클릭 합니다.프로젝트 이름과 경로를 지정 합니다.만들어진 프로젝트 폴더를 들어가서 솔루션을 실행 시킨후 컴파일을 하면 이런 에러가 뜹니다.에러를 더블 클릭해서 에러가 뜨는 곳에 간후abs 라는 함수를fabsf로 바꾸어 준후 컴파일을 합니다.그럼 외부 기호가 없다는 에러가 뜹니다.DXUT.h 로 갑니다.이쯤에 이 코드를 작성하고재 컴파일 하면 에러가 깔금하게 없어졌습니다...
기능경기대회를 위해 DAE포맷 파서를 제작하였다.DAE는 Collada 라는 3d 어플리케이션에서 사용하는 3D 정보를 담고 있는 파일 포맷의 확장자 명이다.Collada는 XML로 작성이 되어있어서 XML파서나 XML을 좀 다뤄본 사람이라면 능숙하게 사용 할 수 있을것..이지만나는 별로 능숙한 편이 아니라 좀 애를 먹음과 동시에 DAE라는 포맷이 그렇게 한글 자료가 잘 없기도 하며 3D 어플리케이션에 범용적으로 사용 될 수 있게 만들(게다가 크로노스 그룹에서 관리하는거 같음)었기에 꽤나 방대하다. Documentation 페이지만 400페이지에 가깝다.(물론 내가 처음에 Documentation 페이지를 안보고 작성하긴 했다.) 일단 기능경기대회를 위해 어느정도만 구현이 되어 있으며 조금 제한적일 수 ..
현재도 계속해서 Directx를 이용한 프레임워크를 제작중에 있다. 영상에서 보다시피 카메라를 움직이는 정도를 하고 있다.이렇게 마우스와 키보드는 이렇게 클래스를 구성 해 놓았는데. InputManeger에서 KeyboardManeger와 MouseManeger를 관리한다. 그리고 만약 키가 눌리거나 때지거나, 마우스가 왼클,우클,더블 클릭 등등...... 이런저런 행위를 플레이어가 하면 자동으로 각각의 MouseListener, KeyboardListener를 통해 입력된 콜백함수와 데이터를 반환 한다.Direct Input이 게임을 위해 구현된 입력장치 API이다 보니 키보드,마우스 이외에도 조이패드도 받을 수 있고, 속도가 빠르다고 한다.그러나 Direct Input으로 열심히 구현하고 검색하는 과..
내년에 기능경기대회에 나가기 위해서 Directx를 공부하던참에 책으로 보면서 코드를 따라치는것 보단 직접 만들어 보는게 좋지 않을까 싶어서 지금까지 본 내용으로 간단한 프레임워크를 제작 해 보기로 하였습니다.원랜 Direct3D책... 이긴 하였지만. 2D프레임워크를 만들어보고 그렇게 확장하는 형식으로 만들어 보려고 하기에.. 스프라이트 클래스를 만들어서 현재 적용시킨 이미지 입니다. 현재의 클래스 구조 입니다만. Application이라는 싱글톤 클래스로 입력과, 그래픽 출력을 관리합니다. 즉. 윈도우 부분을 관리하고 있습니다.InputManeger는 입력관련에 대해서 관리하고 있습니다. 그러나 현재는 비어 있는 상태GraphicManeger는 그래픽에 관련된 내용들을 관리합니다.DirectxClas..