본문 바로가기

OpenGL

Open Graphics Library

서로 다른 운영체제와 그래픽 하드웨어에서 2차원·3차원 렌더링을 수행하도록 정의한 개방형 그래픽 API 규격. 1992년 실리콘 그래픽스에서 출발해 고정 기능 처리에서 프로그래머블 셰이더·GPU 병렬 연산으로 발전했으며, 게임·설계·과학 시각화와 모바일·웹 그래픽 표준의 토대를 이룬 기술.

17 타임라인
20 관련 링크
OpenGL

추가 정보

실리콘 그래픽스의 IRIS GL을 바탕으로 발전한 제조사 중립적 그래픽 인터페이스. 응용프로그램이 기하 데이터와 텍스처, 셰이더 등을 전달하면 구현체와 그래픽 드라이버가 규격에 맞게 화면을 생성하도록 정의한 표준이며, 특정한 그래픽 카드나 단일 라이브러리 제품과 구별되는 개념.

초기에는 정해진 변환·조명·래스터화 기능을 조합하는 방식이 중심이었으나, OpenGL 2.0의 GLSL 통합을 거치며 개발자가 GPU의 처리 과정을 직접 작성하는 구조로 발전함. 3.x의 API 정리와 코어·호환 프로파일 분리는 새로운 개발 방식과 축적된 프로그램의 유지 요구를 함께 수용한 변화. 4.x에서는 테셀레이션, 컴퓨트 셰이더, 직접 상태 접근과 SPIR-V 지원을 통해 렌더링의 표현력과 데이터 처리 능력을 확장함.

1992년 구성된 OpenGL ARB가 규격을 관리했으며 2006년 관리 체계가 크로노스 그룹으로 이동함. Mesa 같은 오픈소스 구현은 다양한 시스템에서 OpenGL을 활용할 수 있는 기반을 넓혔고, OpenGL ES와 WebGL은 모바일 및 웹 환경에 적합한 그래픽 표준 계보를 형성함. 이후 저부하 API인 Vulkan의 등장과 애플 플랫폼의 Metal 중심 전환 속에서도 기존 소프트웨어와 다중 플랫폼 그래픽 생태계에 남은 장기간의 기술적 기반.

타임라인 17건 · 1992–2018

수록 이벤트 분포 점을 선택하면 해당 이벤트로 이동할 수 있습니다.
1992년 2018년
release 14건

브라이언 폴이 OpenGL API를 바탕으로 개발한 Mesa 1.0을 인터넷에 공개함. 1993년 여가 프로젝트로 시작해 1994년 SGI와 배포 문제를 협의한 뒤 공개에 이른 과정. 상용 OpenGL 구현을 구하기 어려웠던 시스템에서도 그래픽 프로그래밍을 접할 통로를 제공했고, 이용자들의 패치와 기능 기여가 이어지며 오픈소스 그래픽 생태계로 성장한 출발점.

OpenGL 1.3 규격이 공개되며 여러 텍스처를 한 번의 렌더링에 결합하는 멀티텍스처 기능을 핵심 규격에 포함함. 큐브맵 텍스처와 텍스처 압축, 멀티샘플링도 정식 기능으로 정리한 개정. 제조사별 확장 기능에 의존하던 표현 기법을 공통 인터페이스로 옮겨 복합 재질·환경 반사·화질 개선을 여러 그래픽 하드웨어에서 활용할 기반을 강화함.

OpenGL 1.5가 공개되며 정점 데이터를 그래픽 메모리에 보관하는 버퍼 객체와 가림 질의를 핵심 기능으로 도입함. 데이터 전송 부담을 줄이고 보이지 않는 물체의 렌더링 비용을 판단할 수 있도록 한 성능 중심 개정. 같은 시기 ARB가 승인한 고수준 셰이딩 언어와 셰이더 확장은 고정 기능 파이프라인을 프로그램으로 대체할 수 있는 길을 마련하며 이후 OpenGL 2.0으로 이어진 기술적 전환점.

