튜토리얼

▷ Opengl : 그게 무엇이며 무엇인가

차례:

Anonim

OpenGL에 대해 들어 보셨습니까? 기본적으로 여러 플랫폼에서 사용할 수있는 유일한 API 이기 때문에 업계 최고의 실시간 그래픽 API가 되었습니다. 오늘 우리는 OpenGL의 정의와 목적에 대해 설명하는이 기사를 제공합니다.

목차 색인

연혁

80 년대 에 그래픽 세계와 관련된 광범위한 하드웨어호환되는 소프트웨어개발 하는 것은 개발자에게 진정한 도전이었습니다. 매우 다른 인터페이스 를 다루고 각 유형의 하드웨어에 맞는 특정 드라이버를 작성해야하므로 비용 이 많이 들기 때문에 프로그래머 팀은 개발 속도를 높이기 위해 아웃소싱했습니다. 각 팀은 인터페이스에서 개별적으로 작업했기 때문에 많은 중복 코드가 생성되었습니다. 1992 년 SGI는 향후 몇 년 동안 사양을 유지하고 확장하는 회사 그룹 인 OpenGL ARB (OpenGL Architecture Review Board)를 만들었습니다. OpenGL은 IRIS GL에서 발전하여 지원되지 않는 기능에 대한 소프트웨어 에뮬레이션을 제공함으로써 하드웨어 종속성 문제를 극복했습니다. 따라서 응용 프로그램은 비교적 약한 시스템에서 고급 그래픽을 사용할 수 있습니다.

OpenGL이 무엇인지 이해하려면 먼저 API가 무엇인지 알아야합니다.

OpenGL을 이해하면 API 란 무엇입니까?

API 또는 응용 프로그래밍 인터페이스는 다양한 응용 프로그램이 서로 통신하는 데 사용할 수있는 코드 세트입니다. 사람과 프로그램 간의 상호 작용 을 촉진 하고 소프트웨어 환경 내에서만 적용되는 사용자 인터페이스와 유사한 작업을 수행하는 것입니다. 다른 플랫폼간에 코드 또는 기능을 연결하는 데 사용되므로 한 웹 사이트의 서비스를 다른 웹 사이트의 서비스를 이용할 수 있습니다.

OpenGL이란 무엇입니까?

주로 3D 및 2D 그래픽 및 이미지 를 조작하는 데 사용할 수있는 다양한 기능 을 제공하는 API 로 간주됩니다. 그러나 그 자체로는 단순한 API가 아니라 Khronos Group 에서 개발하고 유지 관리하는 사양 입니다. 또한 비디오 게임 개발 에도 사용되며 Microsoft 플랫폼에서 Direct3D와 경쟁합니다.

함수출력 내용과 작동 방식을 정확하게 지정합니다. OpenGL 스펙은 구현 세부 사항을 제공하지 않기 때문에 실제 개발 된 버전은 결과가 스펙을 준수하는 한 (따라서 사용자와 동일) 다른 구현을 가질 수 있습니다.

OpenGL 라이브러리 개발자는 일반적으로 그래픽 카드 제조업체 입니다. 각 GPU는 해당 그래픽 카드를 위해 특별히 개발 된 OpenGL 버전 인이 API의 특정 버전 을 지원합니다. 예를 들어 Apple과 같은 회사의 시스템을 사용하는 경우 OpenGL 라이브러리를 유지 관리하며 Linux에서는 이러한 라이브러리에 대한 그래픽 공급자 버전과 적응 조합이 있습니다. 이것은 OpenGL이 이상한 동작 을 표시 할 때마다 그래픽 카드 제조업체의 잘못 일 가능성이 높다는 것을 의미 할 수 있습니다. 구현에 오류 가있을 때마다 일반적으로 그래픽 카드 드라이버를 업데이트하여 해결됩니다. 이러한 드라이버에는 GPU가 지원하는 최신 버전이 포함되어 있습니다. 이러한 이유로 항상 드라이버를 업데이트하는 것이 좋습니다.

OpenGL 목표

주요 목표는 다음과 같습니다.

  • 다른 그래픽 카드로 인터페이스의 복잡성줄임 으로써 프로그래머에게 독특하고 균일 한 API를 제공합니다. 다양한 하드웨어 플랫폼의 다양한 기능숨기고 모든 구현에서 OpenGL 기능의 전체 세트를 지원해야합니다 (필요한 경우 소프트웨어 에뮬레이션 사용).

OpenGL의 기본 작업점, 선다각형 과 같은 기본 동작 을 받아들이고 픽셀로 변환하는 것입니다. 이 프로세스OpenGL State Machine 이라는 그래픽 파이프 라인에 의해 수행됩니다. 대부분의 OpenGL 명령은 원시 작업을 실행하여 그래프 분할을 수행 합니다. 버전 2.0이 출시 될 때까지 세그먼테이션의 각 단계는 설정된 기능으로 실행되어 구성 가능성이 거의 없었습니다. 이 버전부터 GLSL을 사용하여 여러 단계를 완전히 프로그래밍 할 수 있습니다.

확장

매우 흥미로운 훌륭한 기능은 확장 지원입니다. GPU 회사에서 3D 이미지를 렌더링하기 위해 새로운 기술이나 새로운 최적화 방법을 도입 할 때마다 확장 기능 이 드라이버에 구현됩니다. 응용 프로그램이 실행중인 하드웨어가이 확장을 지원하는 경우 개발자는 확장에서 제공하는 기능을 사용하여 보다 고급스럽고 효율적인 그래픽 을 얻을 수 있습니다. 이런 식으로 비디오 게임 개발자는 그래픽 카드가 확장을 지원하는지 확인하는 것만으로 OpenGL이 향후 버전에 기능을 포함 할 때까지 기다릴 필요없이 이러한 새로운 렌더링 기술을 사용할 수 있습니다. 종종, 확장인기가 있거나 매우 유용 할 때, 결국 OpenGL차기 버전의 일부가됩니다.

Mad Max는 Linux 용 새 공개 베타 버전에서 Vulkan에 대한 지원을 릴리스합니다.

OpenGL 진화

2015 년 3 월 Vulkan API 가 게임 개발자 컨퍼런스에서 OpenGL후속 제품 으로 소개되었습니다. 처음에는 "Next Generation OpenGL"또는 "glNext"로 알려진 프로그래밍 인터페이스는 오픈 소스 및 크로스 플랫폼입니다. OpenGL과의 차이점은 프로그래밍하는 동안 하드웨어에 더 많은주의를 기울이고 전력 을 크게 증가 시킨다는 것 입니다. 일부 PC 게임은 이미 Vulkan을 지원하지만 대부분 DirectX를 사용합니다. Vulkan은 Khronos Group에 의해 개발되었습니다.

시장에서 최고의 그래픽 카드를 읽는 것이 좋습니다.

지금까지 OpenGL에 대한 기사를 살펴 보았을 때이 문서의 구성 요소 등을 이해했으면합니다. 어쨌든 의견에 질문을 남길 수 있습니다.

튜토리얼

편집자의 선택

Back to top button