Grahpics Library 또는 Graphics API 는 컴퓨터 그래픽을 모니터에 렌더링 하는 데 도움이 되도록 설계된 프로그램, 라이브러리로 일반적인 렌더링 작업을 처리하는 함수의 최적화된 버전을 제공한다.
OpenGL(Open Graphics Library) 는 1992년 개발된 2차원 및 3차원 그래픽스 표준 API 규격으로, 프로그래밍 언어 간 플랫폼 간의 교차 응용 프로그램을 지원한다. 이 API는 약 250여개 가량의 함수 호출을 이용하여 단순한 기하도형에서부터 복잡한 삼차원 장면을 생성할 수 있다.
DirectX는 마이크로소프트에서 개발한 API로, 주로 Windows 플랫폼에서 멀티미디어 작업(특히 게임)을 위해 상ㅇ된다. DirectX는 그래픽뿐만 아니라 사운드, 입력 장치, 네트워크와 같은 멀티미디어 작업도 지웒나다. DirectX의 가장 잘 알려진 부분은 Direct3D로, 3D 그래픽스를 렌더링하는데 사용된다.
WebGL은 OpenGL ES(OpenGL의 모바일 버전)을 기반으로 웹 브라우저에서 동작하는 3D 그래픽 API이다. WebGL을 사용하면 플러그인 없이 웹 페이지 내에서 3D 그래픽을 렌더링할 수 있다.
Vulkan은 크로노스 그룹에서 개발한 고성능, 저레벨 API로 OpenGL의 차세데 대안으로 설계되었다. Vulkan은 멀티스레딩 성능을 극대화하고, 하드웨어의 저수준에 더 깊게 접근할 수 있어, 게임 및 고성능 애플리케이션에서 높은 성능을 제공한다.
OpenGL 1.0은 Fixed-Function Pipeline으로, 입력 데이터에 대해 고정된 처리 과정을 거치기 때문에 결과가 고정적이고, 사용자가 이 과정에서 세밀한 조정을 할 수 없다.
OpenGL 2.0은 Programmable Shader 기능을 도입한 버전으로, OpenGL 1.0과 비교했을 때 유연성과 그래픽 처리 능력이 크게 향상되었다.
그러나 Programmable Shader 기능이 도입되었으나 여전히 고정 기능 파이프라인을 함께 사용하는 방식으로, Vertex Shader와 Fragment Shader만 프로그래밍 가능하다.
OpenGL 3.0은 더 높은 유연성과 성능을 위한 기능을 추가하면서, 고정 기능 파이프라인을 점차 제거하는 방향으로 발전했다. VAO와 VBO를 도입하여 Vertex Data를 더 간단하고 효율적으로 다룰 수 있게 되었다.
OpenGL 3.2에는 Geometry Shader 기능이 도입되었다. Geometry Shader는 Vertex Shader와 Fragment Shader 사이에 위치한 shader로, 주어진 Primitive(기본 도형) 단위(점, 선, 삼각형)를 입력받아 새로운 정점을 생성하거나 변형할 수 있는 기능을 제공한다.