기술(Tech, IT)/컴퓨터 그래픽스 (Computer Graphics)

[CG] SDL (Simple DirectMedia Layer) vs OpenGL(Open Graphics Library)

Daniel803 2023. 9. 17. 05:13

 컴퓨터 그래픽스에서 가장 흔하게 사용되는 두 라이브러리에 대해 비교해보자. 두 라이브러리는 컴퓨터 그래픽스를 처음 접하는 사람들에게 다소 낯설고 헷갈리겠지만, 둘은 다라다는 것을 인지하는 것부터 시작해야한다.

 

  SDL OpenGL
목적 주로 OpenGL 및 Direct3D를 통해 오디오, 키보드, 마우스, 조이스틱 및 그래픽 하드웨어에 대한 낮은 수준의 액세스를 제공하도록 설계. 또한 윈도우 생성, 오디오 재생 및 기타 멀티미디어 작업 관리 가능. 2D 및 3D 벡터 그래픽을 렌더링하는 데 사용되는 그래픽 API(애플리케이션 프로그래밍 인터페이스). 특정 윈도우 시스템이나 운영 체제에 종속되지 않으며 순전히 그래픽 렌더링에만 집중.
범주 OpenGL보다 큰 범위. 그래픽을 처리하지만(주로 OpenGL과 같은 다른 라이브러리와의 인터페이스를 통해) SDL은 오디오, 입력 장치 및 기타 멀티미디어 기능에 대한 지원도 제공. 그래픽 렌더링에 특화. 창 관리, 사용자 입력, 오디오 처리와 같은 추가 기능은 다른 라이브러리 또는 API로 보완해야.
플랫폼 독립성 플랫폼에 구애받지 않고 다양한 시스템 리소스에 액세스할 수 있는 방법 제공. 따라서 코드를 크게 변경하지 않고도 아양한 플랫폼에서 실행해야 하는 게임 개발의 기초로 일반적으로 사용. API 자체는 플랫폼에 독립적이지만, 윈도우 생성, 컨텍스트 처리 및 입력은 해당 범위 밖. 이러한 플랫폼별 측면을 처리하기 위해 GLFW, GLUT, SDL과 같은 라이브러리가 OpenGL과 함께 사용되는 경우가 많음.
렌더링 자체적인 기본 2D 렌더링 기능이 있으나, 고급 2D 또는 3D 그래픽의 경우 OpenGL 또는 Direct3D와 함꼐 사용됨. 순수 렌더링 전용으로, 2D 및 3D 그래픽을 위한 포괄적인 도구와 기능 제공.
대중성 인디 게임 개발자와 간단한 설정으로 플랫폼 독립성이 중요한 프로젝트에 특히 인기가 많음. 게임부터 CAD 소프트웨어, 시각화 툴까지 다양한 애플리케이션에서 널리 사용. Unity 또는 Unreal Engine과 같은 많은 게임 엔진은 백엔드 레더 중 하나로 OpenGL을 사용.
개발 커뮤니티 기여를 받아 Sam Lantinga가 개발 및 유지 관리. 오픈 소스이며 수년 동안 꾸준히 개발되는 중. Khronos Group에서 유지 관리하며, 주요 기술회사를 포함한 다양한 엽계 구성원이 스펙을 생성.

 

참고

- https://gamedev.stackexchange.com/questions/46698/making-a-game-in-2dc-sdl-or-opengl-or-why-not-both

- GPT-4