OpenGL 2.0이 정점·프래그먼트 셰이더와 OpenGL Shading Language를 핵심 규격에 통합함. 기존의 정해진 조명·색상 계산을 호출하는 방식에서 개발자가 GPU의 계산 과정을 프로그램으로 정의하는 방식으로 표현력을 확장한 변화. 다중 렌더 타깃과 2의 거듭제곱이 아닌 크기의 텍스처 등도 지원하며 새로운 렌더링 기법의 구현을 뒷받침함. 주 버전이 바뀌었지만 이전 프로그램과의 상위 호환성을 유지하도록 설계한 규격.

크로노스가 OpenGL 3.0과 GLSL 1.30 규격을 공개함. 정점 배열 객체, 프레임버퍼 객체, 부동소수점 텍스처 등 최신 GPU의 기능을 공통 규격으로 제공한 개정. 기능을 즉시 없애는 대신 향후 제거할 수 있음을 알리는 사용 중단 예고 체계를 도입해 복잡해진 API를 단계적으로 정리할 방식을 마련함. 기존 하드웨어에 일부 신기능을 제공하는 확장도 함께 제시하며 현대화와 기존 소프트웨어 자산 사이의 균형을 추구함.

OpenGL 3.1이 공개되며 이전 버전에서 사용 중단이 예고된 다수의 구형 기능을 핵심 규격에서 제거함. 필요한 응용프로그램은 별도의 선택적 호환 확장으로 기존 OpenGL 1.x·2.x 기능을 이용할 수 있도록 한 구조. 인스턴싱과 유니폼 버퍼 객체, 텍스처 버퍼 객체를 추가해 반복 물체의 그리기와 셰이더 데이터 공유를 효율화함. 간결한 현대적 API와 기존 프로그램의 유지 요구를 분리해 수용한 전환.

OpenGL 3.2가 신규 개발을 위한 코어 프로파일과 기존 기능을 유지하는 호환 프로파일을 도입함. 구형 기능을 사용할 수 있는지 여부를 명확한 규격 선택으로 정리해 게임과 전문 워크스테이션 프로그램의 서로 다른 요구를 수용한 변화. 지오메트리 셰이더를 핵심 기능에 포함하고 동기화 객체와 멀티샘플 텍스처 관련 기능을 확장함. OpenGL 3.0 이후 1년 동안 이어진 세 차례 개정으로 현대화의 실행 방식을 구체화함.

OpenGL 4.0이 테셀레이션용 셰이더 단계와 64비트 배정밀도 셰이더 연산을 도입함. 복잡한 곡면의 세분화 작업을 GPU로 옮기고 정밀한 계산이 필요한 시각화의 표현 범위를 넓힌 개정. 셰이더 서브루틴과 간접 그리기 등도 추가해 프로그램 구성과 GPU 작업 실행의 유연성을 강화함. 동시에 이전 세대 GPU에서도 가능한 신기능을 제공하는 OpenGL 3.3을 공개해 최신 하드웨어와 기존 설치 기반을 함께 지원함.

OpenGL 4.1이 OpenGL ES 2.0 API와의 완전한 호환 기능을 포함해 모바일과 데스크톱 사이의 이식을 쉽게 함. 셰이더 프로그램 바이너리를 조회·다시 적재하는 기능으로 반복 컴파일 시간을 줄일 수 있게 하고, 프로그램을 셰이더 단계별로 결합하는 방식도 도입함. 다중 뷰포트와 고정밀 정점 입력을 지원하며 복잡한 렌더링의 구성 선택지를 확대함. 기존 코드 호환성을 유지하면서 플랫폼 사이의 기술적 간격을 줄인 개정.

OpenGL 4.2가 셰이더의 원자적 카운터와 이미지 읽기·쓰기·원자적 갱신 기능을 확장함. 여러 연산이 공유 데이터를 다루는 방식을 강화해 순서 독립 투명도 같은 고급 렌더링 기법을 구현할 기반을 제공함. 테셀레이션 결과의 재사용과 압축 텍스처 일부 갱신, 셰이더 데이터의 효율적 포장도 지원한 개정. 새로운 표현 기능뿐 아니라 메모리 대역폭과 반복 계산 비용을 줄이려는 실제 개발자의 요구를 반영함.

