J
Joe Groff
duriansoftware.com · Personal blog · on HN since 2009
Joe Groff, a programmer who writes on graphics, compilers, and language design, including a well-known modern OpenGL tutorial.
What HN saysHN commenters recommend his multi-part introduction to modern OpenGL as an excellent primer, with one calling it the best guide and another using it for teaching.
29HN people shared it
14linked it in comments
19stories submitted
796story points
2 years agolast shared
2009people per year2026
Most-shared posts
- 1Modern OpenGL10 people · 8 points · first shared 2010 · discussion on HN
- 2Optimizing is-multiple checks with modular arithmetic4 people · 137 points · first shared 2018 · 3 comments on HN
- 3An introduction to modern OpenGL4 people · 115 points · first shared 2012 · 11 comments on HN
- 4Constructing human-grade parsers3 people · 78 points · first shared 2018 · 13 comments on HN
- 5The lost language extensions of MetaWare's High C compiler (2023)2 people · 303 points · first shared 2024 · 102 comments on HN
- 6Type-erased generic functions for C: A modest non-proposal2 people · 93 points · first shared 2024 · 74 comments on HN
- 7Optimizing global constant data structures using relative references1 people · 47 points · first shared 2018 · 1 comments on HN
- 8The Factor game framework1 people · 5 points · first shared 2009 · discussion on HN
- 9HTML side-scroller1 people · 4 points · first shared 2010 · 1 comments on HN
- 10An intro to modern OpenGL1 people · 3 points · first shared 2012 · discussion on HN
- 11How to write your next math function in the style of John Carmack1 people · 2 points · first shared 2024 · discussion on HN
- 12Better effect type management with coroutines1 people · 1 points · first shared 2024 · discussion on HN
- 13The lost language extensions of metaware&1 people · first shared 2024
What HN people wrote when they linked it
cpcat · 2016-06-29
I'm afraid there isn't a single best place. What is important first is to learn how GPU architecture is different from traditional before you start learning Cuda or linear algebra. Take a look at these sources for absolute beginners.
https://thebookofshaders.com/
http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Cont…
http://learnopengl.com/
edit: also when you are ready to pick a language and start writing code, i advise using the universal OpenGL over Cuda.
angersock · 2013-08-24
An excellent primer on modern OpenGL I've found to be here (one I've shamelessly cribbed and adapted when teaching):
http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Chapter-1:-Th…
38leinad · 2013-05-17
I also found that its definitely the best guide. A good companion to look at some things from another angle are also these tutorials: http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Cont…
motter · 2012-01-23
Note that this is in several parts. All are well worth reading:
http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Cont…
dtwwtd · 2011-06-08
I'd say learning OpenGL would be a good thing. The OpenGL ES 2.0 spec is supported on both iOS and Android and you can write in C++ for both. It might be more practical use some engine, but if you want to understand what is happening under the covers then this is the best way to do it. Plus, shaders are really powerful.
Hope that helps!
Edit: Here's a tutorial that I've been going through myself recently. It's taught on a desktop but everything is applicable to mobile as well.
http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Cont…
tung · 2011-04-05
The main point here seems to be that you can make separate windows with SDL 1.3 and attach OpenGL contexts to them, versus SDL 1.2's approach of single-window-single-OpenGL-context.
As far as OpenGL tutorials go, I recommend "An intro to modern OpenGL" articles by Joe Groff [1]. It covers the things in OpenGL 2 that still exist in OpenGL ES 2.
[1]: http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Cont…
tmsh · 2010-07-08
One of the best intros I've seen:
http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Cont…
Also:
http://oreilly.com/catalog/9780596804831
And then personally I've found this to be the clearest theory:
http://www.amazon.com/Computer-Graphics-Principles-Practice-2nd/dp/020…
NickPollard · 2013-08-09
I wouldn't dive into Rust right now if you're trying to get into game development at the same time - leave that for when you're a bit more used to general game dev.
Using Lua inside a development environment/engine could be a good start - there's a couple of Lua-based development frameworks that might be worth checking out. Start with 2D games as they're much simpler to get going with and get used to how a game engine will look.
After that, it depends what you want to do. If you mostly want to create some interesting games and care more about the gameplay design side, using a pre-existing engine/framework is best. If you are interested in the development and high-performance side of things as I am, then learn C (not C++) and OpenGL. This is not as hard as it might seem. The best OpenGL tutorial I have found is http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Chapter-1:-Th… - this will get you writing graphics code from scratch and starting to understand what is going on. You don't need to become a graphics expert, but actually understanding how this side of things works will be invaluable.
If you have questions, my email is in my profile and I can be reached there. Happy to answer individual queries. I'm not currently working in the Games Industry (day job is Scala in Finance) but my side project of the last 2 years is a cross platform engine + game written in C and Lua.
mwkaufma · 2024-11-17
Will we see a return of the High C compiler extensions? https://duriansoftware.com/joe/the-lost-language-extensions-of-metawar…
leifmetcalf · 2018-12-31
lloeki · 2012-06-08
While people mentioned NeHe, and it's where I started years ago, it's widely outdated. Here's one that helps you get started with modern GPU rendering concepts in OpenGL.
http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Chapter-1:-Th…
exDM69 · 2011-11-30
http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Cont…
Here's another one that's pretty good. Not as long but maybe a even a bit more thorough.
BlackAura · 2013-01-28
Frankly, complaining that developing for Direct3D requires just the DirectX SDK, and that developing for OpenGL requires some combination of other libraries is a stupid complaint. It's the kind of complaint that only complete newbies might have - anyone with any idea about what they're doing will not have a problem with it.
Not that it's hard, anyway. You don't need any actual libraries to use OpenGL. You just need up-to-date headers, and a way to link to the system's OpenGL library. The easiest way to get those is to use an extension loading library, which provides those headers, links to OpenGL at run-time (same thing that Direct3D does) and makes all of the available extensions available automatically.
Complaining about libraries like GLUT, GLFW, or SDL is completely irrelevant. If you were using Direct3D, you'd be writing windowing code directly on top of the Win32 API, which you can still do with OpenGL. If you want to use one of these libraries to handle the platform-specific windowing and OpenGL setup, you can. You don't have to - even in portable games, you can still just write your own platform-specific windowing and OpenGL setup code.
So the development setup and libraries are different. So what? It's fairly simple to work out for anyone but a complete beginner. On platforms like iOS or Mac OS X, OpenGL is actually trivial - everything you need is included in the platform's SDK. Same with Android. Same, to an extent, with Linux. OpenGL is only really awkward on…