셰이더 시맨틱(Shader Semantics)

참고 : https://msdn.microsoft.com/en-us/library/windows/desktop/bb509647(v=vs.85).aspx

셰이더를 작성할 때, 사용자가 임의로 설정하는 전역변수나 버텍스 셰이더, 프래그먼트 셰이더의 인풋 구조체의 변수들이 어떤 자료와 연결될지 알려주는 것이 바로 이 시맨틱이다. HLSL에 어떠한 시맨틱들이 존재하는지 알아보자.

Vertex Shader Semantics

Input Description Type
BINORMAL[n] Binormal float4
BLENDINDICES[n] Blend indices uint
BLENDWEIGHT[n] Blend weights float
COLOR[n] Diffuse and specular color float4
NORMAL[n] Normal vector float4
POSITION[n] Vertex position in object space. float4
POSITIONT Transformed vertex position. float4
PSIZE[n] Point size float
TANGENT[n] Tangent float4
TEXCOORD[n] Texture coordinates float4
Output Description Type
COLOR[n] Diffuse or specular color float4
FOG Vertex fog float
POSITION[n] Position of a vertex in homogenous space. Compute position in screen-space by dividing (x,y,z) by w. Every vertex shader must write out a parameter with this semantic. float4
PSIZE Point size float
TESSFACTOR[n] Tessellation factor float
TEXCOORD[n] Texture coordinates float4

 

Pixel Shader Semantics

Input Description Type
COLOR[n] Diffuse or specular color. float4
TEXCOORD[n] Texture coordinates float4
VFACE Floating-point scalar that indicates a back-facing primitive. A negative value faces backwards, while a positive value faces the camera.

Note  This semantic is available in Direct3D 9 Shader Model 3.0. For Direct3D 10 and later, use SV_IsFrontFaceinstead.
float
VPOS The pixel location (x,y) in screen space. To convert a Direct3D 9 shader (that uses this semantic) to a Direct3D 10 and later shader, see Direct3D 9 VPOS and Direct3D 10 SV_Position) float2
Output Description Type
COLOR[n] Output color float4
DEPTH[n] Output depth float

 

여기 나와 있는 시맨틱 이외에 D3D10부터 새롭게 추가된 System-Value Sematics라는 것도 있는 듯 한데 아직까지 내가 다루고 있는 부분에서 나오거나 문제가 되는 부분은 없기 때문에 우선은 넘어가기로 하겠다. 해당 시맨틱의 경우  D3D10전용이거나 기존의 것이 약간 변경되거나 한 부분도 있는 것같다.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s