"OpenGL" 이란?
OpenGL은 그래픽이나 이미지를 다루기 위한 API의 일종이다.
하지만, OpenGL은 그 자체가 API인 것은 아니다.
OpenGL은 넓은 범위에서의 설명서이다.
Input과 Output에 대하여 그래픽이나 이미지들의 구현이 어떻게 되는지에 대한 대략적인 설명서이다.
대략적인 설명서인 이유는 사용자의 하드웨어,
즉, 그래픽 카드에 따라서 다른 OpenGL 버젼이 사용되기 때문이다.
그렇기에, 특정 버젼에 따라 지원해주는 OS 혹은 기기가 달라지기에, 큰 범주에서
"그래픽 카드에서 다루는 함수들의 라이브러리"라는 의미로 OpenGL이 사용된다.
[p.s]
다음 홈페이지에서는 그래픽 관련 API들이 모여있는 정보들을 확인할 수 있다.
Welcome to the Khronos Group
Nov5th2021년 11월 2일, 미국 오레곤주 비버톤 – 크로노스그룹은 오늘 3D 데이터 가시화를 위한 확장가능한 API 개방형 표준으로 ANARI™ 1.0 (Analytic Rendering Interface)의 잠정 표준안을 공개하였다. ANARI
kr.khronos.org
"Core-Profile" vs "Immediate mode"
"Immediate mode"
고정 함수 파이프라인(fixed function pipeline)이라고도 불렸던 옛날 형식의 OpenGL 방식이다.
이것의 장점은 그래픽을 비교적 쉽게 그릴 수 있다는 것이다.
하지만, 시간이 지나고 효율적인 측면과 커스터마이징에 대한 필요성이 증대되면서,
사용자가 조금 더 Low-Level에서 그래픽 라이브러리를 다룰 필요가 되면서 한계점이 드러나기 시작한다.
"Core-Profile Mode"
위와 같은 현상 때문에, 개발자들은 "Core-Profile Mode"라고 하는 옛날 방식의 기능들이
제거된 새로운 모드를 제시한다.
이 방식의 장점으로는 효율성과 유연성이 매우 좋다는 점이다.
하지만, 이것은 옛날 방식에 비해 학습에 있어서 난이도가 높다는 단점이 있다.
"Extensions"
OpenGL의 가장 뛰어난 장점 중의 하나가 바로 "확대 지원"이라고 할 수 있다.
조금 더 친근하게 설명하자면, 다양한 그래픽 카드에 대해서도 지원을 확대하여 가능하게 하는 것이다.
"State Machine"
OpenGL은 하나의 시스템이자 커다란 컴퓨터라고 생각하면 된다.
우리는 삼각형을 그리는 대신에 OpenGL로 구현한 코드들의 변수들을 변경시키면서
그림을 그려나갈 것이다.
'컴퓨터 그래픽 > OpenGL' 카테고리의 다른 글
[ Getting Started ] 개발환경 구축 - Ubuntu (1) | 2022.04.22 |
---|---|
[CMakeLists.txt 파일] (0) | 2022.04.21 |
[Getting Started] 0. CMake 사용하기 - 기초 (0) | 2022.04.16 |
[OpenGL] 공부 강좌 및 저서 출처 (0) | 2022.04.16 |