고수준 및 저수준 그래픽 API : 차이점 및 작동 방식

그래픽 API는 하드웨어의 일부가 아니라 소프트웨어의 일부이지만 화면에 표시되는 그래픽을 렌더링하고 애플리케이션과 애플리케이션 간의 통신을 구현하는 데 필수적입니다. GPU 불가능합니다. 이 기사에서 우리는 그래픽 API가 무엇인지 접근 가능한 방식으로 설명하고 그와 관련된 신화를 깨뜨립니다.

GPU는 프로그램을 실행하지 않지만 명령 목록을 실행한다는 점을 고려해야합니다. 그러나이 목록은 어디에서 왔으며 어떻게 GPU에 도달합니까?

고수준 및 저수준 그래픽 API : 차이점

그래픽 API 란 무엇입니까?

OpenGL 머신

그래픽 API는 애플리케이션이 GPU와 통신하여 다음 프레임 또는 일부를 그리는 방법을 표시 할 수 있도록합니다. 개념은 GPU가 무엇인지 프로그래밍 언어로 생성하는 추상화를 기반으로합니다. 추상화의 개념을 이해하기 위해 GPU 대신 소다 머신이 연결되어 있다고 가정하겠습니다.

다과 기계의 API는 다음과 같은 기능을 가진 라이브러리가 될 것입니다 : 동전 던지기, 변경 반환, 다과 선택 및 다과 제공, 프로그램이 상호 작용할 수있는 방식으로 API의이 부분은 프런트 엔드에 의해 호출됩니다. 우리가하는 일은 명령어 목록입니다. GPU에서는이 목록을 DisplayList 또는 화면 목록이라고합니다.

DisplayList 링 버퍼

이 화면 목록은 그래픽 카드 드라이버 이외의 소프트웨어에 의해 읽혀지며, 이는 GPU가 이해할 수있는 마이크로 코드로 목록을 변환하고이를 컴퓨터의 일부에 복사합니다. GPU가 항상 액세스하는 메모리. 화면 목록을 읽으려면 명령 프로세서의 내부 메모리에 목록을 복사하고 화면 목록의 지침에 따라 장면 또는 장면의 해당 부분 렌더링을 시작합니다.

이 프로세스는 게임용 PC, 스마트 폰 또는 비디오 게임 콘솔을 사용하는지 여부에 관계없이 GPU가 렌더링하고 화면으로 보내는 각 프레임에서 지속적으로 수행됩니다.

오늘날 그래픽 API는 무엇입니까?

API 그래픽

오늘날 가장 많이 사용되는 그래픽 API는 다음과 같습니다.

  • Vulkan : OpenGL을 대체하며 모든 유형의 운영 체제에서 사용되며 플랫폼에 구애받지 않지만 Google의 주요 API입니다.
  • 금속 : macOS에서 사용되며 특별히 GPU 아키텍처에 최적화 된 Apple의 그래픽 API입니다.
  • 다이렉트 X : Microsoft의 Windows 및 Xbox 용 API는 플랫폼에 따라 여러 버전으로 나뉘었지만 최근에는 단일 버전으로 통합했습니다.
  • GNM / GNMX / GNM ++ : SONY의 PlayStation 4 및 PlayStation 5 콘솔 용 그래픽 API 인 GNMX는 고수준 API이고 GNM은 PS4의 저수준 버전 API이고 PS5의 GNM ++입니다.
  • NVN : 이 시리즈 콘솔에서만 독점적으로 사용되는 Nintendo Switch 그래픽 API.
  • OpenGL은 : 이 모든 것을 시작한 API는 원래 IrisGL로 알려져 있으며 Silicon Graphics 워크 스테이션 용으로 설계되었으며 PC, 콘솔 및 이후 스마트 폰용 API로 발전했습니다. Vulkan이 OpenGL 4의 리 브랜딩 버전 5에 도달했습니다.

컴퓨팅 vs 그래픽

DX11 대 DX12

GPU는 오랫동안 비디오 게임을 렌더링하는 장난감에 불과한 매우 복잡한 프로세서로, 오늘날에는 그래픽 API의 발전으로 이어지고 그래픽을 뛰어 넘는 인공 지능 또는 고성능 컴퓨팅과 같은 분야에서 사용됩니다.

현재 응용 프로그램은 단일 목록이 아닌 여러 목록을 전송합니다. 그 중 하나는 그래픽이고 나머지는 컴퓨팅입니다. GPU는 그래픽 렌더링과 관련이없는 특정 문제를 해결하는 데 사용되며 후자는 완전히 비동기식으로 작동합니다. 따라서 화면 목록에 의존하지 않습니다.

예를 들어, 그래픽 디자인 응용 프로그램이 GPU의 성능을 사용하여 사진의 특수 효과를 해결할 수 있습니다. GPU가 문제를 해결하는 데 더 적합하기 때문일 수 있습니다. CPU. 계산 목록 덕분에 GPU의 무료 리소스를 사용하여 작은 문제를 해결할 수 있습니다.

고수준 및 저수준 그래픽 API : 서로 어떻게 다릅니 까?

API Gráficas Alto Bajo

낮은 수준의 API에 대해 이야기 할 때 우리는 GPU에 가깝게 실행되는 API를 말합니다.이 API는 스택의 맨 아래에 있고 드라이버는 맨 위에 있습니다. 따라서 높은 수준의 API는 디스플레이를 생성하는 드라이버가 필요한 API입니다. 명부. 특정 드라이버 작업은 고급 API에서 실행되지 않으므로 이론적으로 달성되는 것은 CPU에서 화면 목록을 실행하는 시간이 더 짧다는 것입니다. 즉, 프레임을 밀리 초 안에 완료하거나 그래픽을 개선하는 데 더 많은 시간을 할애해야합니다. 그 같은 프레임.

실제로 저수준 API에 일부 장소에서 읽고들을 수있는 드라이버가 없다는 것은 잘못된 것이지만, 이것은 훨씬 간단하고 애플리케이션에 특정 필수 작업을 수행 할 때 작업에 부담을줍니다. 이는 개발자가 화면 목록 생성 프로세스를 제어하여 가능한 한 각 프레임의 타이밍을 최적화합니다.

그러나 개발자의 경우 추가 개발 시간이 재정적으로 가치가 없다는 사실 또는 단순히 게임을 API에 적용하여 얻을 수있는 이점 때문에 높은 수준의 API를 사용하는 것이 훨씬 더 편할 수 있습니다. 낮은 수준은 눈에 띄지 않습니다.

콘솔과 PC의 신화

콘솔에는 고유 한 하드웨어가 있기 때문에 다양한 구성이있는 PC보다 API가 훨씬 더 최적화되어 있다는 신화가 있지만 화면 목록을 생성하는 것은 실제로 우리가 설치 한 드라이버입니다. 차이점은 콘솔에서이 드라이버는 정적이며 콘솔의 전체 상용 수명 동안 성능 업데이트 나 변경 사항을받지 않는다는 것입니다.