본문 바로가기

ComputerScience/Computer Graphics

OpenGL - 2 OpenGL

728x90

* always thanks to https://learnopengl.com/

 

Learn OpenGL, extensive tutorial resource for learning Modern OpenGL

Welcome to OpenGL Welcome to the online book for learning OpenGL! Whether you are trying to learn OpenGL for academic purposes, to pursue a career or simply looking for a hobby, this book will teach you the basics, the intermediate, and all the advanced kn

learnopengl.com

2 OpenGL

- 오픈 그래픽 라이브러리. 이 API를 이용하여 단순한 기하도형에서부터 복잡한 삼차원 장면을 생성할 수 있다.

- OpenGL은 가상현실, 정보시각화, 비행 시뮬레이션, 게임 등의 분야에서 활용된다.

- 그래픽카드마다 지원하는 openGL version이 있다. 제조사에서 드라이버 업데이트 등으로 지속적인 업데이트를 지원한다.

2.1 Core profile vs Immediate mode

- Core profile mode : modern approach, efficient, difficult to use 

* core profile mode에서 deprecated functions를 사용하면 openGL에서 warning이 발생한다.

- immediate mode : old fashion, easy to use, inefficient

2.2 extensions

- 새로운 기술이 나타나고 랜더링 최적화가 이루어질때마다 제조사에서 driver업데이트를 통해 새로운 openGL을 반영하기 때문에 functionality면에서 확장성이 매우 좋다. 개발자는 그래픽카드에서 지원되는 openGL 버전만 확인하면 된다.

2.3 State machine

- openGL은 커다란 state machine이다. 이를 openGL context라고 한다.

- 이 context의 state를 변화시키면서 drawing을 진행한다. 예를들면 buffer를 조작하여 current context를 draw하도록 한다.

- context와 states를 변화시키는 function들로 화면에 대상을 그린다는 점을 새기자.

2.4 Object

- openGL의 core는 c로 되어있다. 

- abtractions을 고려하여 개발 되었기 때문에 openGL의 state를 object로 표현한다. 

- 이런 object를 여러개 생성하여 저장하고 context에 bind하여 여러 model들을 그리게 될 것이다.

struct OpenGL_Context {
	...
	object_name* object_Window_Target;
	...
};
728x90
반응형

'ComputerScience > Computer Graphics' 카테고리의 다른 글

OpenGL - 5 Hello Triangle (3)  (0) 2021.06.30
OpenGL - 5 Hello Triangle (2)  (0) 2021.06.29
OpenGL - 5 Hello Triangle (1)  (0) 2021.06.29
OpenGL - 4 Hello Window  (0) 2021.06.25
OpenGL - 3 Creating a window  (0) 2021.06.22