일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- binary search
- Two Points
- Stored Procedure
- Hash
- 스토어드 프로시저
- MYSQL
- 다익스트라
- String
- Dijkstra
- SQL
- Trie
- Brute Force
- two pointer
- 그래프
- 이진탐색
- DP
- union find
- Today
- Total
codingfarm
4. Direct3D 초기화 - 개요 본문
Direct3D 초기화 작업을 진행하려면 Direct3D의 기본 형식들 몇 가지와 기본적인 그래픽 개념 몇가지를 잘 알아둘 필요가 있다.
그리고 실질저인 Direct3D 초기화 과정의 필수 단계들을 상세히 설명한다.
그 후에는 실시간 그래픽 응용 프로그램에 필요한 정확한 시간 측정 방법을 살펴본다.
마지막으로, 이후 나오는 모든 예제 응용프로그램이 따르는 일관된 인터페이스를 제공하는 예제 프레임 워크 코드를 소개할것이다.
목표
1. 3차원 그래픽 하드웨어의 프로그래밍에서 Direct3d의 역할을 개괄적으로 이해한다.
2. Direct3D에서 COM의 역할을 이해한다.
3. 2차원 이미지의 저장 방식, 페이지 전환, 깊이 버퍼링, 다중표본화 같은 기초 그래픽 개념들을 배운다.
4. 성능 카운터 함수들을 이용해서 고해상도 타이머 값을 얻는 방법을 배운다.
5. Direct3D를 초기화하는 방법을 파악한다.
6. 이후 포스팅의 모든 예제 프로그램이 사용하는 응용 프로그램 프레임 워크의 전반적인 구조를 숙지한다.
기본지식
$\bullet$ Direct3D 초기화 공정을 이해하려면 몇가지 기본적인 그래픽 개념과 Direct3D 형식들을 숙지해야한다.
$\bullet$ Direct3D는 응용 프로그램에서 GPU를 제어하고 프로그래밍하는 데 쓰이는 저수준 그래픽 API이다.
$\bullet$ 이를 통해 응용프로그램은 3차원 그래픽 가속 기능을 이용해서 3차원 세계를 렌더링할 수 있게 된다.
$\bullet$ 렌더링(rendering) : 컴퓨터 프로그램을 사용하여 모델 또는 이들을 모아놓은 장면인 씬 파일(scene file)로부터 영상을 만들어내는 과정을 말한다.
$\bullet$ 렌더대상 : 화면
$\bullet$ 응용 프로그램과 그래픽 하드웨어 사이에 Direct3D와 하드웨어 드라이브가 있으므로 개발자는 GPU의 세부사항을 걱정할 필요 없다.
$\bullet$ 이를 위해 NVIDIA나 Intel, AMD 같은 GPU 제조사들이 Microsoft의 Direct3D 팀과 협력해서 Direct3D의 명세를 준수하는 드라이버를 제공해야한다.
Direct3D 12의 특징
$\bullet$ 새로운 렌더링 기능 추가
$\bullet$ CPU 부담을 크게 줄이고 다중 스레드 지원을 개선하기위해 재설계됨
$\bullet$ Direct3D 11보다 훨씬 low level의 API가 됨(GPU에 더 가까움)
$\bullet$ 이전버전보다 추상화가 줄어듬
$\bullet$ 개발자가 손수 관리해야 할 사항들이 늘어남
$\bullet$ 현세대 GPU구조들을 좀더 밀접하게 반영
$\bullet$ API의 사용이 어려워젔지만 성능이 개선됨
'computer graphics > DX12 book' 카테고리의 다른 글
4. 텍스처 형식 (0) | 2021.01.11 |
---|---|
4. COM(Component Object Model) (0) | 2021.01.11 |
3. 변환 - DirectXMath 라이브러리의 변환 함수들 (0) | 2020.11.22 |
3. 변환 - 좌표 변경 변환(change of coordinate transformation) (0) | 2020.11.22 |
3. 변환-선형변환, 아핀변환, 함성, 좌표 변경 변환 (0) | 2020.11.21 |