
Welcome to OpenGL - felipellrocha
http://learnopengl.com/
======
bla2
For everyone interested in learning OpenGL I'd recommend learning WebGL. It's
the same graphics API, except that it runs in the browser so you don't need to
mess with compilers and linkers and your scenes will work on all platforms. If
you think it's fun you can then move to native OpenGL later (if you must –
WebGL is good enough for surprisingly many things).

~~~
jokoon
If only it was not awful javascript.

Also, I've come into many situations where webgl doesn't work in some
particular situations, would it be a a combination of OS, webgl driver support
or web browser.

I guess it should work and will as time passes, but as long as there is
nothing else than javascript, I won't bother.

~~~
greggman
As someone that's written C++ for 15 years and C for 30 I hated JS too. Now
after several years of JS I can't stand C++. Things that I can do in 3 lines
of JS take 100-300 in C++

Just one example: [http://twgljs.org](http://twgljs.org)

~~~
kevingadd
It's hard for me to think of a language that doesn't feel preferable to C++. C
included. JS is still a really poor competitor in this space; almost
everything I've used scores higher in my personal ranking - even VB6.

------
jokoon
I've read many parts of this tutorial, it's very good and explain thoroughly
how opengl works. It's both simple, short, doesn't go into too much detail,
but provide the essentials you need to know.

The most attractive aspect of this website is that it's oriented towards
opengl 3.3 core profile, so it's really up to date, but now I admit I don't
understand how vulkan will change that.

~~~
jhasse
If I'm not mistaken, one can still use GLSL with Vulkan. So at least that part
won't change much :)

~~~
jokoon
Isn't the purpose of vulkan to have an API that can do both what opengl and
opencl do ?

~~~
jhasse
Yes, also better multithreading support and lower overhead (like AMD's Mantle
which Vulkan is derived from).

------
skeuomorf
I am going to dump a list of related resources that some people might find
interesting:

[https://en.wikibooks.org/wiki/OpenGL_Programming](https://en.wikibooks.org/wiki/OpenGL_Programming)

[https://open.gl/](https://open.gl/)

[http://www.videotutorialsrock.com/](http://www.videotutorialsrock.com/)

[http://www.lighthouse3d.com/tutorials/](http://www.lighthouse3d.com/tutorials/)

[http://www.lighthouse3d.com/tutorials/glsl-core-
tutorial/#](http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/#)

[https://web.archive.org/web/20150309070928/http://www.arcsyn...](https://web.archive.org/web/20150309070928/http://www.arcsynthesis.org/gltut/)

[http://www.learnopengles.com/](http://www.learnopengles.com/)

[https://www.npmjs.com/package/shader-
school](https://www.npmjs.com/package/shader-school)

[http://www.ntu.edu.sg/home/ehchua/programming/opengl/cg_basi...](http://www.ntu.edu.sg/home/ehchua/programming/opengl/cg_basicstheory.html)

[http://nullprogram.com/blog/2015/06/06/](http://nullprogram.com/blog/2015/06/06/)

[https://github.com/zuck/opengl-examples](https://github.com/zuck/opengl-
examples)

[https://github.com/progschj/OpenGL-
Examples](https://github.com/progschj/OpenGL-Examples)

[https://github.com/g-truc/ogl-samples](https://github.com/g-truc/ogl-samples)

[https://github.com/apitrace/apitrace](https://github.com/apitrace/apitrace)

[https://en.wikipedia.org/wiki/Portal:Computer_graphics](https://en.wikipedia.org/wiki/Portal:Computer_graphics)

[http://webglfundamentals.org/](http://webglfundamentals.org/)

[https://blog.inovex.de/android-graphics-pipeline-from-
button...](https://blog.inovex.de/android-graphics-pipeline-from-button-to-
framebuffer-part-1/)

[https://blog.inovex.de/android-graphics-pipeline-from-
button...](https://blog.inovex.de/android-graphics-pipeline-from-button-to-
framebuffer-part-2/)

[http://www.tomdalling.com/blog/category/modern-
opengl/](http://www.tomdalling.com/blog/category/modern-opengl/)

[https://fgiesen.wordpress.com/2011/07/09/a-trip-through-
the-...](https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-
pipeline-2011-index/)

~~~
shurcooL
[http://docs.gl/](http://docs.gl/) \- Convenient reference for OpenGL APIs

Also, if you're interested in OpenGL with Go (and IMO Go is excellent to use
with OpenGL), look at:

[https://github.com/avelino/awesome-
go#opengl](https://github.com/avelino/awesome-go#opengl)

[https://github.com/go-gl/examples](https://github.com/go-gl/examples)

------
arange
i guess Nehe is no longer a thing... :)

~~~
moron4hire
The thing about NeHe that people seem to forget is that it was always complete
garbage. It was just the "only" OpenGL tutorial that included readily copy-
pasta'able code. Didn't matter that code was a smorgasboard of bad habits.

~~~
orbifold
I think that applies to C code in general unfortunately, it took me a while to
realize that C could actually be a very nice language to write in, but only
after reading some of the source of Plan9, OpenBSD, redis, etc. Code you find
in C tutorials is usually horrible.

------
callesgg
It would have been nice if it was not just for visual studio.

(I like the features of visual studio but i am never going back to windows.)

~~~
zamalek
[http://opengl-tutorial.org/](http://opengl-tutorial.org/) is pretty fantastic
cross-platform modern OpenGL (GL3+) set of tutorials.

------
franciscop
Yes! This looks nice. I tried learning OpenGL some time ago but the resources
were so mixed up and low quality that I gave up after few attempts. I might
try now again because I remember it was really fun to make my own code
generated 3d cube world (:

