OpenGL (source code)
= OpenGL
{c}
<OpenGL> is a graphics programming interface that specifies commands, data objects and rendering behavior independently of a particular graphics processor. An application supplies geometric primitives and programs for programmable stages; the implementation transforms, rasterizes and combines their contributions into a framebuffer. <Khronos Group> publishes the specification, including the distinction between core and compatibility profiles.<The OpenGL Graphics System Version 4.6 Core Profile by Khronos Group>[Chapter 2, OpenGL Fundamentals; Chapter 11, Programmable Vertex Processing]{ref}
For example, drawing an opaque triangle requires vertex data, appropriate shader programs and a draw command. The triangle can generate fragments during <rasterization>; a <fragment shader> determines their candidate outputs, and a <depth buffer> test can reject hidden contributions. The interface specifies the results these operations must produce, while implementations can use different internal hardware and scheduling. A rendering command's submission is also distinct from completion of the corresponding device work.<The OpenGL Graphics System Version 4.6 Core Profile by Khronos Group>[Chapters 14, 15 and 17, rasterization, fragment shading and per-fragment operations; §2.3, command execution]{ref}
Back to article page