본문 바로가기

ComputerScience/Computer Graphics

CG - 2. 라이브러리 소개

728x90

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 타입에 따라서 도형을 그린다.

728x90
반응형

'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