The idea of programming recipes was quite new to me, but I liked it from the beginning. OpenGL 4 Shading Language Cookbook - Second Edition Computer Graphics: Principles and Practice (3rd Edition).Another good site is open.gl and lighthouse3d core and also .Īdditionally, if you want to get even more graphics theory, you can take a look at those two 'core' books: One of the best available tutorials about modern OpenGL (3.3+) comes from Jason L. It is also worth mentioning that there is a lot of online content that can help you. I guarantee that you'll be often returning to the content of this amazing book. The writing style is great and no one should have problems with understanding it. as you can see, there are basic chapters, as well as very advanced topics. The book is both for beginners but also for people very familiar with graphics APIs. The book gives all the information needed to start and even become quite proficient with OpenGL. Older versions of the book contained chapters about Platform specifics.This is important because in OpenGL 4.5 we should be using direct state access functions rather than bind and update. The latest version of the book focuses on OpenGL 4.5.There is even a chapter about not core, but very important extenstions like Sparse textures and bindless graphics.
AZDO Techniques and how to debug OpenGL Applications.
By the time you reach these points, you will definitely have a more clarified perspective on what you want to achieve and how to get where you want. I left the second list unfinished on purpose. General Computing on GPU (OpenCL, CUDA, Compute shaders).
Cooperating with the driver: locks, minimizing memory transfers, batching.Advanced memory management with buffers.Shaders (Geometry, Tessellation, Compute).3D Math - matrices, vectors, projections.Platform differences (PC vs Mobile vs Web vs Console).General knowledge about the computer graphics.I suggest the following topics for the beginning: OpenGL 4.5 (August 2014) can be compared to DX 11.1 or even supersede it. Tesselation shaders, draw indirect, ES2 compatibility, program binaries, separate shaders objects, Compute shaders.
To illustrate this idea, I prepared two images: It can transform vertices, calculate color of fragments, delete or add more triangles and even more. Shader is a little program that can compute various things and is run on the GPU. There is a general form of the pipeline, but a lot of parts are fully controlled by you - thanks to shaders. Programmable pipeline is more like a white, transparent box where not only you put input data and wait for the result, but you can insert/change internal mechanisms as well. You could of course tweak this box to your needs but at some point, it was not enough. You inserted the vertex data in the front (at the input) and you got triangles written to the framebuffer (screen) at the end. What is the difference? This is quite a broad topic, but for now I think it is good to know that fixed pipeline was like a black box. Is there 'old OpenGL ' as well?īasically modern means "using programmable graphics pipeline", old means "fixed pipeline". The first question I would like to answer is why there is a term called 'modern OpenGL'. In this article, I will try to answer some of the questions above and create a guide to a wonderful world of graphics programming using OpenGL. Great! But what does it really mean and what options are available? Do you have to buy expensive books about this technology, or maybe some basic online tutorials are enough? Shaders + Cube Env Map + Phong Lighting Introduction