본문 바로가기

Library/Computer Graphics

Varying Shader Inputs and Semantics (HLSL in Direct3D 9)

가변 입력값(varying input) 파라미터들은, 반드시 시맨틱(semantic)으로 선언되거나, 실행 시점에서 상수임을 알려주는 고정값 입력(uniform input)으로 선언되어야 한다. 만약, 최상위 쉐이더 레벨 입력이 둘 중 하나로 선언되지 않는다면 쉐이더 코드는 컴파일되지 않는다.

입력 시맨틱은, 주어진 입력을 전 단계의 그래픽스 파이프라인 출력과 연결하기 위한 이름이다. 예를 들어, 버텍스 쉐이더에 의해 사용되는 입력 시맨틱 POSITION0은, 버텍스 버퍼로부터의 위치 데이터가 어디로 연결되어야 하는지 정의하기 위한 것이다.

픽셀 쉐이더와 버텍스 쉐이더는 각각의 쉐이더 유닛으로 입력되는 다른 그래픽스 파이프라인 때문에, 서로 다른 입력 시맨틱을 가진다. 버텍스 쉐이더의 입력 시맨틱은 버텍스 버퍼에서, 버텍스 쉐이더에 의해 사용되는 형태로 읽혀지는 위치, 노말, 텍스처 좌표, 색, 탄젠트 등등과 같은 정보의 형태를 기술한다. 입력 시맨틱은 직접적으로 버텍스 사용 형태와 인덱스에 매핑된다.

픽셀 쉐이더의 입력 시맨틱은 래스터라이저 유닛(rsterization unit)에 의해 제공되는 각 픽셀에 대한 정보의 형태를 기술한다. 이 데이터는, 현재 프리미티브의 각 버텍스에 대한 버텍스 쉐이더의 출력 사이에서의 보정에 의해 생성된다. 기본적인 픽셀 쉐이더의 입력 시맨틱은, 입력 파라미터에 대해 컬러값과 텍스처 좌표값이 출력으로 연결된다.


Translated from
http://msdn.microsoft.com/en-us/library/ee418534(VS.85).aspx#Vertex_Shader_Basics