Vertex Shader
주 역할은 3D공간 상의 정점들의 위치를 화면좌표로 변환한다.
고로 정점하나당 Vertex Shader가 한번 실행된다.
Rasterizer
정점이 찍힌다면 이제 정점과 정점사이에 선을 그릴것이다.
그 선이 이어져서 삼각형을 만들수있다.
그렇다면 정점과 정점사이에는 몇개의 픽셀이 들어가있을까?
혹은 만들어진 삼각형안에 몇개의 픽셀이 어떻게 있을까?
이러한 정점 사이에 있는 픽셀들을 어디에 몇개나 그려야 하는지 알아내는 단계가 레스터라이저에서 이루어진다.
Pixel Shader
Vertex shader는 정점하나당 실행된다.
그렇다면 Pixel Shader는?
래스터라이저에서 계산된 픽셀 수 만큼 실행된다.
역할은 그 픽셀의 최종색상을 계산하는것
Shader
고로 셰이더란 화면에 존재하는 각 픽셀의 위치와 색상을 계산하는 함수이다.
셰이더에서 사용할 수 있는 입력 값으로는 전역변수와 정점데이터가 있다.
한 물체를 구성하는 모든 정점이 동일한 값을 사용한다면 전역변수가 될수있고
한 물체를 구성하는 모든 정점 : 예를들어 한 캐릭터를 그리기 위한 모든 정점
각 정점마다 다른 값을 사용하면 정점 하나하나의 데이터로 받아들여야한다.
https://kblog.popekim.com/2011/11/01-part-1.html
https://gasbebe.github.io/shader/
'DirectX 11 > 개념 정리' 카테고리의 다른 글
동차 표기법 (Homogeneous) (0) | 2022.02.09 |
---|---|
D3D11_USAGE / Resource Usage Type (0) | 2022.02.08 |
Device & Device Context / COM객체 (0) | 2022.02.06 |