쉐이더
(shader)
컴퓨터 그래픽스 분야에서 셰이더(shader)는 소프트웨어 명령의 집합으로 주로 그래픽 하드웨어의 렌더링 효과를 계산하는 데 쓰인다. 셰이더는 그래픽 처리 장치(GPU)의 프로그래밍이 가능한 렌더링 파이프라인을 프로그래밍하는 데 쓰인다.
1. 물체의 색상, speccularity, displacement와 같은 장면에서 물체의 표면상태를 결정짓는 속성들. surface shader, volume shaders, displacement shaders, 그리고 light shaders 등을 포함하는 다양하고 많은 유형들을 가지고 있다.
2. shading을 결정짓는 속성들(blinn, phong, metal 등).
3. 3D 애니메이션에서 물체의 질감부분에 대한 여러 가지 특성과 기능을 관리하고 제어하는 사람.
버텍스 셰이더(영어: vertex shaders, 정점 셰이더)
는 그래픽 처리 장치에 의해 수행되는 셰이더 프로그램 중의 하나이다.
기능 : 버텍스 셰이더는 주로 물체의 정점 정보에 수학적인 연산을 함으로써 물체에 특별한 효과를 주는 데 쓰인다. 각각의 정점이 정의되는 방법은 다양하다. 정점이 가지는 정보는 예를 들어 3차원의 위치를 나타내는 x, y, z 좌표나, 색상, 텍스처, 조명 정보 등이 있다. 버텍스 셰이더는 이런 정점의 정보값을 변화시켜서, 물체를 특별한 위치로 옮기거나, 텍스처를 바꾸거나, 색상을 바꾸는 등의 일을 할 수 있다. 하지만 기존의 정점을 지우거나 새로운 정점을 추가하는 등의 작업은 할 수 없다.
지오메트리 셰이더(geometry shader)
는 그래픽 처리 장치에 의해 수행되는 셰이더 프로그램 중의 하나이다.
기능 : 지오메트리 셰이더는 버텍스 셰이더에서는 할 수 없는 점이나, 선, 삼각형 등의 도형을 생성할 수 있는 기능이 있다.
지오메트리 셰이더 프로그램은 버텍스 셰이더가 수행되고 난 뒤에 수행된다. 지오메트리 셰이더 프로그램은 버텍스 셰이더를 거쳐온 도형 정보를 입력받는데, 예를 들어 정점 3개가 지오메트리 셰이더에 들어오면, 셰이더는 정점을 모두 없앨 수도 있고 더 많은 도형을 만들어 내보낼 수도 있다. 지오메트리 셰이더를 지나간 도형 정보는 레스터라이즈를 거친 뒤 픽셀 셰이더를 통과하게 된다.
지오메트리 셰이더는 테셀레이션이나 그림자 효과, 큐브 맵을 한번의 처리로 렌더링하는 데에 주로 쓰인다.
픽셀 셰이더(pixel shader, 간단히 PS)
는 그래픽 처리 장치가 수행하는 셰이더 프로그램 중 하나이다.
기능 : 픽셀 셰이더는 렌더링 될 각각의 픽셀들의 색을 계산한다. 때문에 픽셀 셰이더는 최종적으로 픽셀이 어떻게 보일지를 결정한다. 픽셀 셰이더는 간단하게 언제나 같은 색을 출력하는 간단한 일에서부터, 텍스처로부터 색을 읽어오거나, 빛을 적용하는 것, 범프 매핑, 그림자, 반사광, 투명처리 등 복잡한 현상 등을 수행할 수 있다.
픽셀 셰이더는 각각의 픽셀들이 렌더링될때 수행되기 때문에, 다른 픽셀들과 아무런 연관이 없다. 픽셀 셰이더는 오직 한 픽셀만을 연산하기 때문에, 주변의 픽셀이나, 그리는 도형에 대한 정보를 알 수 없다. 이 때문에 픽셀 셰이더는 스스로 매우 복잡한 효과를 만들어 낼 수는 없다.
픽셀 셰이더는 픽셀의 색 말고도 깊이(Z버퍼에 쓰인다)나 또 다른 색(다른 렌더 목표물에 쓰인다)을 출력할 수 있다.
'Computer Graphics' 카테고리의 다른 글
OpenCL이란 (0) | 2014.01.22 |
---|---|
CUDA란 CUDA 병렬 프로그래밍 CUDA 병렬 처리 (0) | 2014.01.16 |
컴퓨터 그래픽스 GPU GPGPU (0) | 2014.01.15 |
OpenGL 광원 조명 질감 설정 (0) | 2014.01.14 |
쉐이딩(Shading) 셰이딩 (0) | 2014.01.10 |