* always thanks to https://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;
...
};
'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 |