WebGL and Computer Graphics

  1. WebGL Rendering Pipeline
    1. Buffer Management
      1. Vertex Buffer Objects
        1. VBO Purpose and Benefits
          1. Buffer Creation Process
            1. Buffer Deletion and Cleanup
            2. Buffer Operations
              1. Buffer Binding
                1. Array Buffer Target
                  1. Element Array Buffer Target
                  2. Data Upload Methods
                    1. Static Draw Usage
                      1. Dynamic Draw Usage
                        1. Stream Draw Usage
                      2. Vertex Data Organization
                        1. Position Attributes
                          1. 2D Positions
                            1. 3D Positions
                            2. Color Attributes
                              1. RGB Colors
                                1. RGBA Colors
                                2. Normal Attributes
                                  1. Surface Normals
                                    1. Vertex Normals
                                    2. Texture Coordinate Attributes
                                      1. UV Coordinates
                                        1. Multiple Texture Coordinates
                                      2. Index Buffer Objects
                                        1. Indexed Drawing Benefits
                                          1. Index Buffer Creation
                                            1. Element Array Usage
                                              1. Index Data Types
                                            2. Shaders and GLSL
                                              1. GLSL Language Fundamentals
                                                1. Syntax Overview
                                                  1. C-like Syntax
                                                    1. Precision Qualifiers
                                                    2. Data Types
                                                      1. Scalar Types
                                                        1. Float Type
                                                          1. Integer Type
                                                            1. Boolean Type
                                                            2. Vector Types
                                                              1. vec2 Type
                                                                1. vec3 Type
                                                                  1. vec4 Type
                                                                    1. ivec Types
                                                                      1. bvec Types
                                                                      2. Matrix Types
                                                                        1. mat2 Type
                                                                          1. mat3 Type
                                                                            1. mat4 Type
                                                                          2. Variable Qualifiers
                                                                            1. Attribute Variables
                                                                              1. Vertex Input Data
                                                                              2. Uniform Variables
                                                                                1. Global Shader Parameters
                                                                                2. Varying Variables
                                                                                  1. Interpolated Data
                                                                                3. Built-in Functions
                                                                                  1. Mathematical Functions
                                                                                    1. Trigonometric Functions
                                                                                      1. Exponential Functions
                                                                                        1. Common Functions
                                                                                        2. Vector Functions
                                                                                          1. Geometric Functions
                                                                                            1. Vector Relations
                                                                                            2. Matrix Functions
                                                                                              1. Matrix Operations
                                                                                          2. Vertex Shader Programming
                                                                                            1. Vertex Shader Purpose
                                                                                              1. Vertex Transformation
                                                                                                1. Attribute Processing
                                                                                                2. Vertex Shader Inputs
                                                                                                  1. Attribute Variables
                                                                                                    1. Uniform Variables
                                                                                                    2. Vertex Shader Outputs
                                                                                                      1. gl_Position Variable
                                                                                                        1. Varying Variables
                                                                                                        2. Common Vertex Operations
                                                                                                          1. Position Transformation
                                                                                                            1. Normal Transformation
                                                                                                              1. Texture Coordinate Passing
                                                                                                            2. Fragment Shader Programming
                                                                                                              1. Fragment Shader Purpose
                                                                                                                1. Pixel Color Calculation
                                                                                                                2. Fragment Shader Inputs
                                                                                                                  1. Varying Variables
                                                                                                                    1. Uniform Variables
                                                                                                                      1. Built-in Variables
                                                                                                                      2. Fragment Shader Outputs
                                                                                                                        1. gl_FragColor Variable
                                                                                                                          1. Color Output
                                                                                                                          2. Fragment Operations
                                                                                                                            1. Color Calculation
                                                                                                                              1. Texture Sampling
                                                                                                                                1. Fragment Discard
                                                                                                                              2. Shader Compilation and Linking
                                                                                                                                1. Shader Object Creation
                                                                                                                                  1. Vertex Shader Creation
                                                                                                                                    1. Fragment Shader Creation
                                                                                                                                    2. Source Code Attachment
                                                                                                                                      1. Shader Source Setting
                                                                                                                                      2. Compilation Process
                                                                                                                                        1. Compile Operation
                                                                                                                                          1. Compilation Error Checking
                                                                                                                                            1. Error Message Handling
                                                                                                                                            2. Program Object Management
                                                                                                                                              1. Program Creation
                                                                                                                                                1. Shader Attachment
                                                                                                                                                  1. Program Linking
                                                                                                                                                    1. Program Usage
                                                                                                                                                2. Shader Variable Connections
                                                                                                                                                  1. Attribute Location Management
                                                                                                                                                    1. Getting Attribute Locations
                                                                                                                                                      1. Location Queries
                                                                                                                                                      2. Enabling Vertex Attributes
                                                                                                                                                        1. Attribute Array Enabling
                                                                                                                                                      3. Vertex Attribute Specification
                                                                                                                                                        1. vertexAttribPointer Method
                                                                                                                                                          1. Attribute Layout Definition
                                                                                                                                                            1. Data Type Specification
                                                                                                                                                              1. Stride and Offset Parameters
                                                                                                                                                            2. Uniform Location Management
                                                                                                                                                              1. Getting Uniform Locations
                                                                                                                                                                1. Location Queries
                                                                                                                                                                2. Uniform Value Setting
                                                                                                                                                                  1. Scalar Uniforms
                                                                                                                                                                    1. uniform1f Method
                                                                                                                                                                      1. uniform1i Method
                                                                                                                                                                      2. Vector Uniforms
                                                                                                                                                                        1. uniform2f Method
                                                                                                                                                                          1. uniform3f Method
                                                                                                                                                                            1. uniform4f Method
                                                                                                                                                                            2. Matrix Uniforms
                                                                                                                                                                              1. uniformMatrix3fv Method
                                                                                                                                                                                1. uniformMatrix4fv Method
                                                                                                                                                                          2. Drawing Operations
                                                                                                                                                                            1. Array-based Drawing
                                                                                                                                                                              1. drawArrays Method
                                                                                                                                                                                1. Method Parameters
                                                                                                                                                                                  1. Vertex Count Specification
                                                                                                                                                                                2. Element-based Drawing
                                                                                                                                                                                  1. drawElements Method
                                                                                                                                                                                    1. Index Buffer Usage
                                                                                                                                                                                      1. Element Count Specification
                                                                                                                                                                                    2. Primitive Types
                                                                                                                                                                                      1. Point Primitives
                                                                                                                                                                                        1. POINTS Mode
                                                                                                                                                                                        2. Line Primitives
                                                                                                                                                                                          1. LINES Mode
                                                                                                                                                                                            1. LINE_STRIP Mode
                                                                                                                                                                                              1. LINE_LOOP Mode
                                                                                                                                                                                              2. Triangle Primitives
                                                                                                                                                                                                1. TRIANGLES Mode
                                                                                                                                                                                                  1. TRIANGLE_STRIP Mode
                                                                                                                                                                                                    1. TRIANGLE_FAN Mode