DirectX12 렌더링 파이프라인: 지오메트리 셰이더(GS)

지오메트리 셰이더는 영어로 지오메트리 셰이더라고 합니다.

모회사와의 인터뷰에서 지오메트리 쉐이더가 지오메트리 쉐이더인지 몰랐기 때문에 답변에 찬성표를 던진 기억이 납니다…

지오메트리 셰이더 단계는 선택 사항이며 하나의 완전한 모양을 입력으로 가져와 임의로 변형합니다.

단, 테셀레이션 단계를 사용할 때는 지오메트리 쉐이더를 생략할 수 없다.

지오메트리 셰이더는 입력 어셈블러에서 각 프리미티브에 대해 한 번씩 실행됩니다.

예를 들어 삼각형 목록을 그리는 경우 기하 도형 셰이더는 삼각형을 정의하는 꼭지점 셰이더 뒤에 3개의 꼭지점을 입력합니다.

지오메트리 셰이더의 이점은 GPU에서 지오메트리를 생성하거나 삭제할 수 있다는 것입니다. 즉, 확장하거나 버릴 수 있습니다. 그러나 버텍스 셰이더와 달리 버텍스를 생성할 수는 없습니다.

또 다른 흥미로운 점은 지오메트리 셰이더의 출력을 메모리 내 버퍼에 저장하고 나중에 사용할 수 있다는 것입니다.

지오메트리 셰이더의 프리미티브 출력은 단일 정점 목록으로 정의됩니다.

지오메트리 셰이더의 정점 위치는 균일한 절단 공간으로 변환되어야 합니다. 즉, 지오메트리 셰이더 단계 이후의 파이프라인에는 동종 슬라이스 공간에서 기본 모양을 정의하는 정점 목록이 있습니다.