OpenGL Graphics Library

  1. Shaders and GLSL
    1. OpenGL Shading Language Overview
      1. GLSL Purpose
        1. Language Characteristics
          1. Version Compatibility
          2. GLSL Syntax Fundamentals
            1. Language Structure
              1. Preprocessor Directives
                1. Comments and Documentation
                2. GLSL Data Types
                  1. Scalar Types
                    1. bool
                      1. int
                        1. uint
                          1. float
                            1. double
                            2. Vector Types
                              1. vec2, vec3, vec4
                                1. ivec2, ivec3, ivec4
                                  1. uvec2, uvec3, uvec4
                                    1. bvec2, bvec3, bvec4
                                    2. Matrix Types
                                      1. mat2, mat3, mat4
                                        1. Matrix Operations
                                        2. Sampler Types
                                          1. sampler2D
                                            1. samplerCube
                                              1. sampler3D
                                                1. Array Samplers
                                                2. Array Types
                                                  1. Struct Types
                                                  2. GLSL Variables and Qualifiers
                                                    1. Storage Qualifiers
                                                      1. in
                                                        1. out
                                                          1. uniform
                                                            1. const
                                                            2. Precision Qualifiers
                                                              1. Interpolation Qualifiers
                                                                1. smooth
                                                                  1. flat
                                                                    1. noperspective
                                                                  2. Shader Types
                                                                    1. Vertex Shaders
                                                                      1. Fragment Shaders
                                                                        1. Geometry Shaders
                                                                          1. Tessellation Shaders
                                                                            1. Compute Shaders
                                                                            2. Shader Compilation Process
                                                                              1. Shader Object Creation
                                                                                1. Source Code Loading
                                                                                  1. Compilation
                                                                                    1. Error Handling
                                                                                      1. Compilation Log Analysis
                                                                                      2. Shader Program Management
                                                                                        1. Program Object Creation
                                                                                          1. Shader Attachment
                                                                                            1. Linking Process
                                                                                              1. Program Validation
                                                                                                1. Program Usage
                                                                                                2. Vertex Shader Programming
                                                                                                  1. Vertex Shader Purpose
                                                                                                    1. Input Attributes
                                                                                                      1. Output Variables
                                                                                                        1. Built-in Variables
                                                                                                          1. gl_Position
                                                                                                            1. gl_VertexID
                                                                                                              1. gl_InstanceID
                                                                                                              2. Transformation Operations
                                                                                                              3. Fragment Shader Programming
                                                                                                                1. Fragment Shader Purpose
                                                                                                                  1. Input Variables
                                                                                                                    1. Output Variables
                                                                                                                      1. Built-in Variables
                                                                                                                        1. gl_FragCoord
                                                                                                                          1. gl_FrontFacing
                                                                                                                            1. gl_FragDepth
                                                                                                                            2. Color Output
                                                                                                                              1. Discard Operations
                                                                                                                              2. Shader Communication
                                                                                                                                1. Vertex Attributes
                                                                                                                                  1. Attribute Binding
                                                                                                                                    1. Attribute Locations
                                                                                                                                    2. Uniforms
                                                                                                                                      1. Uniform Variables
                                                                                                                                        1. Uniform Locations
                                                                                                                                          1. Uniform Setting
                                                                                                                                          2. Varying Variables
                                                                                                                                            1. Inter-Stage Communication
                                                                                                                                              1. Interpolation
                                                                                                                                            2. Uniform Buffer Objects
                                                                                                                                              1. UBO Concept
                                                                                                                                                1. Buffer Layout
                                                                                                                                                  1. Binding Points
                                                                                                                                                    1. Data Upload
                                                                                                                                                      1. Shader Interface