OpenGL 4.3이 컴퓨트 셰이더를 도입해 일반적인 그리기 파이프라인에 묶이지 않는 GPU 병렬 연산을 지원함. 셰이더 저장 버퍼 객체로 더 큰 데이터 집합을 읽고 쓸 수 있게 하여 그래픽 처리와 계산의 결합 범위를 확장함. OpenGL ES 3.0과의 호환, 디버그 출력과 보안·견고성 관련 기능도 개선함. 응용프로그램이 하나의 그래픽 API 안에서 시뮬레이션·데이터 처리·렌더링을 함께 구성할 수 있도록 넓힌 규격.

OpenGL 4.4가 버퍼 저장 방식과 비동기 질의, 여러 객체의 일괄 바인딩을 개선함. CPU가 결과를 기다리거나 개별 상태 변경을 반복하는 비용을 줄여 그래픽 파이프라인의 활용도를 높이려는 개정. 크로노스는 OpenGL 2.0 이후 처음으로 정식 적합성 시험 묶음을 마련하고 4.4부터 인증을 의무화한다고 발표함. 기능 추가와 함께 제조사별 드라이버 차이를 줄이고 프로그램의 이식성을 높일 검증 체계를 강화함.

OpenGL 4.5가 공개되며 객체를 먼저 전역 상태에 바인딩하지 않고 수정할 수 있는 직접 상태 접근 기능을 핵심 규격에 포함함. 상태 변경의 부수 효과를 줄여 자원 관리와 프로그램 구성을 단순화하도록 한 변화. OpenGL ES 3.1과의 호환 및 견고성 관련 기능도 강화함. 같은 발표에서 크로노스가 차세대 저부하 그래픽 API 구상을 제시하며 기존 OpenGL의 점진적 개선과 새로운 API 설계가 병행되는 방향을 드러냄.

OpenGL 탄생 25주년에 공개된 4.6 규격이 SPIR-V 중간 표현의 셰이더를 핵심 기능으로 수용함. 개발자가 셰이더 제작·관리 도구를 공유하고 다양한 원본 언어를 활용할 여지를 넓힌 변화. 여러 확장 기능을 핵심 규격으로 통합하며 일괄 그리기의 CPU 부담 감소, 비등방성 텍스처 필터링, 셰이더 연산과 질의 기능의 개선도 포함함. 기존 OpenGL 생태계를 유지하면서 새로운 셰이더 도구 체계와의 연결을 강화한 개정.

change 2건

OpenGL ARB가 규격 관리권을 크로노스 그룹으로 이전하기로 의결했다는 발표. 크로노스도 OpenGL 작업반 설치를 승인하고, 당시 2006년 3분기 이관 완료를 계획함. 데스크톱 OpenGL과 모바일용 OpenGL ES, 안전 중요 시스템용 OpenGL SC 등의 로드맵을 하나의 참여 체계에서 조율하기 위한 조직 개편. 고급 워크스테이션에서 PC·모바일로 확대된 그래픽 산업의 변화에 맞추어 표준 관리의 기반을 넓힌 결정.

macOS Mojave 10.14가 출시되면서 해당 플랫폼의 OpenGL 프레임워크가 사용 중단 예정 API로 분류됨. 기존 프로그램의 호환성을 위해 API 자체는 남겨 두었으므로 즉각적인 제거와는 구별되는 조치. 애플은 새로운 GPU 기능을 활용하려는 개발자에게 Metal 중심의 개발 방향을 제시함. 여러 운영체제를 하나의 그래픽 API로 지원해 온 개발자들에게 플랫폼별 유지·이식 전략을 다시 검토하게 만든 변화.

event 1건

실리콘 그래픽스의 마크 시걸과 커트 에이클리가 작성한 OpenGL 1.0 규격이 완성됨. IRIS GL에서 출발한 그래픽 인터페이스를 여러 제조사와 운영체제에서 구현할 수 있는 공통 규격으로 정리한 결과. 업계 기업들이 참여한 OpenGL Architecture Review Board를 통해 규격과 적합성을 공동 관리하는 기반을 마련함. 특정 회사의 워크스테이션을 넘어 그래픽 응용프로그램의 이식성을 높이는 장기적 표준화의 출발점.

갱신 2026-11-05