The OpenGL Software Ecosystem

Поделиться
HTML-код
  • Опубликовано: 25 июн 2024
  • This video provides a short history of OpenGL and explains the role of software packages such as FreeGLUT, GLFW, GLEW and GLAD in setting up a working OpenGL environment.
    📚 Timecodes 📚
    0:00 Intro
    0:24 History of OpenGL
    3:00 Portability
    4:45 The window and the context
    5:40 The OpenGL ARB
    7:00 OS/Windowing extensions
    8:08 OpenGL frameworks
    9:16 FreeGLUT and GLFW
    10:29 The loading library
    12:30 GLEW and GLAD
    13:34 Outro
    Please visit ogldev.org to see more of my tutorials on modern OpenGL.
    Feel free to comment below.
    🔗Contacts:
    🔹Email: ogldev1@gmail.com
    🔹Instagram: @ogldev1
    🔹Github: github.com/emeiri/ogldev.git
    🔹TikTok - / ogldev
    🔹Twitter: @ogldev
    🔹One time donations (Paypal): ogldev.org/donate.html
    🔹Patreon: / ogldev
    🙏Credits:
    🔹All the logos in this video are the property of their respective companies (SGI, IBM, HP, Sun Microsystem / Oracle)
    🔹Silicon Graphics logo - www.sgi.com, Fair use, en.wikipedia.org/w/index.php?...
    🔹SG Indigo image - By Retro-Computing Society of Rhode Island - Own work, CC BY-SA 3.0, commons.wikimedia.org/w/index...
    🔹SGI Indy image - By Bilby - Own work, CC BY 3.0, commons.wikimedia.org/w/index...
    🔹SGI Cctane image - By Afrank99 (talk) - Own work, CC BY-SA 2.0, commons.wikimedia.org/w/index...
    🔹Commodore 64 video - • Commodore 64 TV Commer...
    🔹Atari video - • 1983 Atari 800 Compute...
    🔹Sinclair video - • ZX Spectrum: An Americ...
    🔹PC video - • PC Turns 30 (IBM 5150)
    🔹King Quest II video - • King's Quest - Saving ...
    🔹Doom video - • DOOM DOS / IBM PC Quic...
    🔹Duke Nukem 3D video - • Duke Nukem 3D: Atomic ...
    🔹CAD video - • Getting Started with S...
    🔹SGI video - • SGI Octane: What can ...
    🔹Jurrasic Park ("It's a unix system" scene) by Universal Pictures - • It's a unix system
    🔹Linux drivers dri current diagram - By Shmuel Csaba Otto Traian, CC BY-SA 3.0, commons.wikimedia.org/w/index...
    🔹OpenGL on windows diagram - www.opengl.org/pipeline/artic...
    🔹Direct3D system integration diagram - learn.microsoft.com/en-us/win...
    🔹Assasin's Creed Mirage video - • Assassin's Creed Mirag...
    🔹Battlefield 5 video - • Battlefield V - Ray Tr...
    🔹Shadow Of Mordor video - • Shadow Of Mordor: Open...
    🔹Doom 2016 video - • DOOM 4 OpenGL 4.3 Test !
    🔹OpenGL pipeline image - www.khronos.org/opengl/wiki_o...
    🔹Image by Sharuk Ali from pixabay.com
    🔹NVIDIA video - • GeForce Tech Demo: MFAA
    🔹FreeGLUT logo - Image by Steve Baker who releases it under GNU Free Documentation License / 🔹freeglut.sourceforge.net/
    🔹learnopengl.com by Joey De Vries
    🙏Music Credits - RUclips Audio Library:
    Masquerade by Luna Cantina, Trabaja Duro Juega Duro by Luna Cantina, Summer Somewhere In Cuba by Cumbia Deli, Stealth by Aakash Gandhi, Palace of Roses by Aakash Gandhi, Chiapas Marimba by Jimena Contreras, Foyf (Instrumental) - NEFFEX.
    Enjoy,
    Etay Meiri
    #opengl

