10. Szabványok, keretrendszerek, függvénykönyvtárak

A grafikus hardverek és szoftverek fejlődésével az OpenGL-nek számos változata és alternatívája terjedt el. Ezen kívül különféle multimédiás keretrendszerek is megjelentek.

DirectX

../../_images/directx_logo.jpg

A DirectX egy API gyűjtemény multimédiás alkalmazások fejlesztéséhez.

  • Windows és Xbox platformokon használják elsősorban.

  • A COM (Component Object Model) elemekre építkezik. (Az alacsony szintű API-k objektum orientált megfelelője.)

  • A COM az Object Pascal (Delphi), MS Visual C++, C# és Visual Basic .NET nyelvekkel használható.

  • A 12-es verziója 2015-ben jelent meg.

  • https://en.wikipedia.org/wiki/Comparison_of_OpenGL_and_Direct3D

Többek között az alábbi elemeket tartalmazza.

Direct3D

  • Tulajdonképpen az OpenGL alternatívájának tekinthető.

  • Próbálja absztrahálni a grafikus hardvert. (Az OpenGL ezzel szemben a hardveres gyorsításra épít, amelyet szükség esetén szoftveressel lehet kiváltani.)

  • Az erőforrásokat nem menedzseli közvetlenül, azt az alkalmazásra bízza. (Szemben az OpenGL-el, ahol annak az implementációja kezeli.)

  • A 12-es változata már a Vulkan API-ra hasonlít.

  • A shader programozáshoz HLSL-t (High Level Shading Language) használ.

  • http://www.directxtutorial.com/LessonList.aspx?listid=112

DirectDraw

DirectSound

DirectPlay

  • Elsősorban a számítógépes játékok hálózati kommunikációjáért felelős API.

  • UDP protokollt használ.

  • A Games for Windows - Live technológia megjelenése után elavultnak tekintik.

XNA

../../_images/xna_logo.png
  • Az XNA’s Not Acronymed rövidítése.

    1. március 24-én jelentették be.

  • A .NET keretrendszerre épül.

  • Az Xbox Live Indie Games elsődleges platformja.

  • Az XNA Game Studio volt az IDE hozzá.

  • Azt lehet mondani, hogy a Unity kiszorította.

  • https://en.wikipedia.org/wiki/Microsoft_XNA

Metal

../../_images/metal_logo.png
  • Az Apple saját szabványa. 2014 óta elérhető.

  • Alacsony szintű, törekszik a kis overhead-re.

  • Az OpenGL és az OpenCL funkcionalitását igyekszik ötvözni.

  • A Vulkan és DirectX 12 API-khoz hasonló szintű.

  • Objektum orientált. Elsősorban a Swift, Objective-C és a C++17 nyelvekhez készült.

  • A saját shader leíró nyelve az MSL (Metal Shading Language).

  • https://developer.apple.com/metal/

  • https://metaltutorial.com/

Modern OpenGL

OpenGL verziók

Shader programozás

Vulkan

../../_images/vulkan_logo.svg ../../_images/vulkan_pipeline.png

WebGL

../../_images/webgl_logo.svg

WebGPU

../../_images/webgpu_logo.svg
  • JavaScript API. A WebGL szabványt igyekszik leváltani. (WebGL Next-nek is hívták.)

  • Elsőként a Google Chrome kezdte támogatni (2023. áprilisától).

  • HTML5 Canvas-re lehet vele rajzolni.

  • Árnyaláshoz a WGSL, Rust jellegű nyelvet használja.

  • https://webgpufundamentals.org/webgpu/lessons/webgpu-wgsl.html