1. OpenGL
- computer graphics rendering library
- modern openGL은 shader를 통해 programmable한 pipeline을 구현할 수 있다.
- data들을 load할 buffer object와 shader programs를 직접 만들어야 한다.
- shader program은 gpu에서 돌아가고 application은 cpu에서 돌아간다.
- cpu에서 보내는 vertex color등을 gpu에서 받을 수 있도록 연결해줘야 한다.
2. Pipeline
- application에서 primitives들을 gpu로 보낸다.
- vertex shader를 통해 3차원 공간에서 정의되는 geomety primitive를 잡는다. (vertex의 position, color를 잡는다.)
- 이렇게 잡은 triangle들을 pixel로 변환한다.
- 변환된 pixel들은 fragment shader에서 병렬처리를 거친다. (vertex의 색들을 interpolation해서 최종 pixel color, texture를 정한다.)
3. freeglut
- pipeline을 거친 최종 결과는 framebuffer에 저장되어있다.
- 이 결과물을 다양한 OS 위에 하나의 창을 통해 그리기 위해서는 추가적인 연결 통로가 필요하다.
- 이 역할을 해주는 inteface가 freeglut library이다.
- resize, render, keyboard, mouse등의 event에 callback function으로 동작한다.
- 계속해서 processing loop를 돌면서 event를 체크한다.
4. GLEW
- OpenGL exetesion 추가를 쉽게 해주는 library
5. Geometric Primitive
- triangle mesh를 구성하기 위한 vertex의 위치, color, texture 정보를 말한다.
- 위치 : x, y, z, w
- color : RGBA
- 이 vertex 데이터는 vertex buffer objects에 저장되어 gpu로 전송된다.
- 이렇게 전달받은 data를 바탕으로 geometric primitive 타입에 따라서 도형을 그린다.
'ComputerScience > Computer Graphics' 카테고리의 다른 글
CG - 4. Viewing System (0) | 2021.09.24 |
---|---|
CG - 3. Transformation (0) | 2021.09.24 |
CG - 1. 컴퓨터 그래픽스? (0) | 2021.09.02 |
OpenGL - 6 Shaders (2) (0) | 2021.07.15 |
OpenGL - 6 Shaders (1) (0) | 2021.07.06 |