고급 셰이더 언어(High Level Shader Language)는 마이크로소프트의 다이렉트3D API에 사용되는 셰이딩 언어이다. 고급 셰이딩 언어(High Level Shading Language)라고도 불리며 줄여서 HLSL이라고도 불린다. 이 셰이딩 언어는 OpenGL API에서 표준으로 사용되는 셰이딩 언어인 GLSL과 유사한 언어이다. 또한 엔비디아의 Cg 셰이딩 언어와도 매우 유사한데, 이는 서로 협력하여 개발하였기 때문이다.[1]
특징
HLSL의 프로그램 형식에는 3가지가 있다. 버텍스 셰이더, 지오메트리 셰이더, 그리고 픽셀 셰이더이다. 다이렉트3D 10 인터페이스에서는 지오메트리 셰이더가 버텍스 셰이더와 픽셀 셰이더 사이의 파이프라인 가운데 새로 추가되었다. 버텍스 셰이더는 응용 프로그램이 제공하는 정점에 각각 붙어 실행되어 주로 이하의 처리를 담당한다. 객체 공간으로부터 시 공간에의 정점 변환이나 텍스처 좌표의 생성, 또 정점의 접선이나 종법선이나 법선 벡터와 같은 광선의 계 계산 등에 쓰인다. 버텍스 셰이더를 통해 정점의 그룹이 입력되었을 때, 출력 좌표는 그 영역내에서의 픽셀을 결정하기 위해서 보간 되게 된다. 이러한 작업은 레스터라이제이션으로 더 잘 알려져 있다. 이러한 픽셀이 각각이 픽셀 셰이더를 통과하는 것으로, 결과적으로 화면상의 색이 계산된다.
또, 다이렉트3D 10 인터페이스 또는 다이렉트3D 10 하드웨어를 사용하는 응용 프로그램은 지오메트리 셰이더를 직접 지정할 수도 있다. 이 셰이더는 삼각형의 3개의 정점을 입력받아 추가의 삼각형을 생성해 틈새 없게 채운 후, 레스터라이저에 보내게 된다.
같이 보기
각주
외부 링크