learn opengl 공부( hello triangle)

r·2022년 9월 1일
0

파이프라인: 3d 좌표계를 2d 픽셀로 변환하는 과정
1. 3d 좌표계를 2d 좌표로 변환
2. 2d 좌표계를 색깔이 칠해진 픽셀로 변환
이렇게 크게 2가지 과정으로 나눌 수 있다.

파이프라인의 각각의 단계들을 위해 gpu 위에 코어들이 작은 프로그램들을 실행하는데, 이러한 작은 프로그램들을 쉐이더라고 한다. 우리가 그래픽스 파이프라인에 인풋으로 입력한 3d 좌표 배열은 Vertex Data 라고 불린다. 이러한 Vertex Data 는 꼭짓점의 배열이다.

Vertex Shader

파이프라인의 첫번째 단계는 vetext shader 로써 하나의 vertex 를 인풋으로 받는다. vertex shader 의 주요한 목적은 3d 좌표계를 다른 3d 좌표계롭 변환하는 것이다. 또한 vertext shader 는 우리로 하여금 vertex attribute 를 이용해 기본적인 프로세싱을 하도록 허락한다.

Geometry Shader

Vertext Shader 의 출력값은 geometry shader 의 input 으로 들어오게 된다. geometry shader 는 꼭짓점들의 배열을 인풋으로 받아서 primitive 를 형성하고 새로운 꼭짓점들을 생성한다. 역기서의 출력 값은 새로운 삼각형이 된다.

rasterization stage

geometry shader 에서의 출력 값을 최종 스크린 픽셀에 대응시키는 과정이다. 그리고 사용자의 눈에 보이지 않는 오브젝트를 제거하는 clipping 과정을 거치게 된다.

fragment shader

픽셀의 최종 색깔 결정하는 과정 (빛, 쉐도우, 빛의 색깔) 으로 advanced 한 opengl 이펙트들이 적용되는 단계이다.

blending stage (alpha test)

fragment 의 스텐실 값 (깊이)을 확인하고 결과 fragment 가 다른 오브젝트들보다 뒤에 있는지 앞에 있는지 등을 결정한다. 또한 오브젝트의 opacity (투명도) 를 결정하고 그에 따라 오브젝트를 합친다.

profile
프론트엔드 개발자를 꿈꿉니다.

0개의 댓글