일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- texture mapping
- boj 5567
- 잔디 기부
- 코드트리 고대 문명 유적 탐사
- 수식 복원하기
- gemmasprint
- pcce 기출문제 9번 지폐 접기
- pcce 기출문제 10번 지폐 접기 풀이
- c++ 1991
- 렌더링 파이프
- DirectX
- pcce 기출문제 10번 공원 풀이
- pcce 기출문제 풀이
- pccp 기출문제 풀이
- 프로그래밍공부
- 오블완
- 잔디 기부 캠페인
- root signature
- pcce 기출문제 10번 공원
- 티스토리챌린지
- 백준 5567
- constant buffre
- DirectX12
- 고대 문명 유적 탐사
- c++ 5567
- python 고대 문명 유적 탐사
- directx 그래픽스
- depth-stencil
- boj 1991
- PCCE
- Today
- Total
오구의코딩모험
[DirectX] 그래픽스, 렌더링 파이프 본문
서버 프로그래머 = 식당 관리자
클라이언트 프로그래머 = 애니메이션 = 영화 촬영 감독
- 게임 화면 개발, 애니메이션과 영화 촬영은 매우 유사하다.
- 세트장 / 촬영 물품 / 카메라 배치 / 조명 배치 등등
차이점은 영화 촬영은 현실 세계를
게임 화면 개발은 가상 세계를 기반으로 하기 때문에
게임 개발에서는 물리 현상을 수학적으로 구현해야한다.
애니메이션은 카메라 전환은 고려하지 않지만
게임은 카메라 전환과 같은 실시간 갱신 또한 필요하다.
게임 <-> 애니메이션 (실시간을 지원하는가?)
애니메이션 <-> 영화 (물리 현상을 수학적으로 구현하는가?)
GPU, 렌더링 파이프
게임에서는 대부분의 물체가 삼각형으로 이루어져 있다.
삼각형의 정점을 좌표로 사용한다.
게임 규칙과 연산의 핵심은 CPU 가 담당하고
그래픽의 변환 연산은 GPU가 담당한다.
과거의 게임에서는 그래픽의 연산까지 CPU 가 담당할 수 있었지만,
현대의 게임은 그래픽의 연산까지 CPU가 담당하기엔 무리다.
따라서 GPU에게 외주(?)를 맡기는 개념이다.
CPU는 고급 인력(복잡한 연산, 뛰어난 기억력) 성능이 뛰어난 소수 인력 집단.
따라서 일반적인 상황에서 유용하다.
GPU는 대부분의 영역이 ALU가 차지 (계산기와 같은 역할), 값 싼 인력들이 모인 다수의 집단.
따라서 연관성이 없는(독립적인) 많은 양의 연산에 병렬 처리하는데 탁월하다.
메모리 정보를 토대로 화면을 출력하기 위한 일련의 단계를
렌더링 파이프라인 이라 한다.
Input-Assembler : 정점 정보 전달
Vertex Shader (VS) : 정점 변환, Input-Assembler의 정점을 대상으로 연산 (스키닝, 모핑, 조명 등 고급 기법)
Tessellation 단계 : 새로운 정점들을 추가할 때 사용, DirectX 11에서 추가된 개념
ex) 멀리 있는 사물은 잘 보이지 않고, 가까운 사물은 잘 보이는 지형의 관점
- Hull Shader :
- Tessellator :
- Domain Shader :
Geometry Shader : 새로운 정점들을 추가할 때 사용, DirectX 10에서 추가된 개념
ex) Tessellation 보다 더 작은 단위 사용
Rasterizer : 정점 데이터를 픽셀 기반으로 변경하는 단계, 내부점들은 보간하는 단계 *중요한 단계 *
Pixel Shader : 색상을 입히는 단계, 색상 변경/ 조정
Output-Merger : 최종 결과물로 정보 조합
GPU의 종류에 따라 연산하는 다르다는 문제가 발생,
DirectX는 Microsoft 에서 지원하는 GPU 외주 라이브러리
GPU 제조사가 MS와 맞춰서 GPU 제작하기 때문에 DirectX 사용하는데 고려하지 않아도 됨
'Game > DirectX' 카테고리의 다른 글
[DirectX] 변환 행렬 (Matrix) (2) | 2024.12.16 |
---|---|
[DirectX] Component, 삼각 함수, Vector (4) | 2024.12.10 |
[DirectX] Input과 Timer, Material (1) | 2024.12.07 |
[DirectX] Texture Mapping, Depth Stencil View (1) | 2024.12.04 |
[DirectX] Window Application (0) | 2024.11.28 |