DirectX 11

DirectX 11 - Tesselator

tita 2024. 5. 31. 14:14

테셀레이터는 3단계로 구성되어 있습니다.

HullShader -> Tesselation -> DomainShader 단계를 거칩니다.

 

 

[HullShader]

HullShader는 테셀레이터 작업의 첫 단계입니다.

 

VertexShader에서 공간변환을 진행하지 않고 HullShader 정점정보들을 전달해 줍니다.

HullShader는 폴리곤을 얼마나 분할할 것인지를 결정하는 단계입니다.

 

 

 

[Tesselation]

아래는 테셀레이션 적용 전과 후의 그림입니다.

적용 전에는 분할된 폴리곤의 수가 적다
분할된 폴리곤의 수가 매우 많다

 

테셀레이터는 다각형을 겹치지 않고 작게 만들어 빈틈을 없애 오브젝트를 실제에 보다 가깝게 표현할 수 있게 도와주는 기술입니다.

 

 

[Domain Shader]

Domain Shader는 테셀레이터가 출력한 정점마다 한 번씩 함수(쉐이딩 언어)를 호출하게 해 줍니다.

테셀레이션이 활성화되면 기존의 Vertex Shader에서 수행한 것들을 Domain Shader에서 수행하게 됩니다.

예를 들면, 공간변환(월드 -> 뷰 -> 투영)이 될 수 있습니다.

 

실제 게임을 제작할 때는 로우 폴리곤(Low Polygon)과 하이 폴리곤(High Polygon) 모델 두 개를 지원하는 경우가 많습니다.