Opengl 큰 부분을 차지하는것 : 3d좌표를 화면에 맞게 2d 픽셀로 변환하는 작업 ->그래픽파이프라인에 의해 관리
그래픽 파이프라인: 3d좌표를 2d좌표로 변환하는 것 2d좌표를 실제 색이 들어간 픽셀로 변환하는 것
*2d좌표와 픽셀의 차이점 2d좌표: 2d공간에 있는 한 점의 위치를 정확하게 나타냄 2d픽셀 : 화면이나 윈도우 창의 해상도에 의해 제한되는 근사치
그래픽 파이프라인의 특징 ? -단계들은 매우 특성화 되어있음 -병렬로 실행될 수 있음
Shaders : 그래픽 카드가 데이터를 빠르게 처리하기 위해 가지고 있는 수천개의 작은 프로세싱 코어
그래픽 파이프라인의 부분 정점 데이터 : 3개의 3d 좌표 리스트 , 정점들의 집합 정점 속성 : 정점 데이터 나타내는 것 , 3d위치와 컬러 값
파이프라인의 첫번째 부분 : 하나의 정점을 입력으로 받는 정점 쉐이더 , 3d좌표를 다른 3d좌표로 변환하는 것 , 정점속성에 대한 기본적인 처리
Primitive 조립 단계 : Primitive 를 구성 모든 정점을 받음
Primitive assembly 단계 : 결과값 geometry shader로 전달 Geometry shader는 입력값으로 정점들의 집합을 받음 새로운 정점을 방출하여 새로운 primitive 를 형성함으로써 다른 도형으로 변환될 수 있는 정점
Geometry shader의 출력값 -> rasterization stage 로 넘어감 Rasterization stage 는 최종 화면의 적절한 픽셀과 매핑함 ->clipping: 성능을 증가시키기 위해 뷰 밖에 있는 모든 fragment 폐기 ->fragment shader에서 사용할 조각 도출 , 주 목적: 최종컬러 계산
Alpha test 와 blending : fragment의 해당 깊이 값을 체크 , alpha(오브젝트의 투명도) 확인 다른 오브젝트랑 blend