etc./PopeTV
#001 : 셰이더란 무엇인가 ?
BaeMinCheon
2017. 10. 18. 21:09
Graphics Note #001
셰이더란 무엇인가 ? (20130818)
영상 주소 : https://youtu.be/IF5FaSt-GV0
참고 내용 : http://kblog.popekim.com/2011/11/01-part-1.html
역사적 배경
- OpenGL과 DirectX를 통한 획일화로 비슷비슷한 그래픽 처리를 보이게 됨
- 셰이더 프로그래밍 : 표면에 텍스쳐 등을 프로그래밍을 통해 설정할 수 있음
→ 3D 물체를 구성하는 픽셀들의 위치와 색 등을 프로그래머가 임의로 조작할 수 있음
셰이더의 종류
- 셰이더 : 화면에 출력하는 픽셀의 위치와 색상을 계산하는 함수 ← 픽셀 셰이더에 대한 설명 (좁은뜻)
- 셰이더의 결과물은 픽셀의 농담/색조/명암 효과들이 적용된 이후 ← 캔버스 위에 물감을 여러 번 칠하는 과정
- 정점 셰이더와 픽셀 셰이더의 두 종류
- 정점(꼭지점) 셰이더
vertex shader
: 폴리곤을 구성하는 정점들의 위치를 화면좌표로 변환 (일종의공간변환
) → 화가가 투시원근법을 통해 실제 사물을 캔버스 위로 옮기는 과정 - 픽셀 셰이더
pixel shader
: 화면에 출력하는 픽셀의 최종색상을 계산
관련 개념
- 정점 셰이더의 입력값은
3D Model
(3D 물체)이고, 이는Polygon
으로 구성돼 있다.
( 폴리곤은 삼각형들의 집합, 삼각형은 또 3개의 정점으로 이루어짐 ) - 래스터라이저
rasterizer
: 정점 셰이더가 출력하는 정점의 위치를 차례대로 3개씩 모아 삼각형을 만들고, 그 안에 픽셀이 몇 개나 들어가는지 계산한다 - 3D Graphic Pipeline : 정점 셰이더 → 래스터라이저 → 픽셀 셰이더