LabHub
배우기 러닝패스 코스

셰이더와 GPU 파이프라인 · 정점 셰이더와 프래그먼트 셰이더 · 퀴즈

퀴즈: 셰이더 단계

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 정점 셰이더가 정점을 만들거나 없앨 수 없도록 되어 있는 이유는 무엇입니까?

    1. 정점 데이터가 읽기 전용 메모리에 있어서
    2. 하드웨어가 처리할 개수를 미리 알아야 병렬로 나눌 수 있어서
    3. 래스터라이저가 삼각형만 받을 수 있어서
    4. 정점 셰이더에는 반복문을 쓸 수 없어서
  2. attribute 와 uniform 의 차이는 무엇입니까?

    1. attribute 는 읽기 전용이고 uniform 은 쓸 수 있다
    2. attribute 는 정점 셰이더만, uniform 은 프래그먼트 셰이더만 쓸 수 있다
    3. attribute 는 정점마다 다르고 uniform 은 드로우 콜 전체에서 같다
    4. attribute 는 정수만, uniform 은 실수만 담을 수 있다
  3. 프래그먼트와 픽셀의 차이는 무엇입니까?

    1. 프래그먼트는 삼각형이 그 자리에 만들어 낸 후보이고, 한 픽셀에 여러 개가 생길 수 있다
    2. 프래그먼트는 색이 없고 픽셀은 색이 있다
    3. 프래그먼트는 화면 밖에도 존재하고 픽셀은 화면 안에만 있다
    4. 둘은 같은 말이고 API 마다 이름만 다르다
  4. 무거운 계산을 가능하면 정점 셰이더로 옮기라는 조언의 근거는 무엇입니까?

    1. 정점 셰이더가 더 빠른 코어에서 돌기 때문이다
    2. 프래그먼트 셰이더는 부동소수점 정밀도가 낮기 때문이다
    3. 정점 셰이더는 정점 수만큼, 프래그먼트 셰이더는 덮은 넓이만큼 불리기 때문이다
    4. 정점 셰이더의 결과가 캐시에 남기 때문이다
  5. 프래그먼트 셰이더의 discard 가 성능에 부담이 되는 이유는 무엇입니까?

    1. 버려진 프래그먼트가 메모리에 쌓이기 때문이다
    2. 색을 계산해 봐야 살아남는지 알 수 있어 깊이 선판정 최적화를 쓸 수 없기 때문이다
    3. discard 가 있으면 삼각형을 다시 래스터라이즈해야 하기 때문이다
    4. 버리기가 파이프라인을 통째로 비우기 때문이다
  6. 정점 셰이더의 출력이 프래그먼트 셰이더의 입력이 되기까지 그 사이에서 무엇이 일어납니까?

    1. 아무 일도 없고 값이 그대로 전달된다
    2. 래스터라이저가 픽셀을 골라내고 세 정점의 값을 무게중심 좌표로 섞는다
    3. 드라이버가 값을 압축해 GPU 메모리에 저장한다
    4. 깊이 버퍼가 값을 정렬한다