일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- GPU
- swapchain
- DirectX
- 다이렉트 초기화
- Input Assembler
- c
- 다이렉트X 튜토리얼
- 동기화
- 전처리문
- 다중표본화
- C언어
- UE4
- 세팅
- DirectXTK
- Direct3D
- View
- DESC
- CPU
- Direct3D Init
- CommandList
- Direct Init
- vertex
- engine
- RenderTargetView
- C++
- 코딩
- DirectX12
- 게임수학
- 다이렉트X
- 프로그래밍
- Today
- Total
목록CommandList (2)
비타Cpp
보통은 3차원 장면을 화면 전체에 해당하는 후면 버퍼 또는 창의 클라이언트 영역 전체에 해당하는 후면 버퍼 전체에 그리지만, 필요하다면 3차원 장면을 후면 버퍼의 일부를 차지하는 직사각형 영역에만 그리는 것도 가능하다. 장면을 그려 넣고자 하는 후면 버퍼의 부분 직사각형(Subrectangle) 영역을 뷰포트(Viewport)라고 부른다. 다음은 이 뷰포트를 서술하는데 쓰이는 구조체이다. typedef struct D3D12_VIEWPORT { FLOAT TopLeftX; FLOAT TopLeftY; FLOAT Width; FLOAT Height; FLOAT MinDepth; FLOAT MaxDepth; } D3D12_VIEWPORT; 이 구조체의 처음 네 멤버 변수는 뷰포트 직사각형의 크기를 결정한다...
그래픽 프로그래밍에서는 두 가지 처리장치가 작동한다. 하나는 GPU이고 또 하나는 CPU이다. 이들은 병렬로 작동 하지만, 종종 동기화가 필요하다. 하지만 최적의 성능을 위해서는 동기화를 최소화하여야 한다. 동기화는 한 처리 장치가 작업을 마칠 때까지 다른 한 장치가 놀고 있어야 함을 의미하며, 성능에 바람직하지 않다. CPU에는 명령 대기열(Command Queue)가 하나 있다. CPU는 그리기 명령들이 담긴 명령 목록(Command List)을 Direct3D API를 통해서 그 대기열에 제출한다. 여기서 중요한 점은, 일단 Command List의 명령들을 제출했다고 해도, 그 명령들이 GPU에서 즉시 실행하는 것은 아니라는 점이다. GPU가 처리할 준비가 되어있어야 비로소 실행되기 시작한다. 즉..