Technical/Shader
Fragment Shader
ParkJinseok
2021. 3. 1. 16:00
Fragment Shader
-
Vertex Shader와 동일하게 동시에 하나의 Fragment만 처리하며, 주된 역할은
Fragment의 색상을 결정하는 것임.
-
Fragment는 화면의 특정 픽셀을 채우기 위해 필요한 정보를 가리킴.
-
코드 작성에서 Vertex Shader와의 가장 큰 차이점은 데이터를 저장할 기본 변수가
없어서 직접 변수를 만들어야 함.
-
GPU로 하여금 특정 대상을 그리게 하는 명령을 드로우콜(Draw Call)이라고 함.
-
특정 Shader를 사용하여 메쉬를 렌더링하려면, 그 메쉬의 DrawCall을 보내기전에
어떤 Shader를 사용하는지 알려줘야 함.
- 이 과정을 Shader Binding이라고 함.
- 이 과정을 Shader Binding이라고 함.
Fragment 보간
-
Fragment들은 Vertex 사이에 존재하기때문에 GPU는 어떤 Vertex의 데이터를 어떤
Fragment에 사용할지 결정해야 함.
- 이 때, GPU는 특정 Vertex를 선택하는 대신 그 Face를 구성하는 모든 Vertex로 부터 데이터를 받아서 그 값을 블렌딩함.
- 블렌딩은 선형적(Linear)하게 이뤄짐.
-
블렌딩을 프래그먼트 보간(Fragment Interpolation)이라고 함.
- Vertex 또는 Fragment마다 다른 값을 넣을 경우엔 보간은 매우 효율적인 방법임.