Search This Blog

Saturday, April 17, 2010

Shader

Vertex shader: vertex shader는 graphic processor에 주어진 각 vertex에 대해서 수행됩니다. Vertex shader는 가상공간의 각 vertex의 3D position을 2D position으로 전환하여 화면에 나타나게 합니다. Vertex shader는 position, color, 그리고 texture coordinate와 같은 것에 대해서 process를 하지만 새로운 vertex를 생성하지는 않습니다. Vertex shader의 output은 pipeline의 다음 stage인 geometry shader 혹은 rasterizer로 입력됩니다.

Geometry shader: geometry shader는 mesh에 vertex를 더하거나 제거할 수 있습니다. Geometry shader는 순차적으로 geometry를 생성하고 CPU에서 처리하기 힘든 기존의 mesh에 volumetric detail을 더합니다. 만약 geometry shader가 사용되고 있다면 그 output은 rasterizer로 입력됩니다.

Pixel shader: pixel shader는 fragment shader라고 불리기도 하며, 각 pixel의 color를 계산합니다. pixel shader의 입력은 rasterizer로 부터 오며, graphic pipeline을 통해 보내지는 polygon들을 채웁니다. Pixel shader는 bump mapping이나 color toning과 같은 효과와 lighting을 위해 사용됩니다. Direct 3D에서는 pixel shader라 하고, OpenGL에서는 fragment shader라고 합니다.

No comments:

Post a Comment

Blog Archive