Reference https://learnopengl.com/
https://www.khronos.org/
OpenGL Red Book Eighth edition: OpenGL Programming Guide 8th Edition
OpenGL full name is open Graghics Library, maintained by Khronos Group, is a cross-platform graphics program interface, widely used in 3d and game processing, and similar to Microsoft's D3D. The early use of fixed pipelines is now basically a programmable pipeline.
Since the learning process requires a corresponding window system to display its own implementation, and OpenGL itself does not involve specific window operations, there are many OpenGL-related libraries:
GLUT: Full-OpenGL Utility Toolkit, the applicable Application toolkit, implements the Basic window interface, simple and easy to operate.
Glew: OpenGL Advanced Extension functions can be identified
Freeglut:glut's open source implementation, can replace glut
Specific configuration See previous article Ubuntu configuration OpenGL Glut Library
Pipeline: Can be translated pipeline (pipeline more image), OpenGL implementation needs to be written to framebuffer through the following pipeline: Vertex data->vertex shader->tessellation shader-> Geometry shader->primitive setip-> cropping, rasterization->fragment shader-> frame Cache output
Mention OpenGL will have to mention shader, can be translated shader, you can see that the above pipeline contains many types of shader. This is a program that can be executed by the GPU and is a feature of the programmable pipeline that can be written shader to control the GPU's input and output. You typically use GLSL (OpenGL Shading Language, similar to the C language) to write shader. Vertex shader and fragment shader are usually required.
With the basic concept, the next article uses a concrete example-the first triangle to realize the purpose of OpenGL.