일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 직교 투영
- effective C++
- light
- 큐브 매핑
- 네트워크 게임 프로그래밍
- DirectX12
- 노멀 맵핑
- 동적 색인화
- 네트워크
- Dynamic Indexing
- Deferred Rendering
- 디퍼드 렌더링
- Frustum Culling
- gitlab
- 입방체 매핑
- 게임 디자인 패턴
- direct3d
- FrameResource
- 절두체 컬링
- gitscm
- 게임 프로그래밍
- 장치 초기화
- TCP/IP
- InputManager
- C++
- 조명 처리
- DirectX
- 게임 클래스
- Render Target
- Direct3D12
- Today
- Total
목록direct3d (3)
코승호딩의 메모장
01 Frame Resource Frame Resource 프레임 자원이란 프레임마다 명령 대기열을 완전히 비우지 않고 CPU와 GPU의 활용도를 높이는 최적화 수단이다. CPU와 GPU는 병렬로 작동하기 때문에 동기화가 필요하다고 알고 있을 것이다. 이러한 이유로 매 프레임 끝에서 Fence를 통해 동기화를 해야 하고 결국 CPU는 GPU가 명령들을 모두 처리할 때까지 기다려야 한다. 또한 GPU도 CPU가 명령 목록을 구축하기 전까지 기다려야 한다. 이 동기화를 최적화하기 위한 수단이 바로 프레임 자원이다. 프레임 자원은 매 프레임 CPU가 수정해야 할 자원들을 순환 배열로 관리하는 방법이다. 일반적으로 이 프레임 자원은 세 개를 담아 사용하며 프레임 n에서 CPU가 프레임 자원 배열을 훑으며 다음 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bv4PKc/btst7wwVaNe/RrfHsi6UhnH6wHvPZi5Sf1/img.webp)
이번 포스팅에서는 NVIDIA에서 제공하는 물리 엔진 PhysX(피직스)를 다뤄 볼까 합니다. PhysX에 대한 설명이 인터넷에 많이 있지 않아 기술하는 대부분의 내용은 NVIDIA에서 제공하는 PhysX documentation을 기반으로 기술하려 합니다. 또한 참고 자료가 많지 않아 PhysX에 대한 내용을 깊이 파고 들기 보다는 게임에 추가할 만한 요소들만 간단히 사용하는 방식으로 진행하도록 하겠습니다. 필자가 학부생이라는 점 감안하여 추가할 내용 및 수정할 내용 피드백 주시면 정말 감사드리겠습니다. 또한 PhysX의 가장 최신 버전 5.2.1을 사용하겠습니다. 대부분의 API가 이전 버전과 다르지 않기 때문에 다른 버전을 사용하더라도 문제는 없을 것입니다. 결과적으로 DirectX12에 PhysX..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bQ583x/btstCEVLQmX/I7EH0XOjP5mI9sWsN4UpS1/img.png)
이번 포스팅은 DirectX12에서 전체 화면 모드로의 전환을 구현하는 방법을 기술합니다. 책의 내용에 전체 화면 관련 내용이 자세하게 나와 있지 않아 따로 내용을 추가적으로 기술하였습니다. 내용 중에 혹시라도 틀린 부분이나 추가해야할 부분이 있다면 피드백 해주시면 정말 감사드리겠습니다. 우선 전체 화면 모드는 시각적인 몰입도 뿐만 아니라 게임의 성능에도 영향을 끼친다. 전체 화면 모드에서는 DXGI는 플립(Flip)을 수행할 수 있다. 앞 포스팅에서 말했듯이 플립은 후면 버퍼와 전면 버퍼의 포인터만 하드웨어적으로 변경하기 때문에 후면 버퍼를 전면 버퍼에 모두 복사하는 블리트보다 성능이 좋다. 그러나 주의할 점은 DXGI가 플립을 수행하기 위해서는 후면 버퍼와 전면 버퍼의 크기와 형식이 일치해야 한다는 ..