Комментарии • 62

  • @OGLDEV
    @OGLDEV  17 дней назад +17

    Errata: turns out that OpenAL is actually not governed by Khronos. This Open* prefix can be confusing...

    • @AlbertRyanstein
      @AlbertRyanstein 17 дней назад +2

      Today is a good day brother. TY for a good video also

    • @OGLDEV
      @OGLDEV  17 дней назад

      @AlbertRyanstein Thanks buddy!

  • @Pear64
    @Pear64 6 часов назад

    Super informative, thanks!

  • @sealsharp
    @sealsharp 17 дней назад +5

    My first contact with OpenGL was with the MiniGL driver, a "propriatary incomplete implementation"(yeah, that's a term) of openGL by 3Dfx which allowed OpenGL games ( mostly quake ) to run on 3Dfx Vodoo cards.
    John Carmack didn't care to implement 3fdx Glide for Quake, so 3dfx implemented what Carmack used and then other devs tried to use OpenGL in a way that it works with MiniGL which, as mentioned, was closed source and incomplete and since ID never released a list of OpenGL functions they used and 3Dfx never released a list of OpenGL functions they reimplemented, there was some guessing involved during a time when OpenGL was not fully supported by GPU drivers, Direct3D was considered crappy.

    • @OGLDEV
      @OGLDEV  16 дней назад +2

      Those were the days...

  • @IgnacioGastonMercado
    @IgnacioGastonMercado 3 дня назад

    this is exactly what i needed, thanks man!

    • @OGLDEV
      @OGLDEV  2 дня назад +1

      Glad I could help!

  • @kinsondigital
    @kinsondigital 15 дней назад

    This is great!! It is good to know what things are the way they are.

    • @OGLDEV
      @OGLDEV  15 дней назад

      Thanks!

  • @dressyfiddle3946
    @dressyfiddle3946 17 дней назад +8

    Exceptional explanation! 😄

    • @OGLDEV
      @OGLDEV  16 дней назад

      Thanks! 😃

  • @valtovar
    @valtovar 17 дней назад +5

    Nice video! I'd like to see some of the OpenGL and/or Vulkan videos running on SDL2/3, at least the initial setup. I have observed that many engines prefer this library.

    • @OGLDEV
      @OGLDEV  16 дней назад +1

      I can take a look at SDL in the future but for now I have to focus on the core of OpenGL and Vulkan. I have seen many tutorials on SDL that actually show you how to create a complete game with it so I guess it's a much more extensive library than GLFW.

  • @jtsiomb
    @jtsiomb 17 дней назад +5

    Nice overview. But OpenGL is definitely still available on the mac. Apple calls it deprecated to try and scare people into using metal, but baring terminal insanity (which is always possible for apple), OpenGL support will probably never go away.

    • @vvgr409
      @vvgr409 17 дней назад +1

      I wouldn't be so sure about it. Apple is not afraid of removing old things and breaking backwards compatibility. They made it pretty clear when they removed 32 bit application support. Nothing stops them from removing OpenGL as well since most modern macOS apps are using Metal anyway.

    • @jtsiomb
      @jtsiomb 17 дней назад

      @@vvgr409 You might be right, we'll see. The fact remains however that OpenGL is currently still supported on macos.

    • @OGLDEV
      @OGLDEV  16 дней назад +1

      Thanks! I've seen messages by Unity that they are also going to remove OpenGL support on Mac following Apple's deprecation statement so I would be very hesitant to continue developing in OpenGL there.

  • @TheDev-ht9zv
    @TheDev-ht9zv 17 дней назад +2

    Awesome content!

    • @OGLDEV
      @OGLDEV  16 дней назад +1

      Appreciate it!

  • @eliasmartinezsanchez9009
    @eliasmartinezsanchez9009 16 дней назад +1

    Wow, such a great explanation, congratulations.
    All the information you talked about should be included in the getting started section of any OpenGL tutorial.

    • @OGLDEV
      @OGLDEV  16 дней назад

      Thanks!

  • @jasonwhitworth117
    @jasonwhitworth117 17 дней назад +1

    This was awesome!

    • @OGLDEV
      @OGLDEV  16 дней назад

      Thanks!

  • @fab_81
    @fab_81 17 дней назад +3

    the GTA SA poster was also rendered with openGL

    • @OGLDEV
      @OGLDEV  17 дней назад

      Ofcourse ;-)

  • @voytechj
    @voytechj 16 дней назад

    With new OpenGL core context some old GL functions were deprecated and removed, but including glew header those function names still exists and you can use them by mistake. GLAD will generate headers without those pesky function :).

    • @OGLDEV
      @OGLDEV  16 дней назад

      True, and using core profile in GLFW also helps avoiding deprecated stuff.

  • @syntaxed2
    @syntaxed2 17 дней назад +4

    What are your thoughts on WebGPU and its abstractions over vulkan/dx/metal? - A decent replacement for opengl?

    • @OGLDEV
      @OGLDEV  16 дней назад

      I have to admit that I'm not familiar with WebGPU. Not sure if I would put it head to head with OpenGL since it's intended for the browser. I guess the best comparison is WebGL. Will be interesting to see where it goes.

    • @syntaxed2
      @syntaxed2 16 дней назад

      @@OGLDEV WebGPU has become a native solution now tho :D

    • @OGLDEV
      @OGLDEV  15 дней назад

      What do you mean by 'native'?

    • @hakeemadam955
      @hakeemadam955 14 дней назад

      @@OGLDEV I would highly suggest you look into WEBGPU. Native means it runs on desktop with bare C++ or rust. Bevy, the rust game engine uses WebGPU. The only downside is that it is new and lack documentation, but WebGPU is probably the only truly cross platform API, afaik. Thanks for all your work!.

    • @OGLDEV
      @OGLDEV  10 дней назад +1

      @hakeemadam955 I hope to find the time for it...

  • @notdeus3834
    @notdeus3834 16 дней назад +1

    GTA SA? My brother🤙🤙🤙

    • @OGLDEV
      @OGLDEV  16 дней назад

      That's what I'm telling ya, Sweet.

  • @Vicente_Lopes_Senger
    @Vicente_Lopes_Senger 17 дней назад

    I have used GLFW and GLAD, now I'm loading the function pointers myself and opening the window with the Win32 API for no pragmatic reason, and contrary to common sense, since I plan, at least for now, to also release the game on Linux.

    • @OGLDEV
      @OGLDEV  16 дней назад

      Cool, as long as you enjoy it ;-)

  • @Test-iv4pm
    @Test-iv4pm 15 дней назад

    When you make a game, what objects do you start making first?

    • @OGLDEV
      @OGLDEV  14 дней назад +1

      I have to admit that I'm not experienced with actual game development but my guess is that the answer depends on the type of game that you are developing. Is it outdoor or indoor? Do you need an animation system? Do you need to render terrain? Is it a 3D platformer? You should probably start with the largest objects and drill down to the smaller details. Just my 2cents...

  • @monamodikgwete3423
    @monamodikgwete3423 10 дней назад

    Hello. Do you assist if someone is stuck and needs your help? I am learning OpenGL and I tried to follow your tutorial on Object picking but I fail to follow, I need help with picking and would really appreciate your help.

    • @OGLDEV
      @OGLDEV  9 дней назад

      Sorry, but I work full time so I don't have time for such help. If you send me specific questions I'll try my best to answer.

  • @KarimHamdallah-gc2el
    @KarimHamdallah-gc2el 15 дней назад

    Any resources to handle CCD or FABRIK IK with Assimp

    • @OGLDEV
      @OGLDEV  14 дней назад

      Not exactly Assimp but you may be able to find some relevant info here: guillaumeblanc.github.io/ozz-animation/samples/

  • @ar_xiv
    @ar_xiv 16 дней назад

    OpenGL still works on all apple computers btw. It's "deprecated" but likely not going anywhere.

    • @OGLDEV
      @OGLDEV  15 дней назад

      True, but I doubt that anyone will start a new project using OpenGL on the Mac. Maintenance of existing code at the most.

    • @ar_xiv
      @ar_xiv 15 дней назад

      @@OGLDEV Raylib and Monogame both still use OpenGL on mac, but that might change at some point

    • @OGLDEV
      @OGLDEV  15 дней назад +1

      I suspect they won't be writing a lot of new OpenGL code on the mac.

  • @Test-iv4pm
    @Test-iv4pm 15 дней назад

    OpenGL and Modern OpenGL.... We need a SUPER Modern OpenGL. 3.3 and 4.5 (DSA) are pretty different.

    • @OGLDEV
      @OGLDEV  14 дней назад +1

      DSA is considered modern OpenGL, but right now it doesn't look like they are going to create a super modern OpenGL...

  • @abdo01386
    @abdo01386 15 дней назад

    I configured open GL lib in windows but I cant compile in Dev ++

    • @OGLDEV
      @OGLDEV  15 дней назад

      What error are you getting?

    • @abdo01386
      @abdo01386 15 дней назад

      @@OGLDEV i cant compile anything

    • @OGLDEV
      @OGLDEV  15 дней назад +1

      Sorry, I have never used Dev++. I only have time to support a single environment so I chose Visual Studio which is very popular and free (community edition).

    • @abdo01386
      @abdo01386 13 дней назад

      I have problems with lib configurations in wind like sfml open GL ray lib the setup seems correct but I cant compile or execute any file what to do ?

    • @OGLDEV
      @OGLDEV  13 дней назад

      What sort of problem is there with the lib config? What do you mean you can't compile or execute?

  • @Anthrax02w
    @Anthrax02w 16 дней назад

    D3D has more understandable programming interface.

    • @OGLDEV
      @OGLDEV  16 дней назад

      I wish I had the time to cover it as well.