
컴퓨터의 구조는 여기에 GPU가 더해진다.
CPU와 GPU의 차이는 무엇일까?
CPU는 소수 정예
GPU는 양으로 승부
GPU가 쓰이는 곳은?
CPU는 포괄적이라 필수적인 거고, 중요한 업무
GPU는 연산량 많지만 복잡하지 않은 경우. 외주 주는 느낌.
GPU가 유리한 경우: 게임, 암호 화폐 채굴, AI
서버에서는 GPU를 사용할까? 사용하지 않는다. 연산을 병렬적으로 던지고 수거해야 해야 하고, 각 연산이 독립적이어야 하기 때문에 게임 서버와는 맞지 않기 때문이다.
게임에는 왜 필요할까?
움직이는 것을 픽셀에 그려줘야 하는데 각 점마다 어떤 색상인지 계산을 해야 한다.
해상도 * 프레임을 생각하면 1초에 계산해야 할 량이 많다.
영화와 게임의 차이는 무엇인가?
렌더링이란 간단히 말해 무엇인가?
3D 물체 2D화면에 넣는 거
렌더링 파이프라인
GPU도 나름의 고집이 있어서 일감을 던져 줄 때 양식에 맞게 던져 줘야 한다.

파란색: 코딩할 수는 없고 옵션 같은 거 제어할 수 있는 부분이다.
초록색: 실질적으로 코드를 짜서 제어할 수 있는 부분이다.
여기서 중요한 것은 Input Assembler, Vertex Shader, Rasterizer, Pixel Shader, Output Merger 이렇게 5개 단계를 기억해야 한다. Tesselation은 고급 기법이라 일단 무시해도 된다.
이 흐름을 통해 어떻게 GPU에 요청을 하고 결과를 취합해서 화면에 그려주는지 볼 거다.
Input Assembler : 도형의 기하학적 정보를 넘겨준다.
Vertex Shader : 정점을 대상으로 연산한다. 로컬영역-> 월드 -> 뷰 -> 투영으로 변환하는 식을 배운다.
삼각형이 세개의 정점으로 이루어져 있는데 정점마다 어디에 위치해야 하는지 연산을 해줄거야.
Rasterizer : 보간하는 역할. 정점마다 위치, 색상 다를 텐데 색상 보간해서 어색하지 않게 채워준다.
Pixel Shader : 이제 정점이 아닌 픽셀 단위다. 색상을 골라준다. 빛 연산. 계단식으로 하면 카툰 렌더링, 신박한 물리 공식 이용해서 실사풍으로할 수도 있다.
Output Merger: 화면에 결과물 보이게. 결과물 취합해서 보이게 한다.
기능들 조립해서 보여주는 걸 만들 건데, 한번 작업하면 들고 다니면서 계속 사용할 수 있다. 그걸 게임 엔진이라고 한다.
유니티, 언리얼 쓸 때 어떻게 만들어졌는지 알게 되니 응용이 가능해진다. 렌더링을 모르면 응용을 못하니 외워서 사용할 수 밖에 없다.
'DirectX' 카테고리의 다른 글
| 5. 텍스쳐와 UV (0) | 2023.12.13 |
|---|---|
| 4. 삼각형 띄우기 (0) | 2023.12.09 |
| 3. 장치 초기화 (0) | 2023.12.06 |
| 2. 기본 프레임워크 (0) | 2023.12.02 |
| 0. DirectX OT 및 계획 (0) | 2023.12.01 |
댓글