2018년 3월 15일 목요일

3.4 지오메트리 쉐이더


  1. 지오메트리 쉐이더
    1. vertex stage와 tessellation stage의 다음단계이며
      래스터라이저 스테이지의 이전 단계
    2. 프리미티브당 한 번 수행
    3. 프로그래밍을 통해 파이프라인 내 데이터 흐름의 양을 증가시키거나 감소시킬 수 있는 유일한 쉐이더 스테이지.
    4. Example
      1. #version 430 core

        layout(triangles) in;
        layout(points, max_vertices = 3) out;

        void main(void)
        {
            int i;
            for (i = 0; i < gl_in.length(); i++)
            {
                gl_Position = gl_in[i].gl_Position;
                EmitVertex();
            }
        }
      2. input으로 triangle을 받음.
      3. 각 쉐이더가 생성하는 점의 최대 개수가 3
      4. 삼각형을 처리하고 있기에 배열의 길이는 3
      5. EndPrimitive는 쉐이더 종료 시 자동으로 호출
      6. 삼각형들이 점으로 표현된다.

댓글 없음:

댓글 쓰기