2021. 7. 22. 02:30ㆍ그래픽스/opengl
1. OpenGL
immediate mode (fixed function pipeline)
- 예전에 쓰였던 방식
- 대부분 기능이 내부에 숨겨져있음, 내부에서 작동확인 어려움
- 그대신 사용하기 쉽고 이해하기 쉬움
- 그러나 비효율적
- OpenGL 3.2 이후 core-profile mode
core-profile mode
- 최신 기술(modern practices)을 사용하도록 유도 (deprecated functions 사용시 정지)
- 따라서 배우기 어려움.
- 하지만 매우 유연하고 효율적
- 내부에서의 동작을 확인하기 쉬워짐
OpenGL 3.3버전 을 배우는 이유 :
이후버전은 기능이 추가되거나 함수가 더 효율적으로 바뀐것.
2. Extensions
- 그래픽 카드 회사에서 렌더링을 위해 새로운 기술을 개발하거나 최적화 작업을 한것을
사용가능하거나 안하게 할 수 있음.
(하드웨어에 맞게 주어진 기능을 활성화하는 Functional Mode 이야기인거 같음)
3. State Machine
OpenGL은 커다란 상태 머신
(상태변수 설정하는 역할, 하드웨어가 불가능함)
상태 변수 == context
상태, 옵션을 설정하고 버퍼를 조작한다음
current context(현 상태)를 변경해야함
(상태 = 점의 크기, 색, 길이 등등)
(현상태는 변경하기전 까지 계속 유지)
4. Objects
core 는 C 라이브러리,
추상화를 고려하여 개발된 OpenGL
추상화중 하나인
객체는 상태를 나타내는 옵션들의 모음
1) 객체를 생성하고, 레퍼런스를 id 로 저장 (실제 데이터는 scenes 뒤에 저장)
2) 객체를 id를 이용하여, context의 대상 위치에 바인딩
3) 옵션을 설정
4) 바인딩 해제 -> id가 참조하는객체에 옵션은 저장됨, context의 대상 위치는 복원됨)
=> 여러 객체를 정의하고 옵션을 설정할 수 있음, 특정 모델을 그리려 할때마다 해당 옵션을 다시 설정하지 않아도
저장된 옵션이 설정됨, 해당 객체를 바인딩만 하면됨.
'그래픽스 > opengl' 카테고리의 다른 글
[learn-OpenGL] Transformations (0) | 2021.07.26 |
---|---|
[learn-OpenGL] Textures (0) | 2021.07.25 |
[learn-OpenGL] Shaders (0) | 2021.07.24 |
[learn-OpenGL] Triangle (0) | 2021.07.23 |
[learn-OpenGL] Window 창 (0) | 2021.07.22 |