일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Render Target
- 입방체 매핑
- gitlab
- 동적 색인화
- 노멀 맵핑
- effective C++
- DirectX12
- 디퍼드 렌더링
- TCP/IP
- 게임 디자인 패턴
- Dynamic Indexing
- Deferred Rendering
- InputManager
- 네트워크 게임 프로그래밍
- 장치 초기화
- C++
- 절두체 컬링
- DirectX
- 조명 처리
- 직교 투영
- 네트워크
- 게임 클래스
- gitscm
- FrameResource
- Direct3D12
- 큐브 매핑
- Frustum Culling
- direct3d
- 게임 프로그래밍
- light
- Today
- Total
목록분류 전체보기 (44)
코승호딩의 메모장
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bd06jE/btstSikIdSi/YcxOkYOPQoA00PkLnMkx8k/img.png)
메인 루프(메인 쓰레드, 게임 쓰레드)란 과연 무엇일까? 게임은 응용 프로그램이 종료되지 않도록 지속적으로 무한 루프를 돌며 실행하는 구조이다. 위 구조는 렌더링이 중요한 응용 프로그램에서 동일하게 적용이 된다. 오른쪽 그림은 간단한 OpenGL 코드를 이용한 응용 프로그램이다. 이 프로그램 또한 하는 일은 하나의 점 밖에 찍고 있지 않지만 계속 루프를 돌며 종료되지 않도록 하고 있다. OpenGL에서는 흔히 GLUT라는 메인 루프를 사용하고 있으며 이 메인 루프에서는 다른 쓰레드에서 이벤트가 들어왔다는 전달을 받을 것이다. 이러한 쓰레드 들이 왼쪽 그림에 나타난 Display, Idle, Keyboard, Mouse, Special 이벤트 등의 부가적인 콜백 함수이다. int main(int argc,..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MSvsu/btstRsg4WiC/2wKsJTDgtbdJtmGnE0gQck/img.png)
소프트웨어 : 저장장치(휘발성 메모리, 비휘발성 메모리 등)에 저장된 특정한 목적의 하나 또는 다수의 컴퓨터 프로그램 원래 소프트웨어는 공학 분야가 아니었으며, 공대에 속해있지 않고 자연대(물리, 화학, 기초과학 등)였다. 과거 컴퓨터 공학과는 대부분 컴퓨터 회로나 구조가 중요한 학과였다. 현재는 하드웨어 자체는 전자 공학과쪽에 밀접해졌고 컴퓨터 공학과는 하드웨어가 아닌 소프트웨어를 다루는 학과가 되었다. 즉, 공학은 소프트웨어와 동 떨어져 있는 분야였다. 위 그림은 소프트웨어 구조의 그림이다. 우선 사용자(인간 or AI)가 상호 작용을 하면서 필요한 무언가를 사용할 수 있게 해주는 것을 응용 소프트웨어라고 한다. 여기서 소프트웨어가 독자적으로 동작을 한다는 것은 굉장히 비효율적이다. 왜냐하면 하드 디..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cat8ZF/btstQRUtSbh/MTe4yz0974iDfSzu7BnU9k/img.png)
01 소켓 주소 구조체 소켓 주소 구조체는 네트워크 프로그램에 필요한 주소 정보를 담는 구조체이다. 다양한 소켓 함수의 인수로 사용되며 프로토콜들에 따라 주소 지정 방식이 다르기 때문에 다양한 소켓 주소 구조체가 존재한다. 가장 기본은 sockaddr 구조체이다. struct sockaddr{ unsigned short sa_family; char sa_data[14]; }; sa_family : 주소 체계를 나타내는 16비트 정수값. TCP/IP 프로토콜 사용 시 AF_INET 또는 AF_INET6을 갖는다. sa_data : 주소 체계에서 사용할 주소 정보를 담는다. 주소 체계마다 필요한 정보가 다르기 때문에 가장 일반적인 형태인 바이트 배열로 선언되어 있다. TCP/IP 프로토콜 사용 시 IP 주소..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bQ583x/btstCEVLQmX/I7EH0XOjP5mI9sWsN4UpS1/img.png)
이번 포스팅은 DirectX12에서 전체 화면 모드로의 전환을 구현하는 방법을 기술합니다. 책의 내용에 전체 화면 관련 내용이 자세하게 나와 있지 않아 따로 내용을 추가적으로 기술하였습니다. 내용 중에 혹시라도 틀린 부분이나 추가해야할 부분이 있다면 피드백 해주시면 정말 감사드리겠습니다. 우선 전체 화면 모드는 시각적인 몰입도 뿐만 아니라 게임의 성능에도 영향을 끼친다. 전체 화면 모드에서는 DXGI는 플립(Flip)을 수행할 수 있다. 앞 포스팅에서 말했듯이 플립은 후면 버퍼와 전면 버퍼의 포인터만 하드웨어적으로 변경하기 때문에 후면 버퍼를 전면 버퍼에 모두 복사하는 블리트보다 성능이 좋다. 그러나 주의할 점은 DXGI가 플립을 수행하기 위해서는 후면 버퍼와 전면 버퍼의 크기와 형식이 일치해야 한다는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8XeHs/btstCE19JWW/1tzzIoI0Vo4zg6fUtLwJxk/tfile.bmp)
· DirectX 12를 이용한 3D 게임 프로그래밍 입문 : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 이번 포스팅(3D 게임 프로그래밍 입문)에서는 위 책과 한국공학대학교 게임공학과 이용희 교수님 수업 3D 게임 프로그래밍의 강의자료 및 수업내용을 기반으로 DirectX12를 이용한 게임 프로그래밍에 대해 기술하며 예제 및 연습 문제를 푸는 방식으로 진행하도록 하겠습니다. 또한 구조체나 함수의 매개변수와 자세한 정보는 MSDN의 링크를 걸었으니 참고하시면 됩니다. 이번 포스팅은 [DirectX12 입문]에서 공부한 내용을 기반으로 [DirectX12 응용] 포스팅에서 다양한 기법을 활용하여 게임을 제작하도록 하겠습니다. 01 Direct3D 12의 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/LafQb/btstHcqaD7d/CbLL5rQIVjKIukBsPXM9DK/img.png)
이번 포스팅에서는 형상 관리 툴인 Git을 활용하여 결과적으로 C++과 OpenGL을 활용한 2D 게임 개발 프로젝트를 진행하며 코드를 Git을 통해 관리하는 방법을 기술하고자 합니다. 또한 GitHub가 아닌 GitLab을 사용하여 형상 관리를 하고자 합니다. 위 주제는 한국공학대학교 게임공학과 이택희 교수님 수업 게임 소프트웨어 공학에서의 내용을 기반으로 진행될 것입니다. Git이란 Git : 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하는 분산 버전 관리 시스템, 변화를 시간에 따라서 관리해 주는 형상 관리 시스템 Git의 기능은 무궁무진할 정도로 매우 많으며 Git만 알고 있어도 복잡한 어플리케이션을 만드는 데 있어서 형상 관리를 굉장히 빠르고 쉽게 할 수..