• Vertex를 GPU에서 어떻게 해석하고 사용할지에 대한 설명.

  • 렌더링 파이프라인중에 첫번째 단계에 해당한다.

    Untitled

  • Shader에서는 아래와 같은 방식으로 정의한다.

    Untitled

    • 즉, Shader에서 사용할 정점 하나하나에 대한 데이터를 가지고 있는 구조체라고 볼 수 있다.

      • 물론 아래처럼 구조체 형식이 아닌 각각의 변수를 입력으로 받을수도 있다.

        void VS(float3 iPosL : POSITION, 
        				float4 iColor : COLOR, 
        				out float4 oPosH : SV_POSITION,
        				out float4 oColor : COLOR)
        {
        	oPosH = mul(float4(iPosL, 1.0f), gWorldViewProj);
        	oColor = iColor;
        }
        
    • 시멘틱 참조

      Semantic

  • 렌더링 파이프라인을 만들 때, 아래와 같이 Layout Description을 구성한다.

    • 책에서는 CPU에서 아래의 정점구조를 정의하고 있다.

      Untitled

    • 따라서 아래와 같은 레이아웃 정의가 필요하다.

      Untitled

      • 위의 Shader VertexIn에서 정의된 구조체와 위치와 시멘틱이 정확히 일치해야 한다.
        • 아니면 쉐이더 컴파일시에 오류가 발생한다.
    • 버텍스 구조가 여러개가 있다면, 그만큼의 파이프라인이 필요하다.