반응형
렌더링 파이프라인 구조
Input Assembler (입력 조립기)
▼
Vertex Shader (정점 셰이더)
▼
Hull Shader (덮개 셰이더)
▼
Tessellator (테셀레이터)
▼
Domain Shader (영역 셰이더)
▼
Geomatry Shader (기하 셰이더)
▼
Rasterizer (레스터화기)
▼
Pixel Shader (픽셀 셰이더)
▼
Output Merger (출력 병합기)
Input Assembler(입력 조립기)
정점(Vertex)정보와 기본도형 위상구조의 정보를 얻어와 해당 정보들로 조립하는 역할을 수행한다
Vertex Shader(정점 셰이더)
사용자의 정의로 구현하여 GPU에 넘겨주고 모든 정점들에 대해 한 번씩 실행이 된다. (변환, 조명, 변위 매핑)
Hull Shader(덮개 셰이더)
Tessellator 단계를 사용하기 위한 준비라고 볼 수 있다.
사용을 할꺼면 Hull Shader, Tessellator, Domain Shader 이 3가지를 전부 사용하거나 그렇지 않을꺼면 셋다 사용하지 않아야 한다.
Tessellator(테셀레이터)
메시의 삼각형들을 더 잘게 쪼개서 새로운 삼각형을 만드는 과정
Domain Shader(영역 셰이더)
출력패치에서 세분화된 점의 꼭지점 위치를 계산한다
Geomatry Shader(기하 셰이더)
기하구조를 생성하거나 파괴할수 있다
입력 기본 도형을 여러 기본 도형들로 확장할 수도 있고, 조건에 따라서 출력하지 않고 폐기 할 수도 있다.
Rasterizer(래스터화기)
투영된 3차원 삼각형으로부터 픽셀 색상들을 계산한다.
Pixel shader(픽셀 셰이더)
파이프라인에 연결된 각 렌더 타겟을 위한 각 픽셀의 색상 값을 출력한다.
Output Merger(출력 병합기)
최종적으로 픽셀의 색상을 생성해 렌더 타겟으로 출력하는 단계 블렌딩도 출력 병합기 단계에서 일어남
반응형
'이론' 카테고리의 다른 글
메모리 단편화 (0) | 2023.04.18 |
---|---|
얕은 복사와 깊은 복사의 차이 (1) | 2023.04.18 |
오버로딩과 오버라이딩의 차이 (0) | 2023.04.18 |
램버트 조명 공식 (0) | 2022.08.09 |
0x00 시간 복잡도 순서 (0) | 2022.08.02 |
